LINK~ 发表于 2014-5-9 11:00:01

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

学习笔记1:测量自行车的转速程序,采用霍尔传感器,请各位大大多多指点~
//采用中断方式测量转速。
#define PinA 2          //中断0--接霍尔传感器模块3.3V--有效信号低电平
volatile unsigned long time = 0; //中断函数中,会失效
volatile unsigned long time1 = 0; //速度的单位时间
volatile unsigned long count = 0; //计数值如果变量要在中断中访问,要使用volatile进行申明
long num = 0;
long Speed=0;
int flag=0;

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

//主体程序
void loop()
{
if(flag==0)
{
    time1 = millis();
    flag=1;
}
else
{
    if ((millis() - time1)>=1000) //
    {
      Speed=count;
      count=0;
      flag=0;
    }
}
while (num != Speed)
{
    num = Speed;
    Serial.println(Speed);
}
}

//中断0调用函数
void blinkA()
{
if ((millis() - time) > 3) //防抖动处理
    count ++;
time = millis();
}

sam 发表于 2014-5-9 22:37:47

if ((millis() - time) > 3) //防抖动处理

//这个参数能防抖吗?建议适当延长一点:)

Flyfish 发表于 2014-10-13 23:06:12

想要请教下,您的这个程序可以运行吗?我是新手想要制作一个自行车里程表,测速仪,能不能指教下 啊?:)

求知小子2013 发表于 2015-11-30 22:38:26

我是新手,能给个接线图吗?

chenwei 发表于 2017-3-23 16:29:04

然并卵,串口一直输出1,0
页: [1]
查看完整版本: 学习笔记1:测量自行车的转速程序,采用霍尔传感器~~