Arduino测试题(三)

网友投稿 2020-01-01 10:57

题目要求:

使用面包板,选取数字I/0口D3~ D12中的任意4个,分别控制红色、黄色、绿色、蓝色4个LED, 随机点亮其中一个颜色并保持2秒后熄灭,循环执行, 点亮顺序不可重复且4种颜色都要有机会被点亮。

题目分析:

这道题目在器材使用上没有特别困难之处,主要考察基础编程能力,因为所使用到的编程模块不是很常用,在进阶编程任务赛以及中小学单片机比赛进阶比赛中比较常见,属于中等难度的基础类题目。从题目分析,我们可以得到的关键信息如下。

直接用到的器材:

Arduino平台

面包板、

多色LED

间接用到的器材:

电阻(LED限流)

https://cdn.china-scratch.com/timg/200103/105HA612-0.jpg

需要用到的编程模块:

变量

随机数

控制(数字输出)

数学

延时


下面我们来一步步完成这个题目,同时介绍一下相关器材和电子电路知识。本节没有新器材的加入


电路连接:

取四种颜色不同的LED灯各一个,将正极长脚串联一个220Ω的电阻并与数字接口D9-D12相连。负极与GND相连。

https://cdn.china-scratch.com/timg/200103/105HA535-1.jpg实物接线图:太穷了还是忽略我的杜邦线颜色和灯的颜色吧、哈哈哈

https://cdn.china-scratch.com/timg/200103/105HI3L-2.jpg


Arduino IDE编程

volatile int yanse;  //新建一个整数型变量,变量名字设为yanse
void setup(){  yanse = 0; // 将变量yanse的值设为0}
void loop(){  yanse = random(9, 13);  // yanse的值为9-13中随意一个整数(不含13),因为我们的接线为9-12  pinMode(yanse, OUTPUT); // 将输出管脚用yanse代替  digitalWrite(yanse,HIGH);// 管脚点亮  delay(1000); // 延时亮2秒  pinMode(yanse, OUTPUT);    digitalWrite(yanse,LOW);  // 管脚熄灭}

Mixly程序

https://cdn.china-scratch.com/timg/200103/105HV324-3.jpg

注意:

1、变量我们要进行初始化且只执行一次

2、随机数的范围包前不包后例如:9-12随机出来的整数只有9、10、11

显示效果

进阶要求:通过串口监视器来显示当前点亮的灯的颜色

好啦今天就到这里了,就一个随机数没啥难度,如果有问题留言联系就好啦

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com