找回密码
 立即注册

QQ登录

只需一步,快速开始

本帖最后由 lxf 于 2020-8-15 14:14 编辑

第9课 布尔变量实现状态提示灯


目标

1、创建布尔型变量
2、布尔运算符的使用
3、按一下按钮,LED灯亮,再按一下,LED灯熄灭

实验材料

Arduino UNO开发板
LED发光模块
按钮模块
配套USB数据线
配套杜邦线若干
Arduino IDE软件

图片3.png

内容

按一下按钮,LED灯亮,再按一下,LED灯熄灭,依次循环实现

接线图

图片4.png
(Arduino UNO开发板与LED发光模块、按钮模块接线图)

接线方式

Arduino UNO    <------>   按钮开关模块
        5V              <------>          VCC
      GND            <------>          GND
       D7              <------>          OUT
Arduino UNO    <------>    LED模块
       5V               <------>         VCC
     GND             <------>         GND
      D6               <------>           IN

程序实现代码

  1. volatile boolean item; //创建布尔型变量item
  2. void setup(){
  3.   item = true;    //item赋值为ture,即真
  4.   pinMode(7, INPUT);  //定义7号数字管脚类型为输入
  5.   pinMode(6, OUTPUT);  //定义6号数字管脚类型为输出
  6. }
  7. void loop(){
  8.   if (digitalRead(7) == HIGH && item)   //读取7号数字输入管脚,如果为高电平,且item为ture,即真
  9. {  
  10.     delay(200);      //200ms延迟用于按键消抖
  11.     digitalWrite(6,HIGH);               //将6号数字管脚设置为高电平
  12.     item = false;                      // item赋值为false,即假
  13.   } else if (digitalRead(7) == HIGH && !item)    //读取7号数字输入管脚,如果为高电平,且item为非ture,即假
  14. {
  15.     delay(200);       //200ms延迟用于按键消抖
  16.     digitalWrite(6,LOW);     //将6号数字管脚设置为高电平
  17.     item = true;         //item赋值为ture,即真
  18.   }
  19. }
复制代码

volatile – 易变变量

volatile这个关键字是变量修饰符,常用在变量类型的前面,以告诉编译器和接下来的程序怎么对待这个变量。
声明一个volatile变量是编译器的一个指令,(编译器是一个将你的C/C++代码转换成机器码的软件,机器码是arduino上的Atmega芯片能识别的真正指令。)
具体来说,该指令指示编译器从RAM而非存储寄存器中读取变量,存储寄存器是程序存储和操作变量的内存区域。
当一个变量的控制和改变可能来自程序代码以外的环境,比如在使用Arduino的中断功能时,ISR(中断服务程序)中所涉及的变量需要被声明为volatile易变变量。

boolean

布尔型变量是有两种逻辑状态的变量,它包含两个值:true(真)或 false(假)(每个布尔变量占用一个字节的内存)。
如果在表达式中使用了布尔型变量,那么将根据变量值的真假而赋予整型值1或0,要把一个整型变量转换成布尔型变量,如果该变量的整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真,布尔型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。

true false 常量

在Arduino内有两个常量用来表示真和假:true和 false。

false

false被定义为数值0(零)。

true

true通常被定义为数值1,但true具有更广泛的定义,在布尔含义(boolean sense)里任何非零整数都是true,所以在布尔含义内 -1,2 和 -200 等非零数值都被定义为ture。
注意:true和false常量需要全部小写,这与HIGH,LOW,INPUT和OUTPUT常量是不同的。
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册