YFROBOT创客社区
标题: Arduino入门教程—基础实验篇二 灯流水灯实验 [打印本页]
作者: AllBlue 时间: 2013-5-9 13:46
标题: Arduino入门教程—基础实验篇二 灯流水灯实验
本帖最后由 AllBlue 于 2013-8-15 10:41 编辑
流水灯实验
上节课我们做了点亮LED灯实验,夜晚城市中常常看到广告灯在闪啊闪的,今天我们利用多个LED灯来模仿流水灯效果。
实验元件:
UNO 实验套装(UNO R3控制板、USB数据线、面包板、跳线)
6枚LED(3色个2只)
电阻220欧 6枚
上次贴子我们已经认识LED了,本次就不再做介绍,如需了解请回看实验二;
下面我们就开始实验,首先我们要搭建电路,将6个LED的正极分别连接到UNO 控制板的数字端口8~13;负极通过220欧限流电阻接GND,如下图(电路图与实物图):
[attach]467[/attach]
LED的顺序随便各位自己喜好,只和最后程序的有关,下面我们看下程序:
- /*
- 程序说明:
- 多个LED灯的闪烁,这里我们以6个LED灯做例
- */
- int LED1=8;
- int LED2=9;
- int LED3=10;
- int LED4=11;
- int LED5=12;
- int LED6=13;
- int n;
- void setup()
- { //设置各个引脚的初始状态
- for(n=8;n<=13;n++)
- {
- pinMode(n, OUTPUT);
- }
- }
- void loop()
- {
- turn1();//顺序点亮,顺序熄灭
- clean(); //灭掉所有灯
-
- turn2();//6灯齐闪
- clean();//灭掉所有灯
-
- turn3();
- clean();//灭掉所有灯
- }
- void turn1() //顺序点亮,顺序熄灭
- {
- for(n=8;n<=13;n++)
- {
- digitalWrite(n,HIGH);
- delay(300);
- }
- for(n=8;n<=13;n++)
- {
- digitalWrite(n,LOW);
- delay(300);
- }
- }
- void turn2()//6灯齐闪3次
- { for(int x=0;x<=2;x++)
- {
- for(n=8;n<=13;n++)
- {
- digitalWrite(n,HIGH);
- }
- delay(300);
- for(n=8;n<=13;n++)
- {
- digitalWrite(n,LOW);
-
- }
- delay(300);
- }
- }
- void turn3()//两个两个一起闪3次
- {
- for(int x=0;x<=2;x++)
- {
- digitalWrite(8,HIGH);
- digitalWrite(9,HIGH);
- for(n=10;n<=13;n++){
- digitalWrite(n,LOW);
- }
- delay(300);
- digitalWrite(10,HIGH);
- digitalWrite(11,HIGH);
- digitalWrite(8,LOW);
- digitalWrite(9,LOW);
- digitalWrite(12,LOW);
- digitalWrite(13,LOW);
- delay(300);
- digitalWrite(12,HIGH);
- digitalWrite(13,HIGH);
- for(n=8;n<=11;n++){
- digitalWrite(n,LOW);
- }
- delay(300);
- }
- }
- void clean()
- { for(n=8;n<=13;n++)
- {
- digitalWrite(n,LOW);
-
- }
- delay(300);
- }
复制代码程序中turn1()函数作用是使6个LED顺序点亮,再顺序熄灭;turn2()函数作用使6个LED一齐闪烁频率为300ms;turn3()函数作用是两两灯闪烁;clean()函数熄灭6只LED。
将程序烧写到UNO控制板中实验下效果~~
作者: handanqibu 时间: 2015-8-18 15:28
turn1();
clean();是什么
作者: AllBlue 时间: 2015-8-18 20:05
是函数啊,程序里有的
作者: AllBlue 时间: 2016-5-10 10:14
是的,看程序就知道了
作者: hero_sun 时间: 2016-5-29 13:33
[AppleScript] 纯文本查看 复制代码
void setup() {
// put your setup code here, to run once:
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int x=1;x<7;x++){
digitalWrite(x-1,LOW);
delay(50);
digitalWrite(x,HIGH);
}
作者: tiantianyouyou 时间: 2019-5-1 19:47
初学者,慢慢研究
欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) |
Powered by Discuz! X3.1 |