分享

Arduino教程-按键开关

 宽宽r700 2016-09-18
 Hi,大家好!今天我们正式学习一个新的元器件,它就是按键开关!说是正式学习,其实之前我们早就已经接触过,而且还正确的连接过它的电路呢!有印象么?在之前的获取输入数字信号那一节!这一次与它相遇,我们要正式学习如何使用它控制一盏神灯!
既然之前我们已经接触过,想必这次学起来要简单的多啦!
好!废话不多说,先看一下这次都需要做哪些准备。
硬件方面
图片来源:Arduino电路配件
具体包括如下:
  • Arduino UNO电路板(1块)
  • 面包板(1块)
  • 10k电阻(1个)
  • 按键开关(1个)
  • 面包线(3根)
咦?怎么没发现硬件准备中的LED神灯?问的好!这次偷偷的告诉你一个小秘密,其实Arduino UNO电路板自身就带有一盏神灯,这盏神灯对应的针脚号为13。仔细看上图中Arduino UNO电路板,在电路板中上方的位置,差不多正对GND标示和数字13的正下方,有一个标号为L的白色长方形,没错!那就是这盏神灯。这盏神灯默认的信号输入针脚为数字信号13号针脚。
因为这次我们的学习重点是按键,所以为了简化电路的连接,我们默认就使用Arduino UNO电路板自带的那盏神灯啦!
好,下面是软件的准备!
软件方面Arduino官方提供的IDE。不必多说!
连接电路
图片来源:Arduino连接开关按键电路示意图
电路的连接,在之前的获取输入数字信号那节我们已经做过,这里除了需要注意Arduino UNO电路板自带的那盏神灯以外,没有新的内容。
下面是最后一步!
添加几行代码最后一个环节,就是让我们添加几行驱动硬件的代码。
首先,新建一个项目窗口。

图片来源:Arduino官方IDE



  1. // 这里的输入和输出是针对Arduino电路板而言
  2. // 定义按键输入针脚号为2号针脚
  3. const int buttonPin = 2;
  4. // 定义LED输入针脚号为13号针脚
  5. // 注:此处我们使用的LED神灯是Arduino UNO电路板自带,
  6. // 此神灯对应的针脚号默认为13,此数值不得随意更改,
  7. // 所以这里定义的数值13是为了和默认值相对应。
  8. const int ledPin =  13;
  9. // 定义按键状态变量初始值为0
  10. int buttonState = 0;

  11. // 对Arduino电路板或相关状态进行初始化方法
  12. void setup() {
  13.   // 设置ledPin端口为输出端口
  14.   pinMode(ledPin, OUTPUT);
  15.   // 设置buttonPin端口为输入端口
  16.   pinMode(buttonPin, INPUT);
  17. }

  18. // 系统调用,无限循环方法
  19. void loop() {
  20.   // 读取按键状态
  21.   buttonState = digitalRead(buttonPin);

  22.   // 检查按键状态,
  23.   // 如果为HIGH,
  24.   // 则点亮LED神灯,
  25.   // 否则熄灭LED神灯。
  26.   if (buttonState == HIGH) {
  27.     // 点亮LED神灯
  28.     digitalWrite(ledPin, HIGH);
  29.   } else {
  30.     // 熄灭LED神灯
  31.     digitalWrite(ledPin, LOW);
  32.   }
  33. }
复制代码



嗯,全部代码就是这些!所调用的方法我们应该全都已经见过,这里并没有新的面孔出现。可能只有一点是新的,那就是我们这次使用的LED神灯,是Arduino UNO电路板自带的,此盏神灯默认对应的针脚号为13,是不能随意更改的,所以我们要想控制此神灯,需要向13号针脚输入数字信号,这就是为什么上面我们定义LED针脚号的时候,数字为13的原因。也就是说,只有向13号针脚输入信号,才可以控制这盏神灯的亮和灭。

图片来源:Arduino官方IDE的文件编辑菜单选项
点击上图中标有向右指向的箭头图标,将代码烧入Arduino UNO电路板。成功之后,试试看点击开关按键,此时能否点亮和熄灭电路板上的那盏神灯!如果烧入失败,请检查是代码编译错误,还是将代码烧入电路板的过程中出现错误?如果是代码错误,请认真核对代码,如果是烧入代码时出现的错误,可以点击工具栏中的Tools,查看Port的选项,是否选中的是usbmodem连接模式。
总结通过这次学习,我们正式的了解如何使用按键进行控制。顺便还了解了一盏Arduino UNO自身就有的LED神灯,对Arduino UNO电路板又增进了一些认识。这次编写的代码中,没有出现新的面孔,电路方面所涉及到的只有数字信号,总而言之呢,可以看作是对我们之前所学进行了巩固。
下期预告虽然通过这次学习,我们知道了如何用按键开关控制其他电器元件,比如LED神灯。由于电路的一些固有特性,美中不足,此时按键开关还有一些小问题。下一次,我们将修复这个问题,完善按钮开关,让其达到完美的状态!

ohcoder的系列精彩Arduino教程:
Arduino教程-初识Arduino(包含本教程目录):http://www./bbs/dpj-41334-1.html
Arduino教程-开篇:http://www./bbs/dpj-41335-1.html
Arduino教程-点亮LED神灯:http://www./bbs/dpj-41336-1.html
Arduino教程-让LED神灯闪烁:http://www./bbs/dpj-41337-1.html
Arduino教程-让LED神灯亮度渐变:http://www./bbs/dpj-41338-1.html
Arduino教程-获取输入数字信号:http://www./bbs/dpj-41339-1.html
Arduino教程-获取输入模拟信号:http://www./bbs/dpj-41340-1.html
Arduino教程-另一种时间延迟:http://www./bbs/dpj-41331-1.html
Arduino教程-按键开关:http://www./bbs/dpj-41341-1.html
Arduino教程-停止抖动!:http://www./bbs/dpj-41333-1.html
Arduino教程-抛弃外部电阻!:http://www./bbs/dpj-41332-1.html
Arduino教程-用按键开关计数:http://www./bbs/dpj-41330-1.html

………后续持续更新中请打开:http://www./bbs/dpj-41334-1.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多