Arduino轻松学Mixly编程第8课 状态提示灯

2017-04-133.6万
AI 快速预览详细 收起
本节课是《Arduino轻松学》系列教程的第8课,主题为状态提示灯。所需元件包括Arduino UNO、IO扩展板、LED灯和按键。通过布尔运算(且、或、非)和程序分支,实现更复杂的逻辑设计。最终效果是一个能够根据不同条件切换状态的状态指示灯。适合零基础新手和STEM教育场景。
Arduino轻松学Lesson 8 状态提示灯


1. 课程介绍

程序分支可以为程序增加多种交互,上节课以门铃为案例,讲解了单布尔条件下程序的交互设计,这节课引入布尔运算,实现更复杂的程序逻辑,制作一个状态指示灯。
本节课所需元件:Arduino UNO、IO扩展板、LED灯、按键

Arduino轻松学Mixly编程第8课 状态提示灯图1

2. 本节知识点
程序分支
布尔运算

3. 所需模块讲解
布尔运算
Arduino轻松学Mixly编程第8课 状态提示灯图2
所处位置:逻辑
模块功能:对模块左右的布尔值进行“且”、“或”运算。

“非”运算
Arduino轻松学Mixly编程第8课 状态提示灯图3
所处位置:逻辑
模块功能:对布尔值进行“非”操作。

4. 程序及流程图

程序图
Arduino轻松学Mixly编程第8课 状态提示灯图6

流程图
Arduino轻松学Mixly编程第8课 状态提示灯图5

5. 关联知识讲解

状态变量
在本例中,变量state为状态变量,记录灯的开关状态,与按键状态(5号端口的高低电平状态)一起,决定了具体执行的程序分支语句。
布尔变量,仅有“真”、“假”两种状态,如果需要多种状态的记录与切换,可以使用整数变量,如0、1、2、3分别对应4种状态。

布尔运算
且”运算:
参与运算的布尔值均为真时,结果为真
参与运算的布尔值中有一个假,结果为假
真且真为真,真且假为假,

或”运算
参与运算的布尔值中只要有一个真,结果为真
参与运算的布尔值中均为假时,结果为假  
如真或假为真,真或真为真,假或假为假

“非”运算
非“真”即“假”,非“假”即“真”。


6.课堂练习
结合纸模,完成课程案例。
Arduino轻松学Mixly编程第8课 状态提示灯图3


7.作业及挑战

Arduino轻松学Mixly编程第8课 状态提示灯图7
上述程序执行完后变量m的值为:A:0   B:1  C:2  D:3


制作一个灯效切换灯:
按一下按键,灯亮;
再按一下按键,呼吸灯效果;
再按一下按键,灯灭。


课程简介
《Arduino轻松学》是科技学堂制作的在线系列创客教学视频之一。《轻松学》是一套Arduino开发的基础入门课程,适合还没有过硬件开发和编程经验的人群做入门学习使用。本课程中,每节课带你制作一个趣味小项目,在学到技术的同时,也开动想象发挥创造。
课程案例
《轻松学》课程中使用非常适合初学者的DFRobot的米思齐(Mixly)编程积木入门套装,软件选用图形化编程的Mixly。课程以视频+图文的呈现形式,深入浅出。既有操作演示,又方便学习者自主观看查询,轻松完成Arduino的入门学习。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
rswjf
rswjf
感谢老师分享
唯一色彩
唯一色彩
支持支持 讲的非常好
cdn1980
cdn1980
如果出现一闪一闪的情况,请把延迟模式放在布尔函数后面
ldsgrh
ldsgrh
刚刚接触这些东西,喜欢!
mysp1
mysp1
这个是错误的,视频中模块插错位置,然后按这个跑程序灯一闪一闪。不能控制。
图形程序代码如下
volatile boolean state;
void setup()
{
state = true;
pinMode(5, INPUT);
pinMode(8, OUTPUT);
}
void loop()
{
if (digitalRead(5) == HIGH && state) {
digitalWrite(8,HIGH);
delay(200);
state = false;
} else if (digitalRead(5) == HIGH && !state) {
digitalWrite(8,LOW);
delay(200);
state = true;
}
}
TonyC
TonyC回复mysp1
我想一闪一闪应该是灯接收到了主控板检测的脉冲信号所导致的。
mysp1
mysp1回复TonyC
照着做灯一闪一闪怎么回事啊?
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
rom222
rom222
很好的教程
www.sxzisha.com
www.sxzisha.com
不错支持
- 没有更多了 -