Arduino 实例(十七)用Arduino和L298N对直流电机调速

Arduino 实例(十七)用Arduino和L298N对直流电机调速1 电路接线图说明 L298N ENA 位置的跳线帽需要摘除 ENA 接 Arduino UNO 9 端口我接电路时 用 9V 电源正极接入 Arduino UNO Vin 接口 用串口连接时 电机不转 电压不够

大家好,欢迎来到IT知识分享网。

1 电路接线图

说明:L298N ENA位置的跳线帽需要摘除,ENA接Arduino UNO 9端口

我接电路时,用9V电源正极接入Arduino UNO Vin接口,用串口连接时,电机不转(电压不够)。 另外用电池接入时,串口供电会自动断开,所以调试时,不用将串口断开,这样调试时,可以观察串口输出信息。

Arduino 实例(十七)用Arduino和L298N对直流电机调速

2 实物接线图

Arduino 实例(十七)用Arduino和L298N对直流电机调速

3 程序

此程序包含了3个函数,1个是电机正反转,1个是自动电机调速,1个是通过电位器对电机进行调速,如下程序,将2个函数注释掉了,这样调试时,可以就一个函数进行分析和观察

# define ENA 9 # define IN1 8 # define IN2 7 void setup() { pinMode(ENA,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); Serial.begin(9600); } void Pos_NegRotation() { analogWrite(ENA,255);//占空比80/255,可以是0到255之前的数 digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); delay(1000); digitalWrite(IN1,HIGH); digitalWrite(IN2,HIGH); delay(1000); digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH); delay(1000); digitalWrite(IN1,LOW); digitalWrite(IN2,LOW); delay(1000); } void PWMcontrol() {int i; digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); for(i=0;i<=255;i++) { Serial.print("Value_i="); Serial.println(i); analogWrite(ENA,i); delay(20); } digitalWrite(IN1,HIGH); digitalWrite(IN2,HIGH); delay(1000); } void Potentiometer() { int pValue=analogRead(A0); int PWMout=map(pValue,0,1023,0,255); Serial.print("PWMout="); Serial.println(PWMout); analogWrite(ENA,PWMout); digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW); delay(1000); } void loop() { //Pos_NegRotation(); //PWMcontrol(); Potentiometer(); } 

4 电位器对电机进行调速时,端口信息输出

Arduino 实例(十七)用Arduino和L298N对直流电机调速

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/172196.html

(0)
上一篇 2025-03-02 10:45
下一篇 2025-03-02 11:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信