|
本帖最后由 OpenJumper 于 2022-1-17 11:49 编辑
[md]## 一、Led控制实验
在上一章中我们进行了板载LED的实验,对于Arduino的语言与Arduino IDE的使用方法有了一个简单的认识,在这一章中,我们将开始搭建我们的第一个电路,准备好需要的实验器材,让我们开始Arduino的学习之旅吧。
## 二、实验器件
UNO 控制板:一块
LED灯:6个
220Ω电阻:6个
面包板:1块
面包板跳线:若干
## 三、连线示意图:
图1-1
## 四、硬件连接图
图1-2
## 五、硬件知识要点
LED的两个针脚一长一短,其中长的连接的是正极,而短的连接的是GND,其次,在LED与控制板之间,需要添加一个限流电阻,由于LED内阻较小,不添加限流电阻的话有可能会烧坏LED。
## 六、程序编写[/md]
- void setup()
- {
- // 初始化I/O口
- for(int i=2;i<8;i++)
- pinMode(i,OUTPUT);
- }
- void loop()
- {
- // 从引脚2到引脚6,逐个点亮LED,等待1秒再熄灭LED
- for(int i=2;i<7;i++)
- {
- digitalWrite(i,HIGH);
- delay(1000);
- digitalWrite(i,LOW);
- }
- // 从引脚7到引脚3,逐个点亮LED,等待1秒再熄灭LED
- for(int i=7;i>2;i--)
- {
- digitalWrite(i,HIGH);
- delay(1000);
- digitalWrite(i,LOW);
- }
- }
复制代码
[md]
## 七、程序知识要点
在上述实验的代码中,
for(表达式1;表达式2;表达式3)
{
语句;
}
一般情况下,表达式1为for循环初始化语句,表达式2为判断语句,表达式3为增量语句,比如for (i=0; i< 5; i++) { }
表示初始值i为0,当i小于5时运行循环体中的语句,每循环完一次,i自加1,因此这个循环会循环5次
## 八、拓展阅读
在这里,我们提供LED灯几种不同的控制方式供大家选择,代码如下[/md]
- //设置控制Led的数字IO脚
- int Led1 = 1;
- int Led2 = 2;
- int Led3 = 3;
- int Led4 = 4;
- int Led5 = 5;
- int Led6 = 6;
- //led灯花样显示样式1子程序
- void style_1(void)
- {
- unsigned char j;
- for(j=1;j<=6;j++)//每隔200ms依次点亮1~6引脚相连的led灯
- {
- digitalWrite(j,HIGH);//点亮j引脚相连的led灯
- delay(200);//延时200ms
- }
- for(j=6;j>=1;j--)//每隔200ms依次熄灭6~1引脚相连的led灯
- {
- digitalWrite(j,LOW);//熄灭j引脚相连的led灯
- delay(200);//延时200ms
- }
- }
- //灯闪烁子程序
- void flash(void)
- {
- unsigned char j,k;
- for(k=0;k<=1;k++)//闪烁两次
- {
- for(j=1;j<=6;j++)//点亮1~6引脚相连的led灯
- digitalWrite(j,HIGH);//点亮与j引脚相连的led灯
- delay(200);//延时200ms
- for(j=1;j<=6;j++)//熄灭1~6引脚相连的led灯
- digitalWrite(j,LOW);//熄灭与j引脚相连的led灯
- delay(200);//延时200ms
- }
- }
- //led灯花样显示样式2子程序
- void style_2(void)
- {
- unsigned char j,k;
- k=1;//设置k的初值为1
- for(j=3;j>=1;j--)
- {
- digitalWrite(j,HIGH);//点亮灯
- digitalWrite(j+k,HIGH);//点亮灯
- delay(400);//延时400ms
- k +=2;//k值加2
- }
- k=5;//设置k值为5
- for(j=1;j<=3;j++)
- {
- digitalWrite(j,LOW);//熄灭灯
- digitalWrite(j+k,LOW);//熄灭灯
- delay(400);//延时400ms
- k -=2;//k值减2
- }
- }
- //led灯花样显示样式3子程序
- void style_3(void)
- {
- unsigned char j,k;//led灯花样显示样式3子程序
- k=5;//设置k值为5
- for(j=1;j<=3;j++)
- {
- digitalWrite(j,HIGH);//点亮灯
- digitalWrite(j+k,HIGH);//点亮灯
- delay(400);//延时400ms
- digitalWrite(j,LOW);//熄灭灯
- digitalWrite(j+k,LOW);//熄灭灯
- k -=2;//k值减2
- }
- k=3;//设置k值为3
- for(j=2;j>=1;j--)
- {
- digitalWrite(j,HIGH);//点亮灯
- digitalWrite(j+k,HIGH);//点亮灯
- delay(400);//延时400ms
- digitalWrite(j,LOW);//熄灭灯
- digitalWrite(j+k,LOW);//熄灭灯
- k +=2;//k值加2
- }
- }
- void setup()
- {
- unsigned char i;
- for(i=1;i<=6;i++)//依次设置1~6个数字引脚为输出模式
- pinMode(i,OUTPUT);//设置第i个引脚为输出模式
- }
- void loop()
- {
- style_1();//样式1
- flash();//闪烁
- style_2();//样式2
- flash();//闪烁
- style_3();//样式3
- flash();//闪烁
- }
复制代码 [md]
闪烁:1-6号灯亮,延时200ms,1-6号灯熄灭,延时200ms。
样式1:1-6号灯逐个点亮,然后6-1逐个熄灭。
样式2:3,4号灯先亮,然后2,5号再亮,最后1,6号两。接着1,6号灯熄灭,再2,5号熄灭,最后3,4号熄灭。
样式三:3,4号灯亮,然后3,4号熄灭2,5号亮,然后2,5号熄灭1,6号亮,再1,6号熄灭2,5号亮,最后2,5号熄灭3,4号亮。
大家可以根据自己的喜好进行不同的搭配。
[/md] |
|