当前位置:首页 > 新型工业化 >直流电机 arduino(arduino控制直流电机转速)

直流电机 arduino(arduino控制直流电机转速)

课程目标

最简单的汽车设计。双电机控制车辆的运动。汽车的各种运动形式都是通过电路构造来实现的。

直流电机 arduino(arduino控制直流电机转速)

所需材料

ArduinoUNO*1

L298N驱动模块*1

直流电机*2

7~12V外接电源*1

一些杜邦线

推车组件

电路连接

编程

练习1:小车做圆周运动

通过编写程序,小车可以向前循环一秒,后退一秒,左转一秒,右转一秒,停止一秒。

以图形方式:

如果有同学按照以下流程上传后发现小车运动有问题,可以更改直流电机的接线或者修改数字输出引脚的高低电平。

代码方法:

/* 项目名称: 循环控制小车运动* 项目时间:2022.03.28 * 项目作者:MRX */int IN1=4; //IN1 连接到D4int IN2=5;整数ENA=9;整数IN3=6; //IN3 连接到D6int IN4=7;整数ENB=10;无符号长延迟时间=1000; //等待时间int value=100; //模拟输出的值//forward voidforward() { digitalWrite(IN1,HIGH);数字写入(IN2,低);模拟写入(ENA,值);数字写入(IN3,高);数字写入(IN4,低); AnalogWrite(ENB,value);}//返回void back() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,值);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,value);}//void right() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,值);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,0);}//左转void left() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,0);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,value);}//停止void stop() { digitalWrite(IN1,LOW) ;数字写入(IN2,低);模拟写入(ENA,0);数字写入(IN3,低);数字写入(IN4,低); AnalogWrite(ENB,0);}void setup(){ for (int i=4;i=10;i++){ pinMode(i, OUTPUT); } }}无效循环(){转发();延迟(延迟时间);向前();延迟(延迟时间);左边();延迟(延迟时间);正确的() ;延迟(延迟时间);停止(); delay(delaytime);} 练习2:可调速小车

通过读取可调电位器的值,车速发生变化。

电路接线:

根据上图,添加一个可调电位器连接到UNO的A0引脚。

以图形方式:

代码方法:

/* 项目名称: 电位器控制小车速度* 项目时间:2022.03.28 * 项目作者:MRX */int IN1=4; //IN1 连接到引脚4int IN2=5;整数ENA=9;整数IN3=6; //IN3 连接到引脚6int IN4=7;整数ENB=10;无符号长延迟时间=1000; //延迟时间int值=0; //占空比voidforward() { digitalWrite(IN1,HIGH);数字写入(IN2,低);模拟写入(ENA,值);数字写入(IN3,高);数字写入(IN4,低); AnalogWrite(ENB,值);}void back() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,值);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,值);}void right() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,100);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,0);}void left() { digitalWrite(IN1,LOW);数字写入(IN2,高);模拟写入(ENA,0);数字写入(IN3,低);数字写入(IN4,高); AnalogWrite(ENB,100);}void stop() { digitalWrite(IN1,LOW);数字写入(IN2,低);模拟写入(ENA,0);数字写入(IN3,低);数字写入(IN4,低); AnalogWrite(ENB,0);}void setup(){ for (int i=4;i=10;i++){ pinMode(i, OUTPUT); } } pinMode (A0,INPUT);}void循环(){ value=(map(analogRead(A0), 0, 1023, 0, 255));向前();}

最新资讯

推荐资讯