之前在掏寶買的光電轉速計....剛好最近有量馬達的需求...就把他裝起來...
掏寶連結如下: https://world.taobao.com/item/20059648052.htm?fromSite=main&spm=a312a.7700846.0.0.OPM0NM&_u=d2bnm38caed7
架設起來的照片如下:
那個綠色的電路板就是光電轉速計.....
他其實就是三個訊號....VCC,GND,SIG
SIG會輸出類似方波的訊號.....當碼盤來到有洞的地方....會輸出 0.....來到沒有洞的地方... 會輸
出1....利用這個特性...我們就可以測試轉速.....
目前我是用arduino 來接收訊號....程式碼如下:
利用中斷的作法...當 sig 產生一個正緣的訊號...就把 total_cnt ++;
然後每隔一秒printf 出來total_cnt......
量測出來的結果如下
Back Rear motor:
PWM -> rpm
1200 -> 1790
1250 -> 2266
1300 -> 2550
1350 -> 2800
1400 -> 2970
1500 -> 3228
1550 -> 3305
1600 -> 3388
1650 -> 3442
1700 -> 3480
1800 -> 3560
1900 -> 3760
Front Rear motor :
PWM -> rpm
1200 -> 1720
1250 -> 2099
1300 -> 2400
1350 -> 2623
1400 -> 2823
1450 -> 3000
1500 -> 3080
1550 -> 3169
1600 -> 3255
1650 -> 3308
1700 -> 3350
1750 -> 3400
1800 -> 3442
1850 -> 3574
1900 -> 3636
=====================================================================
#include <PinChangeInt.h>
int Pin = 2;
int val;
unsigned int total_cnt=0;
unsigned int older_cnt=0;
void setup()
{
Serial.begin(9600); //for debugging...
pinMode(Pin, INPUT);
PCintPort::attachInterrupt(Pin, calc,RISING);
total_cnt =0;
older_cnt =0;
}
void loop()
{
// val = digitalRead(Pin);
//Serial.println(val); // debug value
delay(1000);
// Serial.println(end_time);
if(total_cnt > older_cnt)
{
Serial.println(total_cnt - older_cnt);
}
older_cnt = total_cnt;
}
void calc()
{
total_cnt++ ;
}
請問你的函式庫要怎麼使用呢
回覆刪除我下載好放進library是灰色的
我是使用CNY70代替你文中的感應器
想要藉此達到測量轉速工具
但是真的不知道接下來怎麼作