找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3923|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

ATMEGA168+L298控制電機(jī)正反轉(zhuǎn)的代碼與Proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:430461 發(fā)表于 2018-11-21 15:29 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是之前課程設(shè)計(jì)做的遙控小車,簡單的控制電機(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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:342822 發(fā)表于 2018-11-25 22:32 | 只看該作者
嘿嘿~~仿真圖上的按鍵不帶這么玩的!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表