找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13484|回复: 11
收起左侧

测速模块计数传感器的Arduino源程序

  [复制链接]
ID:291220 发表于 2018-8-15 19:30 | 显示全部楼层 |阅读模式
计数传感器 Arduino
VCC 5V
GND GND
OUT D3
==接线示意图==
==例子程序==
Int speedPin=3;//定义数字3接口
int cntValue=0;
void setup ()
{
pinMode(speedPin,INPUT);//3号数字口设置为输入状态
Serial.begin(9600);
Serial.println("Speed Count\n");
}
void loop()
{
//判断是否被遮挡
if(digitalRead(speedPin)==0)
{cntValue++;//计数增加
Serial.println(cntValue);//串口输出计数值
while(digitalRead(speedPin)==0);//等待遮挡结束
}
}
==程序效果==
通过遮挡槽型光耦传感器,不断计数。
U型测速模块的使用
今天做了一个电机测速实验!实验元件:
U型测速模块
TT马达和测速码盘
标准电源(3V和6V)
使用了淘宝上很便宜的TT马达,下图为TT马达的几个基本参数:
我本次使用的是1:48的减速比电机,其他两个都没有测试~~~
下面是U型测速模块图片:

电路:(电路图就不画了,接线很简单)
将上面的U型测速模块接好,G接GND、V接5V、S接数字引脚2或者3(使用中断,只能接这两个脚),
然后将码盘和TT马达安装在一起,就可以试验了。
接好后,用一个遮挡物放在U型开关之间,模块上的LED点亮,无遮挡物时,LED不亮;
利用这一原理,当信号输出变化一次就计数一次,再经过一些列的换算就可以得到转速了~~
下面我们看下程序,将其复制到Arduino IDE中,烧写入UNO中:
/***********************************************************************
* 电机测速
* 使用millis()函数,记录时间,单位为毫秒
* 使用中断函数,当引脚电平改变时触发,计数一次
* 以1:48减速电机、20孔的码盘为例
* 将得到的值Val除以40,得到转动圈数
* 除以当时的时间,因为时间单位为毫秒,除以60000转换为分
* 这时候得到电机转速Speed ,单位 转/分
* 注意;测出来的值会有些误差,比实际值大,是因为码盘与电机轴有一定距离
* BY YFROBOT
************************************************************************/
//设置模块引脚接到数字引脚2(程序用到中断函数,UNO中断引脚为数字引脚2和3)
int U_Pin = 2;   
float Val = 0;      //设置变量Val,计数
float time;  //设置变量time,计时
float Speed;  //设置变量Speed,存储转速
void setup(){
  Serial.begin(9600);
  attachInterrupt(0,count,CHANGE);    //引脚电平发生改变时触发
}
void loop(){
  time = millis();
  Speed =  (Val/40)/(time/60000) ;
  Serial.println(Speed);
}
void count(){
  Val += 1;
}
接上电源,测试结果结果如下(3V与6V,单位为转/分):

测试结果与上面的表中有些误差,这是因为码盘有直径,测试结果是码盘的转速,你也可以将结果再换算下,应该就可以得到电机的转速了~~~

0.png
全部资料51hei下载地址:
智能小车测速模块 码盘计数 测速传感器模块 送测试程序.rar (1.97 MB, 下载次数: 82)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:258474 发表于 2018-8-27 09:24 | 显示全部楼层
为什么除以40呢?
回复

使用道具 举报

ID:298213 发表于 2018-9-11 09:14 | 显示全部楼层
下载学习
回复

使用道具 举报

ID:567551 发表于 2019-6-20 09:23 | 显示全部楼层

应该是因为 他使用的 码盘 有40 个栅栏, 所以就是 转一圈 会有40 次的信号触发。  /40  就正好是1 圈的意思
回复

使用道具 举报

ID:403538 发表于 2019-9-24 09:04 | 显示全部楼层
正想做一个风车测速,谢谢,正好用上。
回复

使用道具 举报

ID:698146 发表于 2020-2-25 18:39 | 显示全部楼层
电机怎么放呢?
回复

使用道具 举报

ID:698146 发表于 2020-2-25 18:46 | 显示全部楼层
请问楼主能不能发个实物接线图,小白了解下是如何测量的
回复

使用道具 举报

ID:875439 发表于 2021-1-8 19:55 | 显示全部楼层
为什么我用这个程序是数值持续上升的
回复

使用道具 举报

ID:991033 发表于 2021-12-11 20:49 | 显示全部楼层
kksu49 发表于 2019-6-20 09:23
应该是因为 他使用的 码盘 有40 个栅栏, 所以就是 转一圈 会有40 次的信号触发。  /40  就正好是1 圈的 ...

可能他是记得电平变化,不是被遮挡次数,所以多除以了2
回复

使用道具 举报

ID:138707 发表于 2023-7-29 18:55 | 显示全部楼层
正想做一个风车测速,谢谢,正好用上。
回复

使用道具 举报

ID:105364 发表于 2023-9-20 22:17 | 显示全部楼层
界限 发表于 2021-1-8 19:55
为什么我用这个程序是数值持续上升的

一样的也是一直上升
回复

使用道具 举报

ID:105364 发表于 2023-9-20 22:19 | 显示全部楼层
本帖最后由 47okey 于 2023-9-20 22:25 编辑
界限 发表于 2021-1-8 19:55
为什么我用这个程序是数值持续上升的

我也是
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表