07-12-2015, 20:12
(Ten post był ostatnio modyfikowany: 07-12-2015, 23:30 przez CEO.
Powód edycji: Używamy znaczników kodu
)
witam.
Jestem nowy na forum od niedawna posiadam arduino mega
chciałbym wykonać układ który załączał by 2 przekaźniki:
1. pierwszy przycisk (button) załącza 1 przekaźnik i nie wyłącza do momentu następnego przyciśnięcia. 2 przekaźnik oczekuje na sygnał drugiego przycisku.
2. drugi przycisk (button) załącza 2 przekaźnik i nie wyłącza do momentu następnego przyciśnięcia. 1 przekaznik oczekuje na sygnał z 1 buttona.
Ogólny zamysł jest taki że maja pracować niezależnie.
Napisałem kod ale nie rozumiem gdzie jest błąd jeżeli ktoś ma pomysł co jest nie tak to bedę wdzięczny za wszelkie rady.
Aktualnie układ działa tak ze mogę sterować jedynie jednym przekaźnikiem z obydwojgu przycisków.
Jestem nowy na forum od niedawna posiadam arduino mega
chciałbym wykonać układ który załączał by 2 przekaźniki:
1. pierwszy przycisk (button) załącza 1 przekaźnik i nie wyłącza do momentu następnego przyciśnięcia. 2 przekaźnik oczekuje na sygnał drugiego przycisku.
2. drugi przycisk (button) załącza 2 przekaźnik i nie wyłącza do momentu następnego przyciśnięcia. 1 przekaznik oczekuje na sygnał z 1 buttona.
Ogólny zamysł jest taki że maja pracować niezależnie.
Napisałem kod ale nie rozumiem gdzie jest błąd jeżeli ktoś ma pomysł co jest nie tak to bedę wdzięczny za wszelkie rady.
Aktualnie układ działa tak ze mogę sterować jedynie jednym przekaźnikiem z obydwojgu przycisków.
Kod:
int buttonInput_1 =22;
int buttonInput_2 =24;
int buttonPushCounter_1 =0;
int buttonState_1=0;
int lastButtonState_1=0;
int buttonPushCounter_2 =0;
int buttonState_2=0;
int lastButtonState_2=0;
int relayOutput_1 =26;
int relayOutput_2 =28;
void setup () {
pinMode(buttonInput_1,INPUT);
pinMode(buttonInput_2, INPUT);
pinMode(relayOutput_1, OUTPUT);
pinMode(relayOutput_2, OUTPUT);
Serial.begin(9600);
}
void loop (){
// button 1
buttonState_1=digitalRead(buttonInput_1);
if(buttonState_1 != lastButtonState_1){
if(buttonState_1==HIGH){
buttonPushCounter_1++;
Serial.print(" relay 1 On");
Serial.print(buttonPushCounter_1);
}else{ Serial.print(" relay 1 Off");
}
}
lastButtonState_1=buttonState_1;
if(buttonPushCounter_1%4==0){
digitalWrite(relayOutput_1, LOW);
digitalWrite(relayOutput_2, HIGH);
}else{
digitalWrite(relayOutput_1, HIGH);
digitalWrite(relayOutput_2, HIGH);
}
// button2:
buttonState_2=digitalRead(buttonInput_2);
if(buttonState_2 != lastButtonState_2){
if(buttonState_2==HIGH){
buttonPushCounter_1++;
Serial.print(" relay 2 On");
Serial.print(buttonPushCounter_1);
}else{ Serial.print(" relay 2 Off");
}
delay(10);
}
lastButtonState_2=buttonState_2;
if(buttonPushCounter_2%4==0){
digitalWrite(relayOutput_2, LOW);
digitalWrite(relayOutput_1, HIGH);
}else{
digitalWrite(relayOutput_2, HIGH);
digitalWrite(relayOutput_1, HIGH);
}
}