完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
该教程实验平台:Arduino入门套件
上一篇教程:Arduino教程 Lesson 8 -- 温度报警器 震动传感器,我们从名字中应该就可以判断,传感器能够检测震动中的物体。我们用什么来做震动传感器呢?那就是滚珠开关。滚珠开关,其内部含有导电珠子,器件一旦震动,珠子随之滚动,就能使两端的导针导通。 通过这个原理,我们可以做一些小玩具结合起来。只要传感器检测到东西震动,就会有信号输出。这里,我们想通过滚珠开关做个简单的震动传感器,并把震动传感器和LED的结合,当传感器检测到物体震动时,LED亮起,停止震动时,LED关闭。 所需元件
STEP 1:硬件连接 从滚珠开关这个名字,我们可以把它和什么联想在一起呢?就是按键开关,滚珠开关和 Arduino教程 Lesson 4 --互动交通信号灯中介绍的按钮在硬件连接是完全相同的,原理也相似。只是使用方法不同而已。可以把下图对应交通灯的一起看,你会发现很多相似之处。滚珠开关也需要一个下拉电阻,LED需要一个限流电阻。 STEP 2:输入代码 完成硬件连接后,打开Arduino IDE,输入下面这段代码。
复制代码 STEP 3:代码回顾 先大致说下代码的运行过程。在没有任何打扰的情况下,程序在不断运行着…,让LED一直处于关闭。突然,被人打扰了(也就是晃动板子),就跳到中断函数blink()中(当然进入中断也是要条件的,我们后面说)。此时,state不断自加,连锁反应的,主函数中if函数检测到state不为0了,那么就让LED亮起了,同时又重新让state为0,等待下一次中断。如果没有中断的话,LED有恢复到关闭的状态。 中断函数attachInterrupt() 什么是中断?打个比方吧,比如你在家好好的看电视,突然家里电话铃响了,那么你不得不停下看电视,先去接电话,等接完电话后,你又可以继续看电视啦!在整个过程中,接电话就是一个中断过程,电话铃响就是中断的标志,或者说是中断条件。 现在知道中断是什么意思了,再回到attachInterrupt()函数,它是一个当外部发生中断时,才被唤醒的函数。区别于其他函数,它依附于中断引脚才发生。大多数板子都有两个外部中断引脚:数字引脚2(中断0)和数字引脚3(中断1)。中断0与中断1是中断号,在函数中需要用到。不同板子,中断号对应引脚可能不同,可以查阅Arduino官方编程语法手册(http://arduino.cc/en/Reference/AttachInterrupt)。 attachInterrupt()需要三个传递参数:
复制代码 interrupt:中断号0或者1。如果选择0的话,连接到数字引脚2上,选择1的话,连接到数字引脚3上。 function:调用的中断函数名。写中断函数时,需要特别说明以下三点:
mode:中断的条件。只有特定的以下四种情况:
知道了attachInterrupt()函数的用法,回归到我们的代码中:
复制代码 对应上面说明看。1,指中断号1。所以滚珠开关接到数字引脚3。blink是我们下面要调用的中断函数。RISING,指引脚3在由低变为高的一瞬间,中断触发。 为什么要选RISING呢?由于硬件我们还没提到,我们就先滚珠开关想象成按键。在按键没按下的时,是断开的,引脚3处于低的状态。一旦被按下,就和5V导通,变为高。这个过程是引脚由低电平变高电平的过程,所以选择RISING模式。 STEP 4:硬件回顾 滚珠开关 滚珠开关,也叫做珠子开关,震动开关等等。虽然叫法不同,不过原理是相同的。就是通过珠子滚动接触导针的原理来控制电路的通断。看下结构图就明白了。 滚珠开关内部两个珠子,通过珠子滚动接触导针的原理来控制电路的接通或者断开。传感器震动或者晃动时,珠子就会接触导针,从而导通。还需要注意的一点是,由于滚珠开关的内部构造,滚珠开关只有一头是导通的,金色导针一端是导通的,银色导针一端是不导通的。这也就是为什么,往金色一端倾斜,灯会点亮,而偏向银色一端倾斜时,灯不会被点亮的原因。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【FireBeetle Board ESP32-E IoT 开发板试用体验】彩色灯显示效果
3493 浏览 0 评论
【FireBeetle Board ESP32-E IoT 开发板试用体验】之开箱+环境搭建
2053 浏览 1 评论
【FireBeetle Board ESP32-E IoT 开发板试用体验】使用ESP-IDF进行开发入门(MacOS)
2770 浏览 0 评论
2401 浏览 0 评论
【DFR0100 Arduino入门套件】 Lesson 7 -- 报警器
3643 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:02 , Processed in 0.600593 second(s), Total 67, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号