“第八课--脉冲计时(看你按住开关有多久)/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 第三课讲了按键的使用,其中注意了按键防抖的问题,解决方案是加一个延时,延时时间要根据具体...") |
(→设备) |
||
(未显示1个用户的8个中间版本) | |||
第1行: | 第1行: | ||
+ | {{Language|Lesson_8--Pulse_timing_(check_how_long_you_hold_down_the_switch)}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
第6行: | 第7行: | ||
今天还将简单介绍arduino的串口通讯,通过串口监视数据。 | 今天还将简单介绍arduino的串口通讯,通过串口监视数据。 | ||
==设备== | ==设备== | ||
− | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
− | *'''[[Microduino- | + | *'''[[Microduino-USBTTL/zh]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
第13行: | 第14行: | ||
**按键 一个 | **按键 一个 | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
+ | |||
+ | |||
+ | [[File:lesson8All.jpg|600px|center|thumb]] | ||
==脉冲== | ==脉冲== | ||
脉冲是一个物理量在短时间或者是持续时间内突变后迅速回到其初始状态的过程,在Microduino中的脉冲其实就是一个高低变化的数字信号,一般具有周期性。脉冲计时常常用在光电码盘、霍尔元件等测速上。 | 脉冲是一个物理量在短时间或者是持续时间内突变后迅速回到其初始状态的过程,在Microduino中的脉冲其实就是一个高低变化的数字信号,一般具有周期性。脉冲计时常常用在光电码盘、霍尔元件等测速上。 | ||
==原理图== | ==原理图== | ||
− | [[File: | + | [[File:lesson8-schematic.jpg|600px|center|thumb]] |
采用内部上拉,另外接104瓷片电容防抖。 | 采用内部上拉,另外接104瓷片电容防抖。 | ||
+ | |||
==程序== | ==程序== | ||
<source lang="cpp"> | <source lang="cpp"> | ||
第39行: | 第44行: | ||
Serial.print(time2); //通过串口输出time1变量 | Serial.print(time2); //通过串口输出time1变量 | ||
Serial.println("ms");//通过串口打印出单位并换行准备输出下一个值 | Serial.println("ms");//通过串口打印出单位并换行准备输出下一个值 | ||
− | |||
} | } | ||
</source> | </source> | ||
+ | |||
==串口监视== | ==串口监视== | ||
===打开串口监视器=== | ===打开串口监视器=== | ||
*点击串口监视监视器按钮,弹出串口监视界面。 | *点击串口监视监视器按钮,弹出串口监视界面。 | ||
− | [[File: | + | [[File:lesson8-serialmonitor.jpg|600px|center|thumb]] |
− | [[File: | + | [[File:lesson8-serialwindow.jpg|600px|center|thumb]] |
*注意: | *注意: | ||
第53行: | 第58行: | ||
*单位转换时需要注意数据类型,看似一样的计算,结果却不一样: | *单位转换时需要注意数据类型,看似一样的计算,结果却不一样: | ||
− | [[File: | + | [[File:lesson-calculate.jpg|600px|center|thumb]] |
===PulseIn()函数=== | ===PulseIn()函数=== | ||
第67行: | 第72行: | ||
==结果== | ==结果== | ||
为了防抖,在按键信号变化端口加了一个104瓷片,可以更好的看到效果。 | 为了防抖,在按键信号变化端口加了一个104瓷片,可以更好的看到效果。 | ||
− | [[File: | + | [[File:lesson8-capacitance.jpg|600px|center|thumb]] |
+ | [[File:lesson8Result.jpg|600px|center|thumb]] | ||
+ | |||
==视频== | ==视频== | ||
|} | |} | ||
+ | |||
+ | http://v.youku.com/v_show/id_XNzEwMDA0Njgw.html |
2014年10月29日 (三) 03:27的最新版本
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瓷片,可以更好的看到效果。 视频 |