0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino篇—按键中的秘密

冬至子 来源:X的创客课堂 作者:MRXY 2023-11-01 14:22 次阅读

课程目标

  • 布尔类型的概念与应用
  • 求余的灵活应用
  • while循环的应用

电路搭建

所需材料

ArduinoUno * 1
任意颜色LED * 1
按键模块 * 2
杜邦线若干

程序编写

练习一:两个按键控制开关灯

按键1按下时,LED灯开,按键2按下时,LED灯关。

电路连接:

图片

图形化方式:

图片

代码方式:

/* 项目名称:双按键控制开关灯
 * 项目时间:2022.02.25
 * 项目作者:MRX
 */
const int switch1_Pin = 3;
const int switch2_Pin = 8;
const int led_Pin = 7;
bool switch1 = LOW;
bool switch2 = LOW;
void setup() {
  pinMode(switch1_Pin,INPUT);
  pinMode(switch2_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  switch1 = digitalRead(switch1_Pin);
  switch2 = digitalRead(switch2_Pin);
  if (switch1 == HIGH) {
    digitalWrite(led_Pin,HIGH);
  }
  if (switch2 == HIGH) {
    digitalWrite(led_Pin,LOW);
  }
}

**布尔变量:**当我们需要记录一些只有两种状态的事情时,比如开或者关,冷或者热。布尔变量是最佳的记录方式,因为布尔变量只有两个值,0(false,假,低)或者1(true,真,高)。

*练习二:单按键开关灯

在学习第八课按键控制的时候,我们布置了一个课后练习,要求使用单个按键实现按一下开灯,再按一下关灯的功能。这里我们就来讲解一下。

电路连接:

图片

图形化方式:

图片

代码方式:

/* 项目名称:单按键控制开关灯
 * 项目时间:2022.02.25
 * 项目作者:MRX
 */
const int switch_Pin = 3;
const int led_Pin = 7;
bool switch_value = LOW;
void setup() {
  pinMode(switch_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  if(digitalRead(switch_Pin)){
    switch_value = !switch_value;
    delay(500);
  }
  if (switch_value == HIGH) {
    digitalWrite(led_Pin,HIGH);


  }
  if (switch_value == LOW) {
    digitalWrite(led_Pin,LOW);
  }
}

练习三:单按键多功能灯

制作一个单按键控制的多功能灯,要求按一下微亮,再按一下最亮,按第三下灭,长按住开关闪烁,松开开关熄灭。

电路连接:

图片

图形化方式:

图片

代码方式:

/* 项目名称:单按键多功能灯
 * 项目时间:2022.02.25
 * 项目作者:MRX
 */
const int switch_Pin = 3;
const int led_Pin = 6;
int switch_value = 0;
void setup() {
  pinMode(switch_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  if(digitalRead(switch_Pin)){
    delay(500);
    switch_value = (switch_value + 1) % 3;
    if (switch_value == 1) {
      analogWrite(led_Pin,120);
    }
    if (switch_value == 2) {
      analogWrite(led_Pin,255);
    }
    if (switch_value == 0) {
      analogWrite(led_Pin,0);
    }
    while (digitalRead(switch_Pin)) {
      digitalWrite(led_Pin,HIGH);
      delay(100);
      digitalWrite(led_Pin,LOW);
      delay(100);
      switch_value = 0;
    }
  }
}

while循环: while循环将会连续、无限循环,直到括号()内的表达式变为false。必须用一些东西改变被测试的变量,否则while循环永远不会退出。Arduino中while循环常见的用法包括传感器测试、传感器的校准、可变增量等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2545

    文章

    50438

    浏览量

    750955
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107730
  • Arduino
    +关注

    关注

    187

    文章

    6456

    浏览量

    186486
  • 按键控制
    +关注

    关注

    1

    文章

    44

    浏览量

    8763
收藏 人收藏

    评论

    相关推荐

    arduino学习笔记6 - 按键实验

    子的。 在按键没有按下去的时候1,2号脚相连,3,4号脚相连。按键按下去的时候,1,2,3,4号脚就全部接通。本次实验使用按键来控制led的亮或者灭。一般情况是直接把按键开关串联在l
    发表于 10-23 17:32

    微雪Arduino系列教程六:按键

    了。再接下来的教程我将使用Accessory Shield扩展板作为示例讲解Arduino的数字IO,模拟IO,PWM,I2C,SPI等接口的编程。 [接口Arduino接口方便接入各种带A
    发表于 04-27 19:52

    微雪Arduino系列教程(包含基本语法和实验:语音、传感器.... )——持续更新

    Arduino语法0:Arduino基本语法介绍Arduino语法1:基本的变量类型Arduino
    发表于 06-08 09:09

    微雪Arduino系列教程(包含基本语法和实验:语音、传感器....

    Arduino语法0:Arduino基本语法介绍Arduino语法1:基本的变量类型Arduino
    发表于 06-08 09:10

    Arduino开发实战指南 AVR

    的产品,目前,国内关注Arduino的人越来越多,所以本书以实际应用为纽带将各个章节联系起来。 作者: 程晨 出版社: 机械工业出版社副标题: AVRISBN: 9787111370055图书
    发表于 08-03 16:14

    Landzo的Arduino小车有个五向按键,请问谁有按键检测的好的方式

    Landzo的Arduino小车有个五向按键,请问谁有按键检测的好的方式,历程是按下和松开时两个状态,分别亮灭。现在想按下松开,响应一次,比如 按一下亮,在按一下灭。请教大家有没有好的按键
    发表于 08-18 17:39

    Arduino开发实战指南 AVR

    Arduino开发实战指南AVR
    发表于 04-04 12:20

    外部按键中断精准控制步进电机起保停,正反转(Arduino+TB6600驱动器)资料下载

    外部按键中断精准控制步进电机起保停,正反转(Arduino+TB6600驱动器)这次带来的是真正意义上的通过外部中断来实现控制的,前面一写的外部中断片是伪中断,文章开头有特别说明。
    发表于 06-29 07:19

    Arduino智能小车测试

    为后续的研究先做资料的铺垫,如果错误,欢迎指正Arduino智能小车——测试Arduino 智能小车-电机控制delay 延时处理:delay(10000)某个操作运行10秒后再进行其他操作
    发表于 09-16 07:11

    RFID标签组的可验证门限秘密共享方案

    无线射频识别(RFID)标签具有隐蔽、方便、高效等优点,可以作为秘密存储的新载体。该文针对如何在RFID 标签组实现秘密共享的问题,提出适用于RFID 系统的可验证门限秘密共享方
    发表于 03-24 09:55 20次下载

    使用Arduino实现按键控制LED实验的例程免费下载

    本文档的主要内容详细介绍的是使用Arduino实现按键控制LED实验的例程免费下载。
    发表于 12-01 17:47 19次下载

    使用Arduino实现按键切换LED颜色的实验免费下载

    本文档的主要内容详细介绍的是使用Arduino实现按键切换LED颜色的实验免费下载。
    发表于 02-04 16:25 13次下载
    使用<b class='flag-5'>Arduino</b>实现<b class='flag-5'>按键</b>切换LED颜色的实验免费下载

    Arduino基础入门按键控制LED)

    上一节我们介绍了使用数字引脚的输出来控制LED,本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。一、按键开关介绍按键开关主要是指轻触式按键开关,也称
    发表于 11-25 10:21 1次下载
    <b class='flag-5'>Arduino</b>基础入门<b class='flag-5'>篇</b>(<b class='flag-5'>按键</b>控制LED)

    Arduino通讯

    作者:iotsharer首发:Arduino通讯一、Arduino与蓝牙通讯1、DIY智能温湿度计(上)——数据获取2、DIY智能温湿度计(下)——APP控制温湿...
    发表于 02-07 12:07 2次下载
    <b class='flag-5'>Arduino</b>通讯<b class='flag-5'>篇</b>

    快速制作PCB秘密

    快速制作PCB秘密
    的头像 发表于 12-14 18:27 715次阅读
    快速制作PCB<b class='flag-5'>中</b>的<b class='flag-5'>秘密</b>