0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino篇—直流電機(jī)控制在輪式機(jī)器人中的應(yīng)用

冬至子 ? 來源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-02 10:41 ? 次閱讀

課程目標(biāo)

  • 最簡(jiǎn)小車的設(shè)計(jì)
  • 電機(jī)控制車輛運(yùn)動(dòng)
  • 小車的多種運(yùn)動(dòng)形態(tài)實(shí)現(xiàn)

電路搭建

所需材料

ArduinoUNO * 1
L298N驅(qū)動(dòng)模塊 * 1
直流電機(jī) * 2
7~12V外接電源 * 1
杜邦線若干
小車組件

電路連接

圖片

程序編寫

練習(xí)一:小車的循環(huán)運(yùn)動(dòng)

通過編寫程序,循環(huán)實(shí)現(xiàn)小車的前進(jìn)一秒、后退一秒、左轉(zhuǎn)一秒、右轉(zhuǎn)一秒、停止一秒功能。

圖形化方式:

如果有同學(xué)發(fā)現(xiàn),按照下面的程序上傳后,小車的運(yùn)動(dòng)有問題,那么可以通過改變直流電機(jī)的接線或者修改數(shù)字輸出引腳的高低電平即可。

圖片

代碼方式:

/* 項(xiàng)目名稱:循環(huán)控制小車運(yùn)動(dòng)
 * 項(xiàng)目時(shí)間: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;  //等待時(shí)間
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ǔ)上,增加一個(gè)可調(diào)電位器連接到UNO的A0腳。

圖形化方式:

圖片

代碼方式:

/* 項(xiàng)目名稱:電位器控制小車速度
 * 項(xiàng)目時(shí)間: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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電機(jī)控制
    +關(guān)注

    關(guān)注

    3537

    文章

    1887

    瀏覽量

    269018
  • 電位器
    +關(guān)注

    關(guān)注

    14

    文章

    1012

    瀏覽量

    66896
  • 直流電機(jī)
    +關(guān)注

    關(guān)注

    36

    文章

    1710

    瀏覽量

    70283
  • 輪式機(jī)器人
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    9015
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6473

    瀏覽量

    187420
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用MATLB和Arduino控制直流電機(jī)

    本教程中,我們將向您展示如何使用 MATLB 和 Arduino 控制直流電機(jī)。
    發(fā)表于 11-03 17:18 ?1417次閱讀
    如何使用MATLB和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    如何使用Arduino開發(fā)板控制直流電機(jī)?

    如何使用Arduino開發(fā)板控制直流電機(jī)?
    發(fā)表于 09-23 08:42

    如何使用Arduino控制直流電機(jī)?

    如何使用Arduino控制直流電機(jī)?
    發(fā)表于 10-19 07:38

    直流電機(jī)

    什么是直流電機(jī) 使用直流電源的電機(jī)叫做直流電機(jī)。因此只要把直流電機(jī)的端子接到直流電源上,就可以
    發(fā)表于 01-09 15:05 ?4062次閱讀
    <b class='flag-5'>直流電機(jī)</b>

    直流電機(jī)PWM控制

    直流電機(jī)PWM控制(電源技術(shù)屬于哪個(gè)期刊)-直流電機(jī)PWM控制,有需要的可以參考!
    發(fā)表于 09-15 15:29 ?142次下載
    <b class='flag-5'>直流電機(jī)</b>PWM<b class='flag-5'>控制</b>

    Arduino直流電機(jī)調(diào)速

    Arduino直流電機(jī)調(diào)速(深圳市核達(dá)中遠(yuǎn)通電源技術(shù)有限公司招聘電話)-基于Arduino直流電機(jī)調(diào)速? ? ? ? ? ? ? ? ? ? ? ??
    發(fā)表于 09-18 16:12 ?61次下載
    <b class='flag-5'>Arduino</b>的<b class='flag-5'>直流電機(jī)</b>調(diào)速

    動(dòng)手玩轉(zhuǎn)Arduino---運(yùn)動(dòng)控制直流電機(jī)步進(jìn)電機(jī)舵機(jī))

    動(dòng)手玩轉(zhuǎn)Arduino---運(yùn)動(dòng)控制直流電機(jī)步進(jìn)電機(jī)舵機(jī))(電源技術(shù)是中文核心嗎)-該文檔為動(dòng)手玩轉(zhuǎn)Arduino---運(yùn)動(dòng)
    發(fā)表于 09-23 09:22 ?36次下載
    動(dòng)手玩轉(zhuǎn)<b class='flag-5'>Arduino</b>---運(yùn)動(dòng)<b class='flag-5'>控制</b>(<b class='flag-5'>直流電機(jī)</b>步進(jìn)<b class='flag-5'>電機(jī)</b>舵機(jī))

    如何使用L298N和Arduino控制直流電機(jī)

    在這個(gè)Arduino教程中,我們將學(xué)習(xí)如何使用Arduino控制直流電機(jī)。我們來看看控制直流電機(jī)
    的頭像 發(fā)表于 04-08 15:06 ?1.1w次閱讀
    如何使用L298N和<b class='flag-5'>Arduino</b>板<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    ROS機(jī)器人中直流電機(jī)控制原理與驅(qū)動(dòng)電路設(shè)計(jì)

    這篇文章來分享下,ROS學(xué)習(xí)平臺(tái)中常常使用到的直流電機(jī)控制原理與驅(qū)動(dòng)電路。
    的頭像 發(fā)表于 03-17 10:45 ?1867次閱讀
    ROS<b class='flag-5'>機(jī)器人中直流電機(jī)</b><b class='flag-5'>控制</b>原理與驅(qū)動(dòng)電路設(shè)計(jì)

    arduino直流電機(jī)

    這一期我們來學(xué)習(xí)如何控制直流電機(jī)。 需要材料:Arduino UNO 直流電機(jī)——本文以12V額定電機(jī)為例
    發(fā)表于 03-30 13:46 ?3次下載
    <b class='flag-5'>arduino</b><b class='flag-5'>直流電機(jī)</b>

    使用Arduino和電位器控制直流電機(jī)速度

    直流電機(jī)機(jī)器人和電子項(xiàng)目中使用最多的電機(jī)。對(duì)于控制直流電機(jī)的速度,我們有多種方法,例如可以根據(jù)溫度自動(dòng)
    發(fā)表于 03-30 11:11 ?0次下載
    使用<b class='flag-5'>Arduino</b>和電位器<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>速度

    ros與arduino通信控制直流電機(jī)

    前言:成功通過arduino開發(fā)板控制直流電機(jī)后,開始嘗試用ros與arduino通信來控制
    發(fā)表于 03-31 11:45 ?4次下載
    ros與<b class='flag-5'>arduino</b>通信<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    繼電器控制直流電機(jī)

    Arduino、按鍵、繼電器、直流電機(jī) 軟件:Mixly IDE 四、實(shí)驗(yàn)過程(實(shí)驗(yàn)步驟、記錄、數(shù)據(jù)、分析) 核心代碼截圖: (1)、完成使用繼電器控制直流電機(jī)功能。
    發(fā)表于 04-03 11:01 ?4次下載
    繼電器<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>

    使用Arduino直流電機(jī)MOSFET控制速度

    電子發(fā)燒友網(wǎng)站提供《使用Arduino直流電機(jī)MOSFET控制速度.zip》資料免費(fèi)下載
    發(fā)表于 06-27 15:13 ?0次下載
    使用<b class='flag-5'>Arduino</b>的<b class='flag-5'>直流電機(jī)</b>MOSFET<b class='flag-5'>控制</b>速度

    使用Arduino控制直流電機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino控制直流電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 07-03 11:04 ?2次下載
    使用<b class='flag-5'>Arduino</b>來<b class='flag-5'>控制</b><b class='flag-5'>直流電機(jī)</b>