学习笔记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();
}
if ((millis() - time) > 3) //防抖动处理
//这个参数能防抖吗?建议适当延长一点:) 想要请教下,您的这个程序可以运行吗?我是新手想要制作一个自行车里程表,测速仪,能不能指教下 啊?:) 我是新手,能给个接线图吗? 然并卵,串口一直输出1,0
页:
[1]