LED闪烁实验
LED工作电压一般 为 1.5-2.0V,工作电流一般为 10-20ma,反向击穿电压为 5V。控制板逻辑电路供电为 5V。根据以上参数假设 LED 工作电压选用 1.7V,工作电流选用 15ma,限流电阻=(总电压-LED 电压)/电流,所以限流电阻 =(5-1.7)/0.015=220Ω。
接线图
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| int Led1 = 1; int Led2 = 2; int Led3 = 3; int Led4 = 4; int Led5 = 5; int Led6 = 6;
void style_1(void) { unsigned char j; for(j=1;j<=6;j++) { digitalWrite(j,HIGH); delay(200); } for(j=6;j>=1;j--) { digitalWrite(j,LOW); delay(200); } }
void flash(void) { unsigned char j,k; for(k=0;k<=1;k++) { for(j=1;j<=6;j++) digitalWrite(j,HIGH); delay(200); for(j=1;j<=6;j++) digitalWrite(j,LOW); delay(200); } }
void style_2(void) { unsigned char j,k; k=1; for(j=3;j>=1;j--) { digitalWrite(j,HIGH); digitalWrite(j+k,HIGH); delay(400); k +=2; } k=5; for(j=1;j<=3;j++) { digitalWrite(j,LOW); digitalWrite(j+k,LOW); delay(400); k -=2; } }
void style_3(void) { unsigned char j,k; k=5; for(j=1;j<=3;j++) { digitalWrite(j,HIGH); digitalWrite(j+k,HIGH); delay(400); digitalWrite(j,LOW); digitalWrite(j+k,LOW); k -=2; } k=3; for(j=2;j>=1;j--) { digitalWrite(j,HIGH); digitalWrite(j+k,HIGH); delay(400); digitalWrite(j,LOW); digitalWrite(j+k,LOW); k +=2; } } void setup() { unsigned char i; for(i=1;i<=6;i++) pinMode(i,OUTPUT); } void loop() { style_1(); flash(); style_2(); flash(); style_3(); flash(); }
|
样式 1:16 号灯逐个点亮,然后 61 逐个熄灭。
样式 2:3,4 号灯先亮,然后 2,5 号再亮,最后 1,6 号两。接着 1, 6 号灯熄灭,再 2,5 号熄灭,最后 3,4 号熄灭。
样式3:3,4 号灯亮,然后 3,4 号熄灭 2,5 号亮,然后 2,5 号熄灭
1,6 号亮,再 1,6 号熄灭 2,5 号亮,最后 2,5 号熄灭 3,4 号亮。