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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

L298N 小车应用(附代码)

發布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 L298N 小车应用(附代码) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

L298N

L298N是目前智能小車應用很廣泛的價格也比較便宜的電機驅動,用來驅動直流電機。

L298N

輸出A 輸出B 分別接兩個直流電機,電機兩根線隨便接,如果發現兩電機方向是反著的,就調換下接線就ok了。

12V供電 這個是外部電源為驅動板供電的接口,一般驅動電壓實際可以接受的輸入范圍是7~12V,此時可以使能板載的5V邏輯供電。當使用大于12V的驅動電壓時,為了避免穩壓芯片損壞,首先要拔掉板載5V輸出使能的跳線帽,然后在5V輸出端口外部接入5V電壓對L298N內部邏輯供電。

5V供電 引出5V電壓接到Arduino板,給Arduino板供電(驅動電壓7~12V)連接到UNO板的5V,同時Arduino板也要引出一條GND線,連接到L298N的GND與外部電源共地。

ENA ENB通道A使能,通道B使能,當你不用PWM時不需要拔掉跳線帽,當你需要PWM時,將需要拔掉跳線帽,接到arduino上的模擬輸入輸出接口。

IN1 IN2 IN3 IN4邏輯輸出口,其中IN1 IN2 控制一個電機的轉動,IN3 IN4 控制另一個電機的轉動,只要一個置高 一個置低,就可以讓電機轉動起來。

硬件連線

Ardunio <--> L298N 5V <--> 5V供電(非必要) GND <--> GND(非必要) 輸出引腳 <--> ENA ENB IN1~4外部電源 12V供電 GND

不使用PWM實現小車的部分功能代碼

int input1=5; // 定義uno的pin 5 向 in1 輸出 int input2=6; // 定義uno的pin 6 向 in2 輸出 int input3=9; // 定義uno的pin 9 向 in3 輸出 int input4=10; // 定義uno的pin 10 向 in4 輸出 void setup() { Serial.begin (9600); //初始化各IO,模式為OUTPUT 輸出模式 pinMode(input1,OUTPUT); pinMode(input2,OUTPUT); pinMode(input3,OUTPUT); pinMode(input4,OUTPUT); }void loop(){ //forward 向前轉 digitalWrite(input1,HIGH); //給高電平 digitalWrite(input2,LOW); //給低電平 digitalWrite(input3,HIGH); //給高電平 digitalWrite(input4,LOW); //給低電平 delay(1000); //延時1秒 //stop 停止 digitalWrite(input1,LOW); digitalWrite(input2,LOW); digitalWrite(input3,LOW); digitalWrite(input4,LOW); delay(500); //延時0.5秒 //back 向后轉 digitalWrite(input1,LOW); digitalWrite(input2,HIGH); digitalWrite(input3,LOW); digitalWrite(input4,HIGH); delay(1000); }

使用PWM調制控制小車

void forward();void turnleft();void turnright();void stopcar();int ENA1=5; int ENB1=6; int IN1=2; int IN2=3; int IN3=4; int IN4=7;int ENA2=9; int ENB2=10; int IN5=8; int IN6=11; int IN7=12; int IN8=13;void setup() {for(int i=2;i<=13;i++){pinMode(i,OUTPUT);}Serial.begin(9600); } int x=1500; void loop() { forward();delay(x);turnleft();delay(x/3);forward();delay(x);turnright();delay(x/3);stopcar(); } void forward(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,HIGH);digitalWrite(IN6,LOW);digitalWrite(IN7,HIGH);digitalWrite(IN8,LOW); } void turnback(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,LOW);digitalWrite(IN6,HIGH);digitalWrite(IN7,LOW);digitalWrite(IN8,HIGH);} void stopcar(){analogWrite(ENA1,0);analogWrite(ENB1,0);digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);analogWrite(ENA2,0);analogWrite(ENB2,0);digitalWrite(IN5,LOW);digitalWrite(IN6,LOW);digitalWrite(IN7,LOW);digitalWrite(IN8,LOW);}void turnleft(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,LOW);digitalWrite(IN6,HIGH);digitalWrite(IN7,LOW);digitalWrite(IN8,HIGH);}void turnright(){analogWrite(ENA1,255);analogWrite(ENB1,255);digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(ENA2,255);analogWrite(ENB2,255);digitalWrite(IN5,HIGH);digitalWrite(IN6,LOW);digitalWrite(IN7,HIGH);digitalWrite(IN8,LOW);}

(程序代碼直接復制粘貼可能編譯出錯,因為有中文空格或者字符!盡管我是用英文輸入的,但經常編譯出現中文的錯誤。)
這樣的小車只能按照寫好的程序運動,如果我們用藍牙或者紅外遙控來控制小車才能使小車按照我們的想法隨意運動,下次介紹。

總結

以上是生活随笔為你收集整理的L298N 小车应用(附代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

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