完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
Arduino Uno控制直流电机,将总的系统设计思路贴出来,如下:
整个系统是实现“太阳能智能控制环保路灯控制器设计”,主要是用直流电机控制太阳能电池板转动,确保其在每个时间段能够实现最高的发电效率,仿向日葵实现东西转动。 Arduino Uno手册上有其关于控制直流电机的详细介绍,如果仔细阅读,实现起来很简单的。可以结合本文的系统,对其进一步理解,则可以编写响应的代码。 主程序 //#include int pinI1=8; int pinI2=9; int pinI3=2; //int pinI4=3; int pinI5=4; //int pinI6=5; //int pinI7=6; int speedin=11; volatile int state=LOW; void setup() { pinMode(pinI1,OUTPUT); pinMode(pinI2,OUTPUT); pinMode(pinI3,INPUT); // pinMode(pinI4,OUTPUT); pinMode(pinI5,OUTPUT); // pinMode(pinI6,OUTPUT); // pinMode(pinI7,OUTPUT); pinMode(speedin,OUTPUT); // myPID.SetMode(AUTOMATIC); // attachInterrupt(0,light,HIGH); } void loop() { while(1) { int m=analogRead(A0); int n=analogRead(A1); int err,err1,err2; int pidspeed1; float kp=0.1 ,ki=0,kd=0; err=m-n; pidspeed1=(int)(err*kp-err1*ki+err2*kd); err1=err; err2=err1; state=digitalRead(pinI3); digitalWrite(pinI5,state); if (m》n) { // while(1) // { digitalWrite(pinI1,LOW); digitalWrite(pinI2,HIGH); analogWrite(speedin,100+pidspeed1); // } // delay(2000); } else if(m { // while(1) // { digitalWrite(pinI1,HIGH); digitalWrite(pinI2,LOW); analogWrite(speedin,100-pidspeed1); // delay(2000); // } } else { // while(1) // { digitalWrite(pinI1,HIGH); digitalWrite(pinI2,HIGH); //delay(2000); // } } } } PID算法控制程序 该部分系统原理图如下,有助于理解代码,可根据应用环境不同修改代码: int m=analogRead(A0); int n=analogRead(A1); int err,err1,err2; int pidspeed1; float kp=0.1 ,ki=0,kd=0; err=m-n; pidspeed1=(int)(err*kp-err1*ki+err2*kd); err1=err; err2=err1; void light(); SetMotor(Output); void SetMotor() { if (m》n) { digitalWrite(pinI1,LOW); digitalWrite(pinI2,HIGH); analogWrite(speedin,100+pidspeed1);} else if(m { digitalWrite(pinI1,HIGH); digitalWrite(pinI2,LOW); analogWrite(speedin,100-pidspeed1);} else {digitalWrite(pinI1,HIGH); digitalWrite(pinI2,HIGH);} } |
|
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-20 13:35 , Processed in 0.436295 second(s), Total 42, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号