趁著今天休假,將小車的壓克力板切割出一塊約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 光電對射式計數器模組可以跟樹莓派連接嗎?
回覆刪除張貼留言