ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第三十一篇:ESP32 結合L9110馬達驅動模組 – 智能風扇控制

實驗說明:

本篇將製作一個簡單的ESP32智能風扇,風扇模組可通過馬達驅動模組對扇葉的轉速進行調節。在本篇實驗中將會使用L9110馬達驅動模組,此模組的尺寸非常小,接線簡單非常簡單,功能也不輸L298N,程式也非常的好寫。L9110馬達驅動模組,可連接兩顆直流馬達,每顆馬達可由兩條訊號線來控制,並控制兩條線的高低電位來處理馬達正轉或反轉,當然也可以透過PWM的輸出訊號來控制調節馬達轉速。非常適合製作自走車與電風扇等需要動力的專題。

 

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • L9110馬達驅動模組
  • 風扇模組
  • 麵包板
  • 杜邦線

▼ 購買IoT物聯網學習教材:

ESP32 物聯網應用學習套件 ESP32CAM IoT物聯網學習教材 適用Arduino

 

程式範例一(數位輸出控制):

 

int A_1A=16; //L9110S馬達驅動板 A_1A腳 連接到ESP32的 GPIO16 
int A_1B=17; //L9110S馬達驅動板 A_1B腳 連接到ESP32的 GPIO17

void setup() {
  pinMode(A_1A,OUTPUT);
  pinMode(A_1B,OUTPUT);
}

void loop() {  
    //風扇正轉
    digitalWrite(A_1B,HIGH); 
    digitalWrite(A_1A,LOW);
    delay(5000);

    //風扇反轉
    digitalWrite(A_1B,LOW); 
    digitalWrite(A_1A,HIGH);
    delay(5000);

    //停止風扇轉動
    digitalWrite(A_1B,LOW); 
    digitalWrite(A_1A,LOW);
    delay(5000);

}

 

程式範例二(PWM訊號輸出控制):

須先安裝 ESP32 AnalogWrite 程式庫,安裝方式可參考第八篇:PWM呼吸燈 調控燈光亮度

注意:由於電壓太低是無法推動馬達,所以建議是75~255值。

 

▼注意:假如使用下列程式碼發生編譯錯誤,則表示您目前安裝的ESP32函式庫較為新版,請務必將「#include <analogWrite.h>」這一行移除並重新編譯,則可編譯成功並正常運行。

#include <analogWrite.h> 

int A_1A=16; //L9110S馬達驅動板 A_1A腳 連接到ESP32的 GPIO16 
int A_1B=17; //L9110S馬達驅動板 A_1B腳 連接到ESP32的 GPIO17

void setup() {
  pinMode(A_1A,OUTPUT);
  pinMode(A_1B,OUTPUT);
}

void loop() {
  
  //風扇正轉,馬達的轉速由75逐漸上升
  for (int i = 75; i < 255; i++) { 
    analogWrite(A_1B,i); 
    analogWrite(A_1A,LOW);
    delay(100); 
  }

  //風扇反轉,馬達的轉速由75逐漸上升
  for (int i = 75; i < 255; i++) { 
    analogWrite(A_1B,LOW); 
    analogWrite(A_1A,i);
    delay(100); 
  }
  
  //停止風扇轉動
  analogWrite(A_1B,LOW); 
  analogWrite(A_1A,LOW);
  delay(3000);
}

 

 

 

 

相關文章