日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

l298n电机驱动模块驱动直流电机(佛科院——深夜学习)

發布時間:2024/3/26 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 l298n电机驱动模块驱动直流电机(佛科院——深夜学习) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、為什么不能直接用單片機IO口驅動電機,要用電機驅動模塊?

二、使用步驟:

1.L298n各引腳作用:

2.推薦的供電方式:

3.推薦的控制方式:


一、為什么不能直接用單片機IO口驅動電機,要用電機驅動模塊?

由于單片機內部結構原因,其等效內阻極大, 導致輸出電流極小,盡管I0口輸出高電平為5V,但輸出功率極小,無法滿足直接電機的額定功率,所以我們一般只把單片機當控制器,而不是驅動器。

二、使用步驟:

1.L298n各引腳作用:

重點解釋:

  • 板載5V使能:插上跳帽就可以由“12V供電”口,通過內部的降壓模塊,給內部的芯片供電;拔出跳帽則由"5V供電"直接給芯片供電,但如果電壓過高則會燒壞芯片(不建議使用)
  • 通道A/B使能:是控制兩個邏輯輸入口是否正常工作,插上跳帽則默認一直工作。
  • 邏輯輸入:控制輸出是否正常進行
  • 2.推薦的供電方式:

    用7-12V電源給L298n供電,GND連接電源負級和單片機的GND,5V給單片機供電(也可以不接)

    3.推薦的控制方式:

    不使用通道A/B使能口,不去掉跳帽,向兩個邏輯輸入口輸入PWM信號來控制電機:

    ?用按鍵控制的代碼:(STC89C52RC)

    #include <reg52.h> sbit left_wheel_1 = P2^0; sbit left_wheel_2 = P2^1; sbit right_wheel_1 = P2^2; sbit right_wheel_2 = P2^3; sbit key1 = P0^1; sbit key2 = P0^2; sbit key3 = P0^3; sbit key4 = P0^4; sbit key5 = P0^5; sbit key6 = P0^6; unsigned char count = 0; unsigned char timer1 = 100; unsigned char turn_sign; #define forword_left 1; #define forword_rignt 2; #define back_left 3; #define back_rignt 4; /*定時器T0初始化*/ void Timer0_Init() { unsigned char time;TMOD = 0x02; //定時器T0設置成8位自動重裝載time = 92;TH0 = 256-time; //定時常數 0.1ms 晶振為11.0592MHzTL0 = TH0;ET0 = 1; TR0 = 1; EA=1; }/*T0中斷初始化*/ void Time0_Init() interrupt 1 {if(count <= timer1 && count > 0) //高電平時間{ switch(turn_sign){case 1:left_wheel_1 = 1;break;case 2:right_wheel_1 = 1;break;case 3:left_wheel_2 = 1;break;case 4:right_wheel_2 = 1;break; }}else { switch(turn_sign){case 1:left_wheel_1 = 0;break;case 2:right_wheel_1 = 0;break;case 3:left_wheel_2 = 0;break;case 4:right_wheel_2 = 0;break; }}count++;if(count >= 200) //脈沖周期T = 20ms{ count = 0; } } void delay_ms(unsigned int time_out)//12HZ STC89C52RC {unsigned int i,j;for(i=time_out;i>0;i--)for(j=95;j>0;j--); }void Forword(); void Stop(); void Forword_left(); void Forword_right(); void Back(); void Back_left(); void Back_right(); void main() {Timer0_Init();//定時器初始化while(1){/*6個按鍵控制*/if(!key1){delay_ms(10);if(!key1){Forword_left();while(!key1);Stop();}}if(!key2){delay_ms(10);if(!key2){Forword();while(!key2);Stop();}}if(!key3){delay_ms(10);if(!key3){Forword_right();while(!key3);Stop();}}if(!key4){delay_ms(10);if(!key4){Back_left();while(!key4);Stop();}}if(!key5){delay_ms(10);if(!key5){Back();while(!key5);Stop();}}if(!key6){delay_ms(10);if(!key6){Back_right();while(!key6);Stop();}}} } //全速前進 void Forword() {left_wheel_1 = 1;left_wheel_2 = 0;right_wheel_1 = 1;right_wheel_2 =0; } //停止 void Stop() {ET0 = 0; //關閉定時器TR0 = 0;left_wheel_1 = 0;left_wheel_2 = 0;right_wheel_1 = 0;right_wheel_2 =0; } void Forword_left() {ET0 = 1; //開啟定時器TR0 = 1;count = 0;//重新計數turn_sign = forword_left;//確定標志,詳情看中斷函數left_wheel_2 = 0;right_wheel_1 = 1;right_wheel_2 =0; } /***************其他函數和Forword_left函數同理*********************/ void Forword_right() {ET0 = 1; TR0 = 1;count = 0;turn_sign = forword_rignt;left_wheel_1 = 1;left_wheel_2 = 0;right_wheel_2 =0; }void Back() {left_wheel_1 = 0;left_wheel_2 = 1;right_wheel_1 = 0;right_wheel_2 =1; } void Back_right() {ET0 = 1; TR0 = 1;count = 0;turn_sign = back_left;left_wheel_1 = 0;right_wheel_1 = 0;right_wheel_2 =1; } void Back_left() {ET0 = 1; TR0 = 1;count = 0;turn_sign = back_rignt;left_wheel_1 = 0;left_wheel_2 = 1;right_wheel_1 =0; }

    總結

    以上是生活随笔為你收集整理的l298n电机驱动模块驱动直流电机(佛科院——深夜学习)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。