Jag börjar förstå hur det här fungerar nu
Nu fungerar det som jag har tänkt, men man kan säkert göra koden på ett smartare sätt.
Så det är därför jag är här och frågar igen
Nu har jag bara kopierat dimfunktionen och ändrat led, led2, led3 osv.
Men man kan säkert krympa/ göra det smartare?
Kod: Markera allt
int led = 3; //led pins 1-6
int led2 = 5;
int led3 = 6;
int led4 = 9;
int led5 = 10;
int led6 = 11;
int btn = A0; //button pin
int brightness = 0; //brightness at time
int fadeAm = 5; //fade per.
int btnState = 0; //--!tillfällig knapp!--
int normlev = 0; //min level
int highlev = 150; //max level
int sens = A1; //sensPin
int sensval = 0; //sensorValue
int deltime = 30; //delay updim
int deltime2 = 30; //delay downdim
void setup(){
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(btn, INPUT);
pinMode(sens, INPUT);
}
void loop (){
sensval = analogRead(sens); //read and set light sensor value
sensval = constrain(sensval, 40, 700); //constrain values
sensval = map(sensval, 40, 700, 0, 255); //----
btnState = digitalRead(btn); //read button state
brightness = normlev; //sets brightness to normlev
if (btnState == HIGH && sensval <= 10) { //run only if dark and activated
brightness = normlev;
while(brightness < highlev){ //loop until brightness = highlev
brightness = brightness + fadeAm;
analogWrite(led, brightness); //write pwm to led
delay (deltime); //delay between loops
}
brightness = normlev;
while(brightness < highlev){
brightness = brightness + fadeAm;
analogWrite(led2, brightness);
delay (deltime);
}
brightness = normlev;
while(brightness < highlev){
brightness = brightness + fadeAm;
analogWrite(led3, brightness);
delay (deltime);
}
brightness = normlev;
while(brightness < highlev){
brightness = brightness + fadeAm;
analogWrite(led4, brightness);
delay (deltime);
}
brightness = normlev;
while(brightness < highlev){
brightness = brightness + fadeAm;
analogWrite(led5, brightness);
delay (deltime);
}
brightness = normlev;
while(brightness < highlev){
brightness = brightness + fadeAm;
analogWrite(led6, brightness);
delay (deltime);
}
delay(500); //-------------------------on time and dimdown
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led, brightness);
delay(deltime2);
}
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led2, brightness);
delay(deltime2);
}
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led3, brightness);
delay(deltime2);
}
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led4, brightness);
delay(deltime2);
}
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led5, brightness);
delay(deltime2);
}
brightness = highlev;
while(brightness > normlev){
brightness = brightness - fadeAm;
analogWrite(led6, brightness);
delay(deltime2);
}
}
}