专注电子技术学习与研究
当前位置:单片机教程网 >> Arduino >> 浏览文章

基于Proteus的Arduino学习02-按键与LED灯的使用

作者:我不是奔跑哥   来源:我不是奔跑哥的blog   点击数:  更新时间:2014年06月08日   【字体:

按键是重要的人机交互的工具,可以通过按键将数据输入给计算机(此处为Arduino),让Arduino按照人所想的方式工作,或者输入Arduino的一些工作参数。LED灯可以作为程序调试过程中的指示灯,让调试者清楚地知道程序现在运行到哪一步,从而可以很快的找出程序的问题所在。

 

在上一节的学习笔记《Arduino UNO实验板设计》中,我们带着大家学会了如何使用Protues仿真软件构建出软件Arduino的实验板,并在软件Arduino UNO实验板上验证了闪烁灯的例子,下面我们接着第一节的学习笔记,继续下面的学习,让LED灯接受我们的控制,像平时我们打开和关闭房间的节能灯一样方便。

首先,我们需要打开上次的Arduino UNO实验板,如图1所示。从下图中,我们可以看到Arduino UNO的核心ATmega328P单片机,绿色LED灯LED-GREEN,串口通讯接口COMPIM,这个构成了Arduino的最小系统。

图1 Arduino UNO实验板

下面我们要在Arduino UNO实验板上添加按键,在元器件选择框中输入“BUTTON”,如图2所示。选择上面一个按键,并点击OK将其添加至元器件栏中。

图2 "BUTTON"按键选择

从元器件栏中将按键放置到Arduino UNO实验板的合适位置,这里我们选择数字口8,所以放置在其附近,并放置一个10KΩ的电阻,如图3所示。将按键的一端连接至数字口8,一端连接至+5V电源端,电阻的一端连接至数字口8,一端接至低端,构成一个下拉电阻【注】,连接之后的图如图4所示。

【注】下拉电阻的一端接至低端,因而叫做下拉电阻,即将电路节点的电平向低方向(地)拉。下拉电阻的主要作用是在电路驱动器(此处为按键)断开时给线路(节点)以一个固定的低电平。【文献1】

图3 在Arduino UNO实验板上放置按键和电阻

 
图4 连接好按键和电阻的Arduino UNO实验板

最后,还需要完成Arduino软件设计,验证我们的设计是否可行。先打开ArduinoIDE自带的例子,如图5所示。

图5 打开Arduino IDE的BUTTON示例

我们要对Arduino IDE自带“BUTTON”例子进行修改,将const int buttonPin = 2;更改为const int buttonPin = 8;因为我们的按键连接在数字口8上面,更改之后的程序如下所示。

// set pin numbers:

const int buttonPin = 8;     // the number of the pushbutton pin

const int ledPin =  13;      // the number of the LED pin

 

// variables will change:

int buttonState = 0;         // variable for reading the pushbutton status

 

void setup() {

  // initialize the LED pin as an output:

  pinMode(ledPin, OUTPUT);     

  // initialize the pushbutton pin as an input:

  pinMode(buttonPin, INPUT);    

}

 

void loop(){

  // read the state of the pushbutton value:

  buttonState = digitalRead(buttonPin);

 

  // check if the pushbutton is pressed.

  // if it is, the buttonState is HIGH:

  if (buttonState == HIGH) {    

    // turn LED on:   

    digitalWrite(ledPin, HIGH); 

  }

  else {

    // turn LED off:

    digitalWrite(ledPin, LOW);

  }

}

将更改之后的程序,编译通过之后,在Protues仿真环境中单击ATmega328P单片机,将Arduino IDE生成的HEX文件调入到Arduino UNO实验板中运行。

当按键断开时,LED熄灭,如图6所示;当按键闭合时,LED点亮。如图7所示。

图6 按键断开时,LED熄灭
图7 按键闭合时,LED点亮

我们对上面的设计进行一些更改,将按键和10KΩ电阻的GND和+5V交换位置,点击GND弹出更改框为图8所示。将GND改为+5V,+5V改为GND,实验板即变为图9所示。10KΩ的电阻也由下拉电阻变为上拉电阻。【注】

【注】上拉电阻就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。【文献2】

图8 更改电源端与地端

图9 更改之后的实验板

当我们进行仿真时,出现了与前面相反的效果:当按键断开时,LED点亮,如图10所示;当按键闭合时,LED熄灭,如图10所示。这就是上拉电阻与下拉电阻的作用。

 

图10 当按键断开时,LED点亮
 
图11 当按键闭合时,LED熄灭

参考文献:

文献1:http://baike.baidu.com/view/1546676.htm

文献2:http://baike.baidu.com/view/1106477.htm

关闭窗口

相关文章