一:一个LED闪烁
控制要求:1个LED灯,每隔50ms闪烁一次
实物连接图:
控制代码:
1 //2018.6/11 2 3 int LED = 10;//定义数字接口10,对应 4 5 void setup() 6 7 { 8 9 pinMode(LED,OUTPUT);//设置数字10 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。 10 11 } 12 13 14 15 void loop() //死循环体 16 17 { 18 19 digitalWrite(LED,HIGH);//IO口10设置为高电平,点亮数字10 口LED 20 21 delay(50);//延时50MS 22 23 digitalWrite(LED,LOW);//IO口10设置为低电平,熄灭数字10 口LED 24 25 delay(50);//延时50MS 26 27 }
二:流水灯
控制要求:1.一共6个LED,从左到右每隔200ms依次点亮,然后从右到左每隔200ms依次熄灭;
- 全熄灭后暂停200ms,间隔200ms闪烁两次;
- 然后从中间向两边全部点亮每次间隔200ms,两边向中间熄灭,间隔200ms;
- 全熄灭后暂停200ms,间隔200ms闪烁两次;
- 两边向中间依次点亮,每次间隔400ms,中间向两边依次点亮,每次间隔400ms,
- 两末端亮后暂停200ms,间隔200ms闪烁两次;
实物连接图:
控制代码:
1 int Led1 = 1;//定义数字接口1 2 int Led2 = 2;//定义数字接口2 3 int Led3 = 3;//定义数字接口3 4 int Led4 = 4;//定义数字接口4 5 int Led5 = 5;//定义数字接口5 6 int Led6 = 6;//定义数字接口6 7 8 void style_1(void) 9 { 10 unsigned char j; 11 for(j=1;j<=6;j++)//每隔200ms依次点亮1-6引脚相连的LED灯 12 { 13 digitalWrite(j,HIGH);//点亮J引脚相连的LED灯 14 delay(200);//延时200ms 15 } 16 for(j=6;j>=1;j--)//每隔200ms依次熄灭6-1引脚相连的LED灯 17 { 18 digitalWrite(j,LOW);//熄灭J引脚相连的LED灯 19 delay(200);//延时200ms 20 } 21 } 22 //灯闪烁子程序 23 void flash(void) 24 { 25 unsigned char j,k; 26 for(k=0;k<=1;k++)//闪烁两次 27 { 28 for(j=1;j<=6;j++)//点亮1~6引脚相连的led灯 29 digitalWrite(j,HIGH);//点亮于j引脚相连的led灯 30 delay(200);//延时200ms 31 for(j=1;j<=6;j++)//熄灭1~6引脚相连的led灯 32 digitalWrite(j,LOW);//熄灭与j引脚相连dled灯 33 delay(200);//延时200ms 34 } 35 } 36 //led灯花样显示样式2子程序 37 void style_2(void) 38 { 39 unsigned char j,k; 40 k=1;//设置k的初值为1 41 for(j=3;j>=1;j--) 42 { 43 digitalWrite(j,HIGH);//点亮灯 44 digitalWrite(j+k,HIGH);//点亮灯 45 delay(400);//延时400ms 46 k +=2;//设置k的值加2 47 } 48 k=5;//设置k的值为5 49 for(j=1;j<=3;j++) 50 { 51 digitalWrite(j,LOW);;//熄灭灯 52 digitalWrite(j+k,LOW);;//熄灭灯 53 delay(400);//延时400ms 54 k -=2;//设置k的减2 55 } 56 } 57 //led灯花样显示样式3子程序 58 void style_3(void) 59 { 60 unsigned char j,k; 61 k=5;//设置k的值为5 62 for(j=1;j<=3;j++) 63 { 64 digitalWrite(j,HIGH);//点亮灯 65 digitalWrite(j+k,HIGH);//点亮灯 66 delay(400);//延时400ms 67 digitalWrite(j,LOW);//熄灭灯 68 digitalWrite(j+k,LOW);//熄灭灯 69 k -=2;//设置k的减2 70 } 71 k=3;//设置k的值为3 72 for(j=2;j>=1;j--) 73 { 74 digitalWrite(j,HIGH);//点亮灯 75 digitalWrite(j+k,HIGH);//点亮灯 76 delay(400);//延时400ms 77 digitalWrite(j,LOW);//熄灭灯 78 digitalWrite(j+k,LOW);//熄灭灯 79 k +=2;//设置k的加2 80 } 81 } 82 void setup() 83 { 84 unsigned char i; 85 for(i=1;i<=6;i++)//依次设置1-6个数字引脚为输出模式 86 pinMode(i,OUTPUT);//设置第i个引脚为输出模式 87 } 88 void loop() 89 { 90 style_1();//样式1 91 flash();//闪烁 92 style_2();//样式2 93 flash();//闪烁 94 style_3();//样式3 95 flash();//闪烁 96 }
三:练习题:SOS信号灯
控制要求:1.三短三长三短闪烁,暂停时间都是100ms,长亮时间间隔为400ms,短亮时间间隔为150ms;
2.一个周期完成时间间隔为5S;