mBlock & Arduino(3)按钮控制猫咪-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4327|回复: 0

mBlock & Arduino(3)按钮控制猫咪

[复制链接]
发表于 2017-8-3 22:57 | 显示全部楼层 |阅读模式
在〈mBlock & Arduino(2)点亮外接 LED〉中,看过了如何使用 Arduino 来控制输出脚位,并使用 LED 来得知输出脚位的状态,使用 LED 来检视脚位输出是经常之应用,看过了基本的脚位输出,接下来来看基本的脚位输入,这边要来透过按键开关来控制输入的信号。
认识按键开关
按键之类的开关有好几种,有两针脚、四针脚、六针脚等,两针脚很单纯,就是按下后两个针脚会接通,四针脚或六针脚的话,实际上要看说明,了解哪些脚位是连通,而哪些是由开关控制,以常见的四针脚开关来说,脚位突出的一边在按键按下前彼此不连通,而与对面脚位是连通的:
243b00039946517f4d25

如果想实际测试按键开关的运作,可以使用 LED,例如设计以下的电路:
243a0003b4396c83d75c

如果实际想接在面包板上测试,5V 电源的部份,可以使用 Arduino 上的 5V 脚位,如下所示:
2439000480a793356cc7

在读取输入信号之前
在〈mBlock & Arduino(2)点亮外接 LED〉中谈过,脚位 D0 到 D13 可以当作数位输出与输入脚位,在这边,我们用其中一个脚位来试着读取按键开关是否按下,不过,并非单纯设计以下的电路就可以了:
243900047f53df2c82d1

这是因为此时输入脚位没有接受任何讯号或输入悬空时,会因为周遭环境的原因(电子杂讯等)而变为不确定的值,因此,在按键实际按下前,输入脚位可以借由一个下拉电阻(Pull-down resistor)连接到 GND,或者是使用一个上拉电阻(Pull-up resistor),将输入脚位保持在已知状态。例如说,若使用下拉电阻,可以如下设计电路:
24380001a82b7cb289ac

就大多数的电路而言,可以选用 10K Ω 的电阻(原因与其他考量,可参考 How do I calculate the required value for a pull-up resistor? http://bit.ly/2oQmpnF);上图的设计方式在按键按下时,输入脚位会得到一个高电位值,未按下则是低电位值。
使用上拉电阻的话,可以如下设计电路:
26e20000f8b56f60718c

这样的设计方式下,在按键按下时,输入脚位会得到一个低电位值,未按下则是高电位值。
利用按键控制猫咪
你可以利用程式来侦测按键是否按下,通常会使用 LED 灯来作为程式的输出,像是即使使用上拉电阻方式,也是侦测到按键按下时,让 LED 灯点亮,否则 LED 保持在未点亮状态,不过,这边稍微变化一下,希望按键按下时,Scratch 的猫咪可以喵喵叫,这样比较有趣一些,你可以如下拉设电路:
243900047f56f9d3469a

我们打算读取 D7 的输入讯号,接着在 mBlock 中撰写程式如下:
243400039b2f3297b53a

接着试着执行看看程式,在按下按键时,猫咪会发出 meow 的声音,也会显示以下的图样:
26e20000f8b117aa4a10

附带一提的是,根据 Arduino – Digital Pins 中的说明,数位脚位都内建有上拉电阻,可以借由 pinMode() 为 INPUT_PULLUP 来打开,这样你在连接电路时,可以不用自行设置上拉电阻,不过,在 mBlock 中,并没有对应的控制方块可以使用的样子。
阅读下一篇mBlock & Arduino(4)利用 PWM 模拟类比信号
请继续关注这朵激动的云哟٩(˃̶͈̀௰˂̶͈́)و
感谢CodeData用户:caterpillar 的贡献 著作权归作者所有
整理:中科极动云,宁波家电物联网云平台


原文地址:http://www.toutiao.com/a6428819060306542850/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 01:40 , Processed in 0.087644 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表