hi,
I made arduino stairs light. Press button and led strips start to shine, pres button again and led strips off. I connect arduino and led strips to 12V power supply.
Problem:
- Arduino auto restart over and over again.
- Then I push another house light button (not connected to arduino) led strips starts to shine or it can start shine any time.
Could it be that arduino react to electrical spikes and start program? Or I forgot to put resistor somewhere.
Code:
const int jungiklis1 = 11;
const int jungiklis2 = 10;
const int led1 = 23;
const int led2 = 25;
const int led3 = 27;
const int led4 = 29;
const int led5 = 31;
const int led6 = 33;
const int led7 = 35;
const int led8 = 37;
const int led9 = 39;
const int led10 = 41;
const int led11 = 43;
const int led12 = 45;
const int led13 = 47;
const int led14 = 49;
const int lempa = 12;
int jungiklio_busena1 = 0;
int jungiklio_busena2 = 0;
int sviesos_busena = 0;
//--------------------------------------------------------------------------------------------
void jungiklis1_ijungti() {
digitalWrite(lempa, HIGH);
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led5, HIGH);
delay(500);
digitalWrite(led6, HIGH);
delay(500);
digitalWrite(led7, HIGH);
delay(500);
digitalWrite(led8, HIGH);
delay(500);
digitalWrite(led9, HIGH);
delay(500);
digitalWrite(led10, HIGH);
delay(500);
digitalWrite(led11, HIGH);
delay(500);
digitalWrite(led12, HIGH);
delay(500);
digitalWrite(led13, HIGH);
delay(500);
digitalWrite(led14, HIGH);
}
void jungiklis2_ijungti() {
digitalWrite(lempa, HIGH);
digitalWrite(led14, HIGH);
delay(500);
digitalWrite(led13, HIGH);
delay(500);
digitalWrite(led12, HIGH);
delay(500);
digitalWrite(led11, HIGH);
delay(500);
digitalWrite(led10, HIGH);
delay(500);
digitalWrite(led9, HIGH);
delay(500);
digitalWrite(led8, HIGH);
delay(500);
digitalWrite(led7, HIGH);
delay(500);
digitalWrite(led6, HIGH);
delay(500);
digitalWrite(led5, HIGH);
delay(500);
digitalWrite(led4, HIGH);
delay(500);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led1, HIGH);
}
void jungiklis1_isjungti() {
digitalWrite(lempa, LOW);
digitalWrite(led14, LOW);
delay(500);
digitalWrite(led13, LOW);
delay(500);
digitalWrite(led12, LOW);
delay(500);
digitalWrite(led11, LOW);
delay(500);
digitalWrite(led10, LOW);
delay(500);
digitalWrite(led9, LOW);
delay(500);
digitalWrite(led8, LOW);
delay(500);
digitalWrite(led7, LOW);
delay(500);
digitalWrite(led6, LOW);
delay(500);
digitalWrite(led5, LOW);
delay(500);
digitalWrite(led4, LOW);
delay(500);
digitalWrite(led3, LOW);
delay(500);
digitalWrite(led2, LOW);
delay(500);
digitalWrite(led1, LOW);
}
void jungiklis2_isjungti() {
digitalWrite(lempa, LOW);
digitalWrite(led1, LOW);
delay(500);
digitalWrite(led2, LOW);
delay(500);
digitalWrite(led3, LOW);
delay(500);
digitalWrite(led4, LOW);
delay(500);
digitalWrite(led5, LOW);
delay(500);
digitalWrite(led6, LOW);
delay(500);
digitalWrite(led7, LOW);
delay(500);
digitalWrite(led8, LOW);
delay(500);
digitalWrite(led9, LOW);
delay(500);
digitalWrite(led10, LOW);
delay(500);
digitalWrite(led11, LOW);
delay(500);
digitalWrite(led12, LOW);
delay(500);
digitalWrite(led13, LOW);
delay(500);
digitalWrite(led14, LOW);
}
//--------------------------------------------------------------------------------------------
void setup() {
pinMode(jungiklis1, INPUT);
pinMode(jungiklis2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
pinMode(led11, OUTPUT);
pinMode(led12, OUTPUT);
pinMode(led13, OUTPUT);
pinMode(led14, OUTPUT);
pinMode(lempa, OUTPUT);
}
//--------------------------------------------------------------------------------------------
void loop(){
jungiklio_busena1 = digitalRead(jungiklis1);
jungiklio_busena2 = digitalRead(jungiklis2);
if (sviesos_busena == 0 && jungiklio_busena1 == HIGH) {
jungiklis1_ijungti();
sviesos_busena = 1;
}
jungiklio_busena1 = digitalRead(jungiklis1);
jungiklio_busena2 = digitalRead(jungiklis2);
if (sviesos_busena == 0 && jungiklio_busena2 == HIGH) {
jungiklis2_ijungti();
sviesos_busena = 1;
}
jungiklio_busena1 = digitalRead(jungiklis1);
jungiklio_busena2 = digitalRead(jungiklis2);
if (sviesos_busena == 1 && jungiklio_busena1 == HIGH) {
jungiklis1_isjungti();
sviesos_busena = 0;
}
jungiklio_busena1 = digitalRead(jungiklis1);
jungiklio_busena2 = digitalRead(jungiklis2);
if (sviesos_busena == 1 && jungiklio_busena2 == HIGH) {
jungiklis2_isjungti();
sviesos_busena = 0;
}
}