色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR與L298進行直流電機控制

          AVR與L298進行直流電機控制

          作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
          軟件環(huán)境:icc+avrstudio

          打開motor.h更改以下內(nèi)容即可。

          //PD4,PD5 電機方向控制
          #define moto_en1 PORTD |= 0x10
          #define moto_en2 PORTD |= 0x20
          #define moto_uen1 PORTD &=~ 0x10
          #define moto_uen2 PORTD &=~ 0x20

          軟件核心介紹:

          通過控制電機的IN1和IN2改變方向, pwm控制速度。
          IN1和IN2不同時,電機轉(zhuǎn)動;
          IN1和IN2相同時,電機急停。

          硬件連接電路圖


          avr+N298控制電機輸入信號與電機工作方式


          N298電機控制芯片引腳圖


          電機控制資料包括 所有電機控制例子源程序,L298數(shù)據(jù)手冊,連接電路圖。

          今天有人反映,程序有點小問題

          程序中這里的IO初始化

          void port_init(void)
          {
          PORTA = 0x00;
          DDRA = 0x00;
          PORTB = 0x00;
          DDRB = 0x00;
          PORTC = 0x00;
          DDRC = 0x00;
          PORTD = 0x00;
          // DDRD = 0x80; // D7 PWM //參考芯片手冊
          //這里修改
          DDRD =0xB0; //PD4 PD5 PD7 OUT
          }

          另外注意如果,啟動時的PWM占空比太低 電機是轉(zhuǎn)不起來的,

          void main(void)
          {


          //初始工作

          init_devices();

          while(1)
          {
          for_ward(0); //默認速度運轉(zhuǎn) 正
          Delay1s(5); //延時5s
          motor_stop(); //停止
          Delay1s(5); //延時5s
          back_ward(0); //默認速度運轉(zhuǎn) 反
          Delay1s(5); //延時5s
          speed_add(20); //加速
          Delay1s(5); //延時5s
          speed_subtract(20); //減速
          Delay1s(5); //延時5s
          }

          }

          及這里的for_ward(0); //默認速度運轉(zhuǎn) 正
          如果改為for_ward(5);電機轉(zhuǎn)不起來


          評論


          技術專區(qū)

          關閉