内容
用光敏控制LED的明暗程度,光敏值在3位数码管上显示,串口输出光敏值,蜂鸣器到一定的值会didi
话不多说,直接上代码,那几个部分拼到一起,多了个数的拆分,让k1k2k3分别等于百位十位个位
代码
void setup(){
Serial.begin(9600);
int ledpin=9;
for(int i=0;i<7;++i){pinMode(i+2,OUTPUT);}pinMode(12,OUTPUT);pinMode(13,OUTPUT);pinMode(11,OUTPUT);
}
int a2g[10][9]={{0,0,0,0,0,0,1}, //0{1,0,0,1,1,1,1}, //1{0,0,1,0,0,1,0}, //2{0,0,0,0,1,1,0}, //3{1,0,0,1,1,0,0}, //4{0,1,0,0,1,0,0}, //5{0,1,0,0,0,0,0}, //6{0,0,0,1,1,1,1}, //7{0,0,0,0,0,0,0}, //8{0,0,0,0,1,0,0}, //9
};
void loop(){int sv=analogRead(A0);Serial.println(sv);analogWrite(9,255*sv/300);if(sv<60){tone(10,40);}else {noTone(10);} int a=sv;int i=0;while(a>0){i=i+1; a=a/10;} int k1,k2,k3;if(i==2) {k3=0;for(int j=0;j<i;++j){if(j==0) {k1=sv%10;}else if(j==1){k2=sv%10;}sv=sv/10;}}else if(i==3){for(int j=0;j<i;++j){if(j==0) {k1=sv%10;}else if(j==1){k2=sv%10;}else {k3=sv%10;}sv=sv/10;}}for(int j=0;j<30;++j){digitalWrite(13,1);digitalWrite(12,0);digitalWrite(11,0);for(int i=0;i<7;++i){digitalWrite(i+2,a2g[k1][i]);}delay(10);digitalWrite(13,0);digitalWrite(12,1);digitalWrite(11,0);for(int i=0;i<7;++i){digitalWrite(i+2,a2g[k2][i]);}delay(10);digitalWrite(13,0);digitalWrite(12,0);digitalWrite(11,1);for(int i=0;i<7;++i){digitalWrite(i+2,a2g[k3][i]);}delay(10);}//delay(100);
}