找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15377|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

測速模塊計(jì)數(shù)傳感器的Arduino源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
計(jì)數(shù)傳感器 Arduino
VCC 5V
GND GND
OUT D3
==接線示意圖==
==例子程序==
Int speedPin=3;//定義數(shù)字3接口
int cntValue=0;
void setup ()
{
pinMode(speedPin,INPUT);//3號(hào)數(shù)字口設(shè)置為輸入狀態(tài)
Serial.begin(9600);
Serial.println("Speed Count\n");
}
void loop()
{
//判斷是否被遮擋
if(digitalRead(speedPin)==0)
{cntValue++;//計(jì)數(shù)增加
Serial.println(cntValue);//串口輸出計(jì)數(shù)值
while(digitalRead(speedPin)==0);//等待遮擋結(jié)束
}
}
==程序效果==
通過遮擋槽型光耦傳感器,不斷計(jì)數(shù)。
U型測速模塊的使用
今天做了一個(gè)電機(jī)測速實(shí)驗(yàn)!實(shí)驗(yàn)元件:
U型測速模塊
TT馬達(dá)和測速碼盤
標(biāo)準(zhǔn)電源(3V和6V)
使用了淘寶上很便宜的TT馬達(dá),下圖為TT馬達(dá)的幾個(gè)基本參數(shù):
我本次使用的是1:48的減速比電機(jī),其他兩個(gè)都沒有測試~~~
下面是U型測速模塊圖片:

電路:(電路圖就不畫了,接線很簡單)
將上面的U型測速模塊接好,G接GND、V接5V、S接數(shù)字引腳2或者3(使用中斷,只能接這兩個(gè)腳),
然后將碼盤和TT馬達(dá)安裝在一起,就可以試驗(yàn)了。
接好后,用一個(gè)遮擋物放在U型開關(guān)之間,模塊上的LED點(diǎn)亮,無遮擋物時(shí),LED不亮;
利用這一原理,當(dāng)信號(hào)輸出變化一次就計(jì)數(shù)一次,再經(jīng)過一些列的換算就可以得到轉(zhuǎn)速了~~
下面我們看下程序,將其復(fù)制到Arduino IDE中,燒寫入U(xiǎn)NO中:
/***********************************************************************
* 電機(jī)測速
* 使用millis()函數(shù),記錄時(shí)間,單位為毫秒
* 使用中斷函數(shù),當(dāng)引腳電平改變時(shí)觸發(fā),計(jì)數(shù)一次
* 以1:48減速電機(jī)、20孔的碼盤為例
* 將得到的值Val除以40,得到轉(zhuǎn)動(dòng)圈數(shù)
* 除以當(dāng)時(shí)的時(shí)間,因?yàn)闀r(shí)間單位為毫秒,除以60000轉(zhuǎn)換為分
* 這時(shí)候得到電機(jī)轉(zhuǎn)速Speed ,單位 轉(zhuǎn)/分
* 注意;測出來的值會(huì)有些誤差,比實(shí)際值大,是因?yàn)榇a盤與電機(jī)軸有一定距離
* BY YFROBOT
************************************************************************/
//設(shè)置模塊引腳接到數(shù)字引腳2(程序用到中斷函數(shù),UNO中斷引腳為數(shù)字引腳2和3)
int U_Pin = 2;   
float Val = 0;      //設(shè)置變量Val,計(jì)數(shù)
float time;  //設(shè)置變量time,計(jì)時(shí)
float Speed;  //設(shè)置變量Speed,存儲(chǔ)轉(zhuǎn)速
void setup(){
  Serial.begin(9600);
  attachInterrupt(0,count,CHANGE);    //引腳電平發(fā)生改變時(shí)觸發(fā)
}
void loop(){
  time = millis();
  Speed =  (Val/40)/(time/60000) ;
  Serial.println(Speed);
}
void count(){
  Val += 1;
}
接上電源,測試結(jié)果結(jié)果如下(3V與6V,單位為轉(zhuǎn)/分):

測試結(jié)果與上面的表中有些誤差,這是因?yàn)榇a盤有直徑,測試結(jié)果是碼盤的轉(zhuǎn)速,你也可以將結(jié)果再換算下,應(yīng)該就可以得到電機(jī)的轉(zhuǎn)速了~~~


全部資料51hei下載地址:
智能小車測速模塊 碼盤計(jì)數(shù) 測速傳感器模塊 送測試程序.rar (1.97 MB, 下載次數(shù): 85)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:258474 發(fā)表于 2018-8-27 09:24 | 只看該作者
為什么除以40呢?
回復(fù)

使用道具 舉報(bào)

板凳
ID:298213 發(fā)表于 2018-9-11 09:14 | 只看該作者
下載學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

地板
ID:567551 發(fā)表于 2019-6-20 09:23 | 只看該作者

應(yīng)該是因?yàn)?他使用的 碼盤 有40 個(gè)柵欄, 所以就是 轉(zhuǎn)一圈 會(huì)有40 次的信號(hào)觸發(fā)。  /40  就正好是1 圈的意思
回復(fù)

使用道具 舉報(bào)

5#
ID:403538 發(fā)表于 2019-9-24 09:04 | 只看該作者
正想做一個(gè)風(fēng)車測速,謝謝,正好用上。
回復(fù)

使用道具 舉報(bào)

6#
ID:698146 發(fā)表于 2020-2-25 18:39 | 只看該作者
電機(jī)怎么放呢?
回復(fù)

使用道具 舉報(bào)

7#
ID:698146 發(fā)表于 2020-2-25 18:46 | 只看該作者
請(qǐng)問樓主能不能發(fā)個(gè)實(shí)物接線圖,小白了解下是如何測量的
回復(fù)

使用道具 舉報(bào)

8#
ID:875439 發(fā)表于 2021-1-8 19:55 | 只看該作者
為什么我用這個(gè)程序是數(shù)值持續(xù)上升的
回復(fù)

使用道具 舉報(bào)

9#
ID:991033 發(fā)表于 2021-12-11 20:49 | 只看該作者
kksu49 發(fā)表于 2019-6-20 09:23
應(yīng)該是因?yàn)?他使用的 碼盤 有40 個(gè)柵欄, 所以就是 轉(zhuǎn)一圈 會(huì)有40 次的信號(hào)觸發(fā)。  /40  就正好是1 圈的 ...

可能他是記得電平變化,不是被遮擋次數(shù),所以多除以了2
回復(fù)

使用道具 舉報(bào)

10#
ID:138707 發(fā)表于 2023-7-29 18:55 | 只看該作者
正想做一個(gè)風(fēng)車測速,謝謝,正好用上。
回復(fù)

使用道具 舉報(bào)

11#
ID:105364 發(fā)表于 2023-9-20 22:17 | 只看該作者
界限 發(fā)表于 2021-1-8 19:55
為什么我用這個(gè)程序是數(shù)值持續(xù)上升的

一樣的也是一直上升
回復(fù)

使用道具 舉報(bào)

12#
ID:105364 發(fā)表于 2023-9-20 22:19 | 只看該作者
本帖最后由 47okey 于 2023-9-20 22:25 編輯
界限 發(fā)表于 2021-1-8 19:55
為什么我用這個(gè)程序是數(shù)值持續(xù)上升的

我也是
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表