本节书摘来华章计算机《Arduino开发实战指南:机器人卷》一书中的第3章 ,第3.6节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.搭建硬件
Arduino Uno板 1块L298N模块 1块1∶48直流减速电机 2个杜邦线 若干2.示例程序根据图3.12所示直流电机驱动电路,编写程序以实现双路电机顺时针加速10秒,然后反转减速10秒,并循环交替上述过程。其中,Arduino Uno板与L298N模块的接线情况如
Arduino Uno驱动L298N控制直流电机正、反转示例程序清单如下:
#define IN1 3 #define IN2 4 #define IN3 6 #define IN4 7 #define PWMA 10 #define PWMB 11 void setup() {pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); } void loop() { int i; for(i=0;i<=255;i++) { digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); analogWrite(PWMA,i); // 写入电机1速度值 digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); analogWrite(PWMB,i); // 写入电机2速度值 delay(40); } analogWrite(PWMA,0); // 停转 analogWrite(PWMB,0); // 停转 delay(2000); // 停转2秒 for(i=0;i<=255;i++) { digitalWrite(IN1,LOW); // 改变电机转向 digitalWrite(IN2,HIGH); // 改变电机转向 analogWrite(PWMA,i); // 写入电机1速度值 digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); analogWrite(PWMB,i); // 写入电机2速度值 delay(40); } } 相关资源:Arduino机器人设计与制作_钟柏昌_2016.10出版 彩色高清