Fireduino入门篇1.6《互动开始:制作一个按键开关》-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4650|回复: 0

Fireduino入门篇1.6《互动开始:制作一个按键开关》

[复制链接]
发表于 2017-3-24 14:19 | 显示全部楼层 |阅读模式

Arduino的特点之一就是有趣的人机互动,要实现互动当然少不了输入设备。我们从最简单的输入设备按键来入手,今天就把按键控制加入1.5的LED流水灯实验上,通过按键控制流水灯方向。


器件数量
Fireduino开发平台1块         
万用板1块
LED(发光二极管)4个(不同颜色)
220欧姆电阻4个
杜邦线若干
10K欧姆电阻2个
按键2个     

电路连接图如下:


实现原理:

这次教程用到的按键是四角轻触开关,这种按键在电子产品很常用。它的原理如下图,12脚与34脚是相通的,在没按下的时候这两组是断开的,按下按键的时候1234则相通在一起。我们利用这个特性来制作开关






其次,我们这次用到了下拉电阻在没有按下按键的时候让引脚通过这个10K电阻接地。在按下按键的时候Fireduino上的3V输出口输出电平到输入检测口达到高电平。这样我们就可以通过读取电平来识别按键的状态了。






Arduino代码:
  • /*
  • 作者:暴走的阿Sai
  • 时间:2016年9月5日
  • 发表地址:www.t-firefly.com
  • 程序说明:
  • 通过按键控制LED流水方向
  • */
  • void setup() {
  •   // 初始化引脚8,9,10,11为输出
  •   pinMode(8, OUTPUT);
  •   pinMode(9, OUTPUT);
  •   pinMode(10, OUTPUT);
  •   pinMode(11, OUTPUT);
  •   //初始化2,13引脚为输入
  •   pinMode(7, INPUT);
  •   pinMode(12, INPUT);
  • }
  • // the loop function runs over and over again forever
  • void loop() {
  •   int i,j;//设置变量i与变量j用于循环
  •   if(digitalRead(12) == HIGH )//检测12引脚为高的时候执行
  •   {
  •   for(i=8;i<=11;i++)
  •    {
  •     digitalWrite(i, HIGH);   // 设置引脚i为高电平
  •     delay(200);              // 延迟200毫秒
  •     digitalWrite(i, LOW);    // 设置引脚i为低电平
  •     delay(200);              // 延迟200毫秒
  •    }
  •   }
  •   if(digitalRead(7) == HIGH )//检测7引脚为高的时候执行
  •   {
  •   for(j=11;j>=8;j--)
  •    {
  •     digitalWrite(j, HIGH);   // 设置引脚j为高电平
  •     delay(200);              // 延迟200毫秒
  •     digitalWrite(j, LOW);    // 设置引脚j为低电平
  •     delay(200);              // 延迟200毫秒
  •    }
  •   }
  • }

[color=rgb(247, 87, 51) !important]复制代码


运行效果如下:


主要用到的函数:
  • digitalRead()

[color=rgb(247, 87, 51) !important]复制代码




———————————————————————————
【教程传送】Arduino单片机创客进化之路教程汇总贴
【Fireduino QQ交流群】:450340779

———————————————————————————
   Firefly微信公众号          阿Sai微博
———————————————————————————
Firefly官网:http://www.t-firefly.com
Firefly开源社区:http://developer.t-firefly.com



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 01:38 , Processed in 0.071845 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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