找回密碼
 註冊
搜索
查看: 3048|回復: 0

[教學] Arduino EPS32 DEVKIT V1 用PWM控制轉速正反轉

[複製鏈接]
發表於 2020-5-16 18:26:38 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
Arduino EPS32 DEVKIT V1 腳位

Arduino EPS32 DEVKIT PWM 控制轉速

Arduino EPS32 DEVKIT  PWM 控制轉速


使用L9110 Fan Motor,可以用PWM控制轉速,不會像DC馬達一起動吃掉電流,導致當機。

Arduino EPS32 DEVKIT PWM 控制轉速

Arduino EPS32 DEVKIT  PWM 控制轉速
數位輸出時結果
INA
INB
結果
HIGH
LOW
正轉
LOW
HIGH
反轉
LOW
LOW
停止
HIGH
HIGH
停止
類比輸出要注意的地方則是,由於電壓太低通常無法啟動,所以先把output加到255,再從80逐漸上升。
INA
INB
結果
80~255
LOW
慢慢增加正轉
LOW
80~255
慢慢增加反轉


將INB、INA分別接在GPIO26及GPIO27上,INB與INA代表正反轉


  1. int INA = 26;
  2. int INB = 27;

  3. void setup()
  4. {
  5.   Serial.begin(9600);
  6.   pinMode(INA,OUTPUT);
  7.   pinMode(INB,OUTPUT);
  8.   //digital output test
  9.   Serial.println("INA=LOW,INB=HIGH");
  10.   digitalWrite(INA,LOW);
  11.   digitalWrite(INB,HIGH);
  12.   delay(3000);
  13.   Serial.println("INA=HIGH,INB=LOW");
  14.   digitalWrite(INA,HIGH);
  15.   digitalWrite(INB,LOW);
  16.   delay(3000);
  17.   Serial.println("INA=LOW,INB=LOW");
  18.   digitalWrite(INA,LOW);
  19.   digitalWrite(INB,LOW);
  20.   delay(3000);
  21.   Serial.println("INA=HIGH,INB=HIGH");
  22.   digitalWrite(INA,HIGH);
  23.   digitalWrite(INB,HIGH);
  24.   delay(3000);
  25.   //analog output(PWM) test  
  26.   ledcSetup(0, 5000, 8);
  27.   ledcSetup(1, 5000, 8);
  28.   ledcAttachPin(INA, 0);
  29.   ledcAttachPin(INB, 1);  
  30.   //prepare forward
  31.   Serial.println("INA=i++,INB=LOW");
  32.   ledcWrite(1, 0);
  33.   ledcWrite(0, 255);//避免電流太低無法啟動
  34.   delay(300);
  35.   for (int i=80;i<=255;i++)
  36.   {
  37.     ledcWrite(0, i);
  38.     ledcWrite(1, 0);
  39.     Serial.println(i);
  40.     delay(100);
  41.   }
  42.   ledcWrite(0, 0);
  43.   ledcWrite(1, 0);
  44.   delay(3000);
  45.   //prepare reverse
  46.   Serial.println("INA=LOW,INB=i++");
  47.   ledcWrite(0, 0);
  48.   ledcWrite(1, 255);//避免電流太低無法啟動
  49.   delay(300);
  50.   for (int i=80;i<=255;i++)
  51.   {
  52.     ledcWrite(1, i);
  53.     ledcWrite(0, 0);
  54.     Serial.println(i);
  55.     delay(100);
  56.   }
  57.   ledcWrite(0, 0);
  58.   ledcWrite(1, 0);
  59.     delay(3000);
  60. }

  61. void loop()
  62. {


  63. }
複製代碼


影片



文章出處:網頁設計,網站架設 ,網路行銷,網頁優化,SEO - NetYea 網頁設計
 
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|TShopping

GMT+8, 2025-5-1 11:54 , Processed in 0.026231 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表