TShopping

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

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

[複製鏈接]
發表於 2020-5-16 18:26:38 | 顯示全部樓層 |閱讀模式
Push to Facebook Push to Plurk  
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分別接在GPIO16及GPIO17上,INB與INA代表正反轉


  1. int INA = 16;
  2. int INB = 17;

  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. }
複製代碼


影片






臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2020-6-4 00:26 , Processed in 0.058323 second(s), 24 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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