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循环常见的用法包括传感器测试、传感器的校准、可变增量等。

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

    关注

    2525

    文章

    48120

    浏览量

    740160
  • led灯
    +关注

    关注

    22

    文章

    1554

    浏览量

    107034
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184848
  • 按键控制
    +关注

    关注

    0

    文章

    44

    浏览量

    8716
收藏 人收藏

    评论

    相关推荐

    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程序设计基础》

    !… 21第2章基础… 262.1 Arduino语言… 262.1.1Arduino程序结构… 262.2 C\C++语言基础… 272.2.1数据类型… 272.2.2运算符与表达式… 292.2.3
    发表于 06-12 14:37

    Arduino开发实战指南 AVR

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

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

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

    arduino按键控制步进电机代码

    arduino按键按一下,步进电机走一段,再按一下步进电机再走一下。求程序!!!!
    发表于 09-12 16:25

    Arduino控制器选型指南(一):Arduino官方

    间)100-200300-400100-200300-400400-500100-200500-600特点 Arduino UNO 是Arduino主控器系列 的经典款。Arduino
    发表于 07-09 11:41

    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

    Arduino搭建一个3*3的矩阵键盘

    矩阵键盘在51单片机的案例应用较多,但是在Arduino很少使用,今天小编就特立独行一次,在Arduino搭建一个3*3的矩阵键盘。一
    发表于 01-12 06:09

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

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

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

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