[ Edison教程系列]Edison教程系列01 按键控制

2014-10-27 15:42:23 [显示全部楼层]
9639浏览
查看: 9639|回复: 3

[ Edison教程系列] Edison教程系列01 按键控制

[复制链接]

Edison教程系列01 按键控制

作者:Angelo 来自 DFRobot
转载请标明原作者并给出本文链接

来个最简单的实验吧!按钮控制LED开关,按键按下,LED点亮。按键松开,LED熄灭。

所需元件

1×  数字食人鱼红色LED发光模块Edison教程系列01 按键控制图4
1×   数字大按钮模块
Edison教程系列01 按键控制图3
1×   IO 传感器扩展板 V7.1
Edison教程系列01 按键控制图6
1×   英特尔® Edison for Arduino开发板(预售)
Edison教程系列01 按键控制图5

硬件连接

数字大按钮 → 数字2
数字食人鱼红色LED发光模块 → 数字13
Edison教程系列01 按键控制图2

输入代码

打开样例代码Button,可见:

const int buttonPin =2;     // 定义按键引脚
const int ledPin=  13;      //定义LED引脚

int buttonState =0;         //用来存储按键状态值

void setup() {
  pinMode(ledPin, OUTPUT);    //初始化LED引脚为输出状态  
  pinMode(buttonPin, INPUT);  //初始化按键引脚为输入状态   
}

void loop(){
  buttonState = digitalRead(buttonPin); //读取按键引脚的状态值

  // 检测按键是否按下,如果是的话,按键状态值为HIGH
  if (buttonState == HIGH) {     
    digitalWrite(ledPin, HIGH);  // 打开LED
  }
  else {
    digitalWrite(ledPin, LOW);   // 关闭LED
  }
}

下载完代码,按下按钮,灯点亮。松开按键,灯熄灭。

硬件分析(数字输入—数字输出)

很明显,大按钮是输入设备,LED是输出设备。和前面感应灯类似,也是一个数字输入控制一个数字输出。只是形式与代码有所不同。
Edison教程系列01 按键控制图1

代码回顾

说下Arduino代码必须具备的两个组成部分:

void setup() {
  // 写入setup代码,只运行一次:
}
void loop() {
  // 写入main代码,重复运行:  
}

Arduino代码必须包含setup()和loop()这两个函数。setup英文中是“设置”的意思。所以setup()函数是用于一些初始化设置的,只在代码一开始时,运行一次。loop是“循环”的意思,只要Arduino不掉电,loop就会不停的重复运行。
由硬件分析可以看出,按键是输入设备,LED是输出设备。

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);

函数格式如下:
pinMode(pin,mode)
这个函数是用来设置Arduino数字引脚的模式的,只用于数字引脚定义是输入(INPUT)还是输出(OUTPUT)。pin指数字引脚号,mode指引脚模式(OUTPUT/INPUT)。
通过digitalWrite()读取按键的状态:
int reading = digitalRead(buttonPin);

函数格式如下:
digitalRead(pin)
这个函数是用来读取数字引脚状态,HIGH还是LOW。一旦按下,读到HIGH,松开,读到LOW。(HIGH代表1,LOW代表0)

数字传感器只会读到两个值(HIGH和LOW)。这里要用到新的一个语句——if语句。

if语句格式如下:
(1)if(表达式){
语句;
}
(2)if(表达式){
语句;
}else{
语句;
}
表达式是指我们的判断条件,通常为一些关系式或逻辑式,也可是直接表示某一数值。如果if表达式条件为真,则执行if中的语句。表达式条件为假,则跳出if语句。格式(1)多用于一种判断中,格式(2)多用于两种判断的情况。

if (buttonState == HIGH) {      
... //如果为高,LED亮
}
else {                              
   ... //否则,LED灭
}

If语句中,还有句设置LED状态。
digitalWrite(ledPin,HIGH);

函数格式如下:
digitalWrite(pin,value)
这个函数的意义是:引脚pin在pinMode()的中被设置为OUTPUT模式时,其电压将被设置为相应的值,HIGH为5V(3.3V控制板上为3.3V),LOW为0V。


rhyme  学徒

发表于 2014-11-29 14:54:16

问一下,用的什么软件仿真的啊?
回复

使用道具 举报

fans  见习技师

发表于 2014-12-15 14:19:26

您好,我是一家创客社区叫硬创邦www.ingchuang.com。能转载你的Edison系列文章吗?
回复

使用道具 举报

Ash  管理员
 楼主|

发表于 2014-12-15 15:55:48

fans 发表于 2014-12-15 14:19
您好,我是一家创客社区叫硬创邦www.ingchuang.com。能转载你的Edison系列文章吗? ...

可以的,请在明显处注明,作者:Angelo 来自DFRobot 并标明原文链接。
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail