arduino电机控制(Arduino实例十七)

 2024-03-09  阅读 658  评论 0

摘要:1 电路接线图说明:L298N ENA位置的跳线帽需要摘除,ENA接Arduino UNO 9端口我接电路时,用9V电源正极接入Arduino UNO Vin接口,用串口连接时,电机不转(电压不够)。 另外用电池接入时,串口供电会自动断开,所以调试时,不用将串口断开,这样调试时,可以观察串口输出信息

1 电路接线图

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

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

arduino电机控制(Arduino实例十七)(1)

2 实物接线图

arduino电机控制(Arduino实例十七)(2)

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实例十七)(3)

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ce617Cz0DAQgHXg.html

发表评论:

管理员

  • 内容265684
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.1051秒, 内存占用1.33 MB, 访问数据库18次