標題: 測速模塊計數(shù)傳感器的Arduino源程序 [打印本頁]
作者: wkings 時間: 2018-8-15 19:30
標題: 測速模塊計數(shù)傳感器的Arduino源程序
計數(shù)傳感器 Arduino
VCC 5V
GND GND
OUT D3
==接線示意圖==
==例子程序==
Int speedPin=3;//定義數(shù)字3接口
int cntValue=0;
void setup ()
{
pinMode(speedPin,INPUT);//3號數(shù)字口設(shè)置為輸入狀態(tài)
Serial.begin(9600);
Serial.println("Speed Count\n");
}
void loop()
{
//判斷是否被遮擋
if(digitalRead(speedPin)==0)
{cntValue++;//計數(shù)增加
Serial.println(cntValue);//串口輸出計數(shù)值
while(digitalRead(speedPin)==0);//等待遮擋結(jié)束
}
}
==程序效果==
通過遮擋槽型光耦傳感器,不斷計數(shù)。
U型測速模塊的使用
今天做了一個電機測速實驗!實驗元件:
U型測速模塊
TT馬達和測速碼盤
標準電源(3V和6V)
使用了淘寶上很便宜的TT馬達,下圖為TT馬達的幾個基本參數(shù):
我本次使用的是1:48的減速比電機,其他兩個都沒有測試~~~
下面是U型測速模塊圖片:
電路:(電路圖就不畫了,接線很簡單)
將上面的U型測速模塊接好,G接GND、V接5V、S接數(shù)字引腳2或者3(使用中斷,只能接這兩個腳),
然后將碼盤和TT馬達安裝在一起,就可以試驗了。
接好后,用一個遮擋物放在U型開關(guān)之間,模塊上的LED點亮,無遮擋物時,LED不亮;
利用這一原理,當信號輸出變化一次就計數(shù)一次,再經(jīng)過一些列的換算就可以得到轉(zhuǎn)速了~~
下面我們看下程序,將其復制到Arduino IDE中,燒寫入UNO中:/***********************************************************************
* 電機測速
* 使用millis()函數(shù),記錄時間,單位為毫秒
* 使用中斷函數(shù),當引腳電平改變時觸發(fā),計數(shù)一次
* 以1:48減速電機、20孔的碼盤為例
* 將得到的值Val除以40,得到轉(zhuǎn)動圈數(shù)
* 除以當時的時間,因為時間單位為毫秒,除以60000轉(zhuǎn)換為分
* 這時候得到電機轉(zhuǎn)速Speed ,單位 轉(zhuǎn)/分
* 注意;測出來的值會有些誤差,比實際值大,是因為碼盤與電機軸有一定距離
* BY YFROBOT
************************************************************************/
//設(shè)置模塊引腳接到數(shù)字引腳2(程序用到中斷函數(shù),UNO中斷引腳為數(shù)字引腳2和3)
int U_Pin = 2;
float Val = 0; //設(shè)置變量Val,計數(shù)
float time; //設(shè)置變量time,計時
float Speed; //設(shè)置變量Speed,存儲轉(zhuǎn)速
void setup(){
Serial.begin(9600);
attachInterrupt(0,count,CHANGE); //引腳電平發(fā)生改變時觸發(fā)
}
void loop(){
time = millis();
Speed = (Val/40)/(time/60000) ;
Serial.println(Speed);
}
void count(){
Val += 1;
}
接上電源,測試結(jié)果結(jié)果如下(3V與6V,單位為轉(zhuǎn)/分):
測試結(jié)果與上面的表中有些誤差,這是因為碼盤有直徑,測試結(jié)果是碼盤的轉(zhuǎn)速,你也可以將結(jié)果再換算下,應該就可以得到電機的轉(zhuǎn)速了~~~
0.png (44.93 KB, 下載次數(shù): 92)
下載附件
2018-8-16 01:40 上傳
全部資料51hei下載地址:
智能小車測速模塊 碼盤計數(shù) 測速傳感器模塊 送測試程序.rar
(1.97 MB, 下載次數(shù): 85)
2018-8-15 19:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: lm18007726198 時間: 2018-8-27 09:24
為什么除以40呢?
作者: lxllxlcc 時間: 2018-9-11 09:14
下載學習
作者: kksu49 時間: 2019-6-20 09:23
應該是因為 他使用的 碼盤 有40 個柵欄, 所以就是 轉(zhuǎn)一圈 會有40 次的信號觸發(fā)。 /40 就正好是1 圈的意思
作者: shangshandalaoh 時間: 2019-9-24 09:04
正想做一個風車測速,謝謝,正好用上。
作者: guoping999 時間: 2020-2-25 18:39
電機怎么放呢?
作者: guoping999 時間: 2020-2-25 18:46
請問樓主能不能發(fā)個實物接線圖,小白了解下是如何測量的
作者: 界限 時間: 2021-1-8 19:55
為什么我用這個程序是數(shù)值持續(xù)上升的
作者: 都不對 時間: 2021-12-11 20:49
可能他是記得電平變化,不是被遮擋次數(shù),所以多除以了2
作者: ziba108 時間: 2023-7-29 18:55
正想做一個風車測速,謝謝,正好用上。
作者: 47okey 時間: 2023-9-20 22:17
一樣的也是一直上升
作者: 47okey 時間: 2023-9-20 22:19
本帖最后由 47okey 于 2023-9-20 22:25 編輯
我也是
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |