极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22099|回复: 4

学习笔记1:测量自行车的转速程序,采用霍尔传感器~~

[复制链接]
发表于 2014-5-9 11:00:01 | 显示全部楼层 |阅读模式
学习笔记1:测量自行车的转速程序,采用霍尔传感器,请各位大大多多指点~
  1. //采用中断方式测量转速。
  2. #define PinA 2          //中断0--接霍尔传感器模块  3.3V--有效信号低电平
  3. volatile unsigned long time = 0; //中断函数中,会失效
  4. volatile unsigned long time1 = 0; //速度的单位时间
  5. volatile unsigned long count = 0; //计数值  如果变量要在中断中访问,要使用volatile进行申明
  6. long num = 0;
  7. long Speed=0;
  8. int flag=0;

  9. //初始化
  10. void setup()
  11. {
  12.   Serial.begin(9600); //窗口初始化
  13.   pinMode(PinA,INPUT); //D2脚为输入
  14.   attachInterrupt(0, blinkA, LOW);  //注册中断0调用函数blinkA
  15.   time = millis(); //时间初值
  16.   time1 = millis(); //时间初值
  17. }

  18. //主体程序
  19. void loop()
  20. {
  21.   if(flag==0)
  22.   {
  23.     time1 = millis();
  24.     flag=1;  
  25.   }
  26.   else
  27.   {
  28.     if ((millis() - time1)>=1000) //
  29.     {
  30.       Speed=count;
  31.       count=0;
  32.       flag=0;
  33.     }
  34.   }
  35.   while (num != Speed)
  36.   {
  37.     num = Speed;
  38.     Serial.println(Speed);
  39.   }
  40. }

  41. //中断0调用函数
  42. void blinkA()
  43. {
  44.   if ((millis() - time) > 3) //防抖动处理
  45.     count ++;
  46.   time = millis();
  47. }
复制代码
回复

使用道具 举报

发表于 2014-5-9 22:37:47 | 显示全部楼层
if ((millis() - time) > 3) //防抖动处理

//这个参数能防抖吗?建议适当延长一点:)
回复 支持 反对

使用道具 举报

发表于 2014-10-13 23:06:12 | 显示全部楼层
想要请教下,您的这个程序可以运行吗?我是新手想要制作一个自行车里程表,测速仪,能不能指教下 啊?
回复 支持 反对

使用道具 举报

发表于 2015-11-30 22:38:26 | 显示全部楼层
我是新手,能给个接线图吗?
回复 支持 反对

使用道具 举报

发表于 2017-3-23 16:29:04 | 显示全部楼层
然并卵,串口一直输出1,0
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 08:13 , Processed in 0.046525 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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