本帖最后由 lxf 于 2020-8-15 14:14 编辑
目标
1、创建布尔型变量 2、布尔运算符的使用 3、按一下按钮,LED灯亮,再按一下,LED灯熄灭
实验材料
Arduino UNO开发板 LED发光模块 按钮模块 配套USB数据线 配套杜邦线若干 Arduino IDE软件
内容
按一下按钮,LED灯亮,再按一下,LED灯熄灭,依次循环实现
接线图
(Arduino UNO开发板与LED发光模块、按钮模块接线图)
接线方式
Arduino UNO <------> 按钮开关模块 5V <------> VCC GND <------> GND D7 <------> OUT Arduino UNO <------> LED模块 5V <------> VCC GND <------> GND D6 <------> IN
程序实现代码
- volatile boolean item; //创建布尔型变量item
- void setup(){
- item = true; //item赋值为ture,即真
- pinMode(7, INPUT); //定义7号数字管脚类型为输入
- pinMode(6, OUTPUT); //定义6号数字管脚类型为输出
- }
- void loop(){
- if (digitalRead(7) == HIGH && item) //读取7号数字输入管脚,如果为高电平,且item为ture,即真
- {
- delay(200); //200ms延迟用于按键消抖
- digitalWrite(6,HIGH); //将6号数字管脚设置为高电平
- item = false; // item赋值为false,即假
- } else if (digitalRead(7) == HIGH && !item) //读取7号数字输入管脚,如果为高电平,且item为非ture,即假
- {
- delay(200); //200ms延迟用于按键消抖
- digitalWrite(6,LOW); //将6号数字管脚设置为高电平
- item = true; //item赋值为ture,即真
- }
- }
复制代码
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常量是不同的。 |