设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10091|回复: 1

Arduino入门教程—U型测速模块的使用

[复制链接]

签到天数: 511 天

[LV.9]以坛为家II

发表于 2013-11-23 11:27:28 | 显示全部楼层 |阅读模式
本帖最后由 AllBlue 于 2013-11-23 12:50 编辑

U型测速模块的使用
今天做了一个电机测速实验!
实验元件:

U型测速模块

TT马达和测速码盘

标准电源(3V和6V)

使用了淘宝上很便宜的TT马达,下图为TT马达的几个基本参数:

TT电机参数.jpg
我本次使用的是1:48的减速比电机,其他两个都没有测试~~~
下面是U型测速模块图片:
U型传感器.jpg
电路:(电路图就不画了,接线很简单)
将上面的U型测速模块接好,G接GND、V接5V、S接数字引脚2或者3(使用中断,只能接这两个脚),
然后将码盘和TT马达安装在一起,就可以试验了。

接好后,用一个遮挡物放在U型开关之间,模块上的LED点亮,无遮挡物时,LED不亮;
利用这一原理,当信号输出变化一次就计数一次,再经过一些列的换算就可以得到转速了~~

下面我们看下程序,将其复制到Arduino IDE中,烧写入UNO中:
  1. /************************************************************************
  2. * 电机测速
  3. * 使用millis()函数,记录时间,单位为毫秒
  4. * 使用中断函数,当引脚电平改变时触发,计数一次
  5. * 以1:48减速电机、20孔的码盘为例
  6. * 将得到的值Val除以40,得到转动圈数
  7. * 除以当时的时间,因为时间单位为毫秒,除以60000转换为分
  8. * 这时候得到电机转速Speed ,单位 转/分
  9. * 注意;测出来的值会有些误差,比实际值大,是因为码盘与电机轴有一定距离
  10. * BY YFROBOT
  11. ************************************************************************/

  12. //设置模块引脚接到数字引脚2(程序用到中断函数,UNO中断引脚为数字引脚2和3)
  13. int U_Pin = 2;   
  14. float Val = 0;      //设置变量Val,计数
  15. float time;  //设置变量time,计时
  16. float Speed;  //设置变量Speed,存储转速

  17. void setup(){

  18.   Serial.begin(9600);
  19.   attachInterrupt(0,count,CHANGE);    //引脚电平发生改变时触发
  20. }

  21. void loop(){

  22.   time = millis();
  23.   Speed =  (Val/40)/(time/60000) ;
  24.   Serial.println(Speed);
  25. }

  26. void count(){
  27.   Val += 1;
  28. }
复制代码
接上电源,测试结果结果如下(3V与6V,单位为转/分):
48减速比—3V测速结果.png 48减速比—6V测速结果.png
测试结果与上面的表中有些误差,这是因为码盘有直径,测试结果是码盘的转速,你也可以将结果再换算下,应该就可以得到电机的转速了~~~

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2013-11-30 08:21:59 | 显示全部楼层
表格上的应该是参考数据,另外有误差,应该是由于码盘的精度不够!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-12-12 02:58 , Processed in 0.176597 second(s), 26 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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