課程目標(biāo)
- 最簡小車的設(shè)計
- 雙電機(jī)控制車輛運(yùn)動
- 小車的多種運(yùn)動形態(tài)實(shí)現(xiàn)
電路搭建
所需材料
ArduinoUNO * 1
L298N驅(qū)動模塊 * 1
直流電機(jī) * 2
7~12V外接電源 * 1
杜邦線若干
小車組件
電路連接

程序編寫
練習(xí)一:小車的循環(huán)運(yùn)動
通過編寫程序,循環(huán)實(shí)現(xiàn)小車的前進(jìn)一秒、后退一秒、左轉(zhuǎn)一秒、右轉(zhuǎn)一秒、停止一秒功能。
圖形化方式:
如果有同學(xué)發(fā)現(xiàn),按照下面的程序上傳后,小車的運(yùn)動有問題,那么可以通過改變直流電機(jī)的接線或者修改數(shù)字輸出引腳的高低電平即可。

代碼方式:
/* 項(xiàng)目名稱:循環(huán)控制小車運(yùn)動
* 項(xiàng)目時間:2022.03.28
* 項(xiàng)目作者:MRX
*/
int IN1 = 4; // IN1連接 D4
int IN2 = 5;
int ENA = 9;
int IN3 = 6; // IN3連接D6
int IN4 = 7;
int ENB = 10;
unsigned long delaytime = 1000; //等待時間
int value = 100; // 模擬輸出的值
//前進(jìn)
void forward() {
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
analogWrite(ENA,value);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
analogWrite(ENB,value);
}
//后退
void back() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
//右轉(zhuǎn)
void right() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,0);
}
//左轉(zhuǎn)
void left() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
// 停止
void stop() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
analogWrite(ENB,0);
}
void setup(){
for (int i = 4;i <= 10;i++){
pinMode(i, OUTPUT);
}
}
void loop(){
forward();
delay(delaytime);
forward();
delay(delaytime);
left();
delay(delaytime);
right();
delay(delaytime);
stop();
delay(delaytime);
}
練習(xí)二:可調(diào)速的小車
通過讀取可調(diào)電位器的值,來實(shí)現(xiàn)車速的變化。
電路接線:
在上圖的基礎(chǔ)上,增加一個可調(diào)電位器連接到UNO的A0腳。
圖形化方式:

代碼方式:
/* 項(xiàng)目名稱:電位器控制小車速度
* 項(xiàng)目時間:2022.03.28
* 項(xiàng)目作者:MRX
*/
int IN1 = 4; // IN1 connected to pin 4
int IN2 = 5;
int ENA = 9;
int IN3 = 6; // IN3 connected to pin 6
int IN4 = 7;
int ENB = 10;
unsigned long delaytime = 1000; //delay time
int value = 0; // the duty cycle
void forward() {
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
analogWrite(ENA,value);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
analogWrite(ENB,value);
}
void back() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,value);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,value);
}
void right() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,100);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,0);
}
void left() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB,100);
}
void stop() {
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
analogWrite(ENA,0);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
analogWrite(ENB,0);
}
void setup(){
for (int i = 4;i <= 10;i++){
pinMode(i, OUTPUT);
}
pinMode(A0,INPUT);
}
void loop(){
value = (map(analogRead(A0), 0, 1023, 0, 255));
forward();
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
電機(jī)控制
+關(guān)注
關(guān)注
3600文章
2134瀏覽量
277892 -
電位器
+關(guān)注
關(guān)注
14文章
1028瀏覽量
69272 -
直流電機(jī)
+關(guān)注
關(guān)注
36文章
1781瀏覽量
73960 -
輪式機(jī)器人
+關(guān)注
關(guān)注
0文章
8瀏覽量
9091 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196983
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
如何使用MATLB和Arduino控制直流電機(jī)
在本教程中,我們將向您展示如何使用 MATLB 和 Arduino 控制直流電機(jī)。
發(fā)表于 11-03 17:18
?2103次閱讀
直流電機(jī)
什么是直流電機(jī)
使用直流電源的電機(jī)叫做直流電機(jī)。因此只要把直流電機(jī)的端子接到直流電源上,就可以
發(fā)表于 01-09 15:05
?4360次閱讀
Arduino的直流電機(jī)調(diào)速
Arduino的直流電機(jī)調(diào)速(深圳市核達(dá)中遠(yuǎn)通電源技術(shù)有限公司招聘電話)-基于Arduino的直流電機(jī)調(diào)速? ? ? ? ? ? ? ? ? ? ? ??
發(fā)表于 09-18 16:12
?61次下載
動手玩轉(zhuǎn)Arduino---運(yùn)動控制(直流電機(jī)步進(jìn)電機(jī)舵機(jī))
動手玩轉(zhuǎn)Arduino---運(yùn)動控制(直流電機(jī)步進(jìn)電機(jī)舵機(jī))(電源技術(shù)是中文核心嗎)-該文檔為動手玩轉(zhuǎn)Arduino---運(yùn)動
發(fā)表于 09-23 09:22
?37次下載
arduino直流電機(jī)
這一期我們來學(xué)習(xí)如何控制直流電機(jī)。
需要材料:Arduino UNO
直流電機(jī)——本文以12V額定電機(jī)為例
發(fā)表于 03-30 13:46
?3次下載
使用Arduino和電位器控制直流電機(jī)速度
直流電機(jī)是機(jī)器人和電子項(xiàng)目中使用最多的電機(jī)。對于控制直流電機(jī)的速度,我們有多種方法,例如可以根據(jù)溫度自動
發(fā)表于 03-30 11:11
?0次下載
ros與arduino通信控制直流電機(jī)
前言:在成功通過arduino開發(fā)板控制直流電機(jī)后,開始嘗試用ros與arduino通信來控制
發(fā)表于 03-31 11:45
?4次下載
繼電器控制直流電機(jī)
:Arduino、按鍵、繼電器、直流電機(jī)
軟件:Mixly IDE
四、實(shí)驗(yàn)過程(實(shí)驗(yàn)步驟、記錄、數(shù)據(jù)、分析)
核心代碼截圖:
(1)、完成使用繼電器控制直流電機(jī)功能。
發(fā)表于 04-03 11:01
?4次下載
使用Arduino的直流電機(jī)MOSFET控制速度
電子發(fā)燒友網(wǎng)站提供《使用Arduino的直流電機(jī)MOSFET控制速度.zip》資料免費(fèi)下載
發(fā)表于 06-27 15:13
?0次下載
使用Arduino來控制直流電機(jī)
電子發(fā)燒友網(wǎng)站提供《使用Arduino來控制直流電機(jī).zip》資料免費(fèi)下載
發(fā)表于 07-03 11:04
?2次下載
Arduino篇—直流電機(jī)控制在輪式機(jī)器人中的應(yīng)用
評論