ar入门教程第二章按钮控制的显示_第1页
ar入门教程第二章按钮控制的显示_第2页
ar入门教程第二章按钮控制的显示_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 按钮LED 的显示一、按钮LED 延时开关在上一章中我们使用了Arduino 语言编写了程序,通过程序完成了流水灯的设计与实验,在这一章中,更加深入,通过程序,来达到手动LED 灯的点亮熄灭,在按下按钮时,LED 将被点亮,松开按钮时,LED 将被熄灭,这样动手参与其中,也会更有吧。二、实验器件板:1 块UNOLED 灯:1 个220电阻:1 个10K电阻:1 个面包板:1 块面包板跳线:若干按钮:1 个三、连线示意图:图 2-1四、硬件连线图图 2-2五、硬件知识要点实验中使用到的按钮开关为四脚按钮开关,其内部电路如图 2-3 所示:图 2-3限流电阻一般 LED 的最大能承受的电流

2、为 25mA,如若直接将 LED 连接到电路中,当其点亮时,如果电流过大,很容易烧毁。如图 2-1 所示,我们在 LED 正极串联了一个电阻 R2,这样做可以流过 LED 的电流,防止损坏 LED。这个电阻我们称之为限流电阻。下拉电阻在 UNO 的 2 号引脚到 GND 之前,连接了一个阻值 10K 的电阻。如果没有该电阻,当未按下按键时,2 号引脚会一直处于悬空 状态,此时使用 digitalRead()2 号引脚状态,会得到一个不稳定的值(可能是高,也可能是低)。添加这个 R1 电阻到地就是为了稳定引脚的电平,当引脚悬空时,就会识别为低电平。而这种将某节点通过电阻接地的做法,叫做下拉, 这

3、个电阻叫做下拉电阻。当未按下按键时,2 号引脚检测到的输入电压为低电平;当按下按键时,会导通 2 号引脚和VCC,此时 2 号引脚检测到的输入电压为高电平。通过亮灭。按键是否被按下,来LED 的六、程序编写我们可以在 Arduino IDE 菜单>文件>示例>02.Digital>Button中找到以下程序:/ 设置各引脚别名const int buttonPin = 2; const int ledPin = 13;/连接按键的引脚连接 LED 的引脚/ 变量定义int buttonState = 0;/按键状态的变量void setup() / 初始化 LED 引脚

4、为输出状态pinMedPin, OUTPUT);/ 初始化按键引脚为输入状态pinMode(buttonPin, INPUT);void loop()/按键状态并在变量中buttonState = digitalRead(buttonPin);/ if检查按键是否被按下如果按键按下,那 buttonState 应该为高电平(buttonState = HIGH) / 点亮 LEDdigitalWrite(ledPin, HIGH);else / 熄灭 LED digitalWrite(ledPin, LOW);七、程序知识要点const 关键字代表常量。它是一个变量限定符,用于修改变量的性质,

5、使其变为只读状态。这意味着该变量,就像任何相同类型的其他变量一样使用,但不能改变其值。buttonState:按钮的状态。八、拓展阅读在上面的实验中,我们在按下按钮之后,LED 会点亮,松开按键后,LED 熄灭,接下来我们将对于电路做一个小的修改,从而实现按下按钮后,LED 点亮,再次按下按钮后,LED熄灭。具体电路图如图 2-4 所示:图 2-4在上图 2-4 中,我们去掉了原来电路中 2 号引脚连接的下拉电阻,并将按键的一端连接到GND;同时,原程序 setup()中的程序,pinMode(buttonPin,INPUT);改为 pinMode(buttonPin,INPUT_PULLUP

6、);这样能使能该引脚上的内部上拉电阻,等效于在该引脚到 VCC 之间连接一个外部上拉电阻。上拉电阻同下拉电阻一样,可以稳定 I/O 口电平,不同的是电阻连接到 VCC,将引脚稳定在高电位。这种电阻叫做上拉电阻。这里使用的是内部上拉电阻,也可以使用外部上拉电阻替代。稳定悬空引脚的电平所用电阻 应该选择合适的阻值,例如 10K。修改之后的程序如下:int buttonPin = 2; int ledPin = 13;boolean ledState=false;/boolean buttonState=true; /LED 状态按键状态void setup()/ 初始化 I/O 口pinMode(buttonPin, INPUT_PULLUP);pinMedPin,OUTPUT);void loop()/ 等待按键按下while(digitalRead(buttonPin)=HIGH)/ 当按键按下时,点亮或熄灭 LED if(ledState=true)digitalWrite(ledPin,LOW); ledState=!ledState;elsedigitalWrite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论