趁著今天休假,將小車的壓克力板切割出一塊約1cm * 3cm的區域,可以放置 20 柵格的測速轉輪,讓它不會卡在車板上。我買這個智慧小車模組時,沒有留意不能安裝測速的模組,連安裝 20柵格的輪子也不行,只好自己動手加以改造 (如下圖)。
智慧小車安裝完成後,因不確定使用兩個 18650電池 (7.4V) 的電壓可跑多快,只好加裝以 LM393 這顆 IC 為主的光電對射式測速模組,來測得輪子的轉速。以下是我用Arduino Mega安裝 L293D 馬達驅動擴展板,來驅動四個輪子,再用Arduino nano接 LM393測速模組,從監控視窗上得知目前輪子每分鐘轉幾圈,以下是執行的過程與結果:
• LM393 光電對射式計數器模組 x1
• 連接線 x 3
• 智慧小車模組 x1
• Arduino Mega x1
• L293D 馬達驅動擴展板 x1
• 18650 電池盒及電池 x2
智慧小車安裝完成後,因不確定使用兩個 18650電池 (7.4V) 的電壓可跑多快,只好加裝以 LM393 這顆 IC 為主的光電對射式測速模組,來測得輪子的轉速。以下是我用Arduino Mega安裝 L293D 馬達驅動擴展板,來驅動四個輪子,再用Arduino nano接 LM393測速模組,從監控視窗上得知目前輪子每分鐘轉幾圈,以下是執行的過程與結果:
[材料]
• Arduino Nano x 1• LM393 光電對射式計數器模組 x1
• 連接線 x 3
• 智慧小車模組 x1
• Arduino Mega x1
• L293D 馬達驅動擴展板 x1
• 18650 電池盒及電池 x2
[接線圖]
• LM393 光電對射式計數器模組連接線路
LM393
光電對射式計數器模組
|
Arduino
|
1 - VCC
|
VCC
|
2 - GND
|
GND
|
3 - D0
|
Pin 2
|
4 - A0
|
-
|
[程式]
unsigned int count=0; int counterPin = 2; unsigned long time2; unsigned int rpm; unsigned int grid_num = 20; void counter() { count++; } void setup() { Serial.begin(9600); pinMode(counterPin, INPUT); attachInterrupt(0, counter, FALLING); count = 0; rpm = 0; time2 = 0; } void loop() { if (millis() - time2 >= 1000){ /* 每秒更新 */ // 計算 rpm 時,停止計時 detachInterrupt(0); // 偵測的格數count * (60 * 1000 / 一圈網格數20)/ 時間差) rpm = (60 * 1000 / grid_num )/ (millis() - time2)* count; time2 = millis(); count = 0; // 輸出至Console Serial.print("RPM = "); Serial.println(rpm,DEC); //Restart the interrupt processing attachInterrupt(0, counter, FALLING); } }
請問一下,LM393 光電對射式計數器模組可以跟樹莓派連接嗎?
回覆刪除張貼留言