“第八课--脉冲计时(看你按住开关有多久)/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 第三课讲了按键的使用,其中注意了按键防抖的问题,解决方案是加一个延时,延时时间要根据具体...") |
|||
第1行: | 第1行: | ||
+ | {{Language|Lesson_8--Pulse_timing_(check_how_long_you_hold_down_the_switch)}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- |
2014年3月2日 (日) 14:43的版本
Language | English |
---|
目的第三课讲了按键的使用,其中注意了按键防抖的问题,解决方案是加一个延时,延时时间要根据具体情况而定,因为每个人按的按键时间不一样。这堂课将介绍如何获取按下一个按钮的时间,方案采用脉冲计时来计算。 今天还将简单介绍arduino的串口通讯,通过串口监视数据。 设备
脉冲脉冲是一个物理量在短时间或者是持续时间内突变后迅速回到其初始状态的过程,在Microduino中的脉冲其实就是一个高低变化的数字信号,一般具有周期性。脉冲计时常常用在光电码盘、霍尔元件等测速上。 原理图采用内部上拉,另外接104瓷片电容防抖。 程序int pin = 2; //定义引脚为D2
float time1,time2; //定义变量为浮点数
void setup()
{
Serial.begin(115200); //串口波特率
pinMode(pin, INPUT_PULLUP); //设置引脚为内部上拉输入模式
}
void loop()
{
//读取引脚上的低电平脉冲,最大脉冲时间间隔为60秒,并且把结果赋值给time1变量
time1= pulseIn(pin, LOW,60000000)/1000;//将读取的时间转换成ms
Serial.print(time1); //通过串口输出time1变量
Serial.print("ms ");
time2= pulseIn(pin, LOW,60000000)/1000.0;//将读取的时间转换成ms
Serial.print(time2); //通过串口输出time1变量
Serial.println("ms");//通过串口打印出单位并换行准备输出下一个值
}
}
串口监视打开串口监视器
PulseIn()函数
结果为了防抖,在按键信号变化端口加了一个104瓷片,可以更好的看到效果。 视频 |