|
這是之前課程設(shè)計(jì)做的遙控小車,簡(jiǎn)單的控制電機(jī)轉(zhuǎn)速使小車前進(jìn)和后退,左轉(zhuǎn)右轉(zhuǎn)也是參考了網(wǎng)上別人的,有需要的可以看看,哪里有不足也請(qǐng)指出
ATMEGA168單片機(jī)+L298仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源碼:
int Foreward_key=2;//正轉(zhuǎn)按鈕
int Reverse_key=3;//反轉(zhuǎn)按鈕
int Stop_key=4;//停止按鈕
int Trunleft_key=0;//左轉(zhuǎn)按鈕
int Trunright_key=1;//右轉(zhuǎn)按鈕
int Foreward_led=5;//正轉(zhuǎn)指示燈
int Reverse_led=6;//反轉(zhuǎn)指示燈
int Stop_led=7;//停止指示燈
int pinI1=8;//定義電機(jī)1正轉(zhuǎn)接口
int pinI2=9;//定義電機(jī)1反轉(zhuǎn)接口
int pinI3=13;//定義電機(jī)2正轉(zhuǎn)接口
int pinI4=12;//定義電機(jī)2反轉(zhuǎn)接口
int speedpin=14;//定義EA(PWM調(diào)速)接口
int speedpin1=14;//定義EB(PWM調(diào)速)接口
void setup()
{
pinMode(Foreward_key,INPUT);
pinMode(Reverse_key,INPUT);
pinMode(Trunleft_key,INPUT);
pinMode(Trunright_key,INPUT);
pinMode(Stop_key,INPUT);
pinMode(Foreward_led,OUTPUT);
pinMode(Reverse_led,OUTPUT);
pinMode(Stop_led,OUTPUT);
pinMode(pinI1,OUTPUT);//定義該接口為輸出接口
pinMode(pinI2,OUTPUT);
pinMode(pinI3,OUTPUT);//定義該接口為輸出接口
pinMode(pinI4,OUTPUT);
pinMode(speedpin,OUTPUT);
pinMode(speedpin1,OUTPUT);
digitalWrite(Foreward_led,HIGH);
digitalWrite(Reverse_led,HIGH);
digitalWrite(Stop_led,HIGH);
}
void loop()
{
if(digitalRead(Foreward_key)==HIGH)//正轉(zhuǎn)
{
while(digitalRead(Foreward_key)==HIGH);
digitalWrite(Foreward_led,LOW);
digitalWrite(Reverse_led,HIGH);
digitalWrite(Stop_led,HIGH);
digitalWrite(pinI1,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI2,HIGH);
analogWrite(speedpin,100);
digitalWrite(pinI3,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI4,HIGH);
analogWrite(speedpin1,100);
}
if(digitalRead(Reverse_key)==HIGH)//反轉(zhuǎn)
{
while(digitalRead(Reverse_key)==HIGH);
digitalWrite(Foreward_led,HIGH);
digitalWrite(Reverse_led,LOW);
digitalWrite(Stop_led,HIGH);
digitalWrite(pinI1,HIGH);//使直流電機(jī)逆時(shí)針轉(zhuǎn)
digitalWrite(pinI2,LOW);
analogWrite(speedpin,100);
digitalWrite(pinI3,HIGH);//使直流電機(jī)逆時(shí)針轉(zhuǎn)
digitalWrite(pinI4,LOW);
analogWrite(speedpin1,100);
}
if(digitalRead(Stop_key)==HIGH)//停止
{
while(digitalRead(Stop_key)==HIGH);
digitalWrite(Foreward_led,HIGH);
digitalWrite(Reverse_led,HIGH);
digitalWrite(Stop_led,LOW);
digitalWrite(pinI1,LOW);//使直流電機(jī)逆時(shí)針轉(zhuǎn)
digitalWrite(pinI2,LOW);
analogWrite(speedpin,100);
digitalWrite(pinI3,LOW);//使直流電機(jī)逆時(shí)針轉(zhuǎn)
digitalWrite(pinI4,LOW);
analogWrite(speedpin1,100);
}
if(digitalRead(Trunleft_key)==HIGH)//左轉(zhuǎn)
{
while(digitalRead(Trunleft_key)==HIGH);
digitalWrite(Foreward_led,LOW);
digitalWrite(Reverse_led,HIGH);
digitalWrite(Stop_led,HIGH);
digitalWrite(pinI1,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI2,HIGH);
analogWrite(speedpin,100);
delay(120);
digitalWrite(pinI3,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI4,HIGH);
analogWrite(speedpin1,100);
}
if(digitalRead(Trunright_key)==HIGH)//右轉(zhuǎn)
{
while(digitalRead(Trunright_key)==HIGH);
digitalWrite(Foreward_led,LOW);
digitalWrite(Reverse_led,HIGH);
digitalWrite(Stop_led,HIGH);
digitalWrite(pinI3,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI4,HIGH);
analogWrite(speedpin1,100);
delay(120);
digitalWrite(pinI1,LOW);//使直流電機(jī)順時(shí)針轉(zhuǎn)
digitalWrite(pinI2,HIGH);
analogWrite(speedpin,100);
}
}
全部資料51hei下載地址:
小車模擬.rar
(80.2 KB, 下載次數(shù): 24)
2018-11-21 15:28 上傳
點(diǎn)擊文件名下載附件
|
|