13-01-2022, 11:47
(Ten post był ostatnio modyfikowany: 13-01-2022, 16:48 przez Marcin.marcinowski.)
Witam serdecznie wszystkich. Jest to mój pierwszy post na tym forum, po rozpoczęciu kursu na Forbocie o programowaniu Arduino postanowiłem spróbować swoich sił w napisaniu jakiegoś prostego programu , który chcę wykorzystać przyszłościowo. Napisałem program uwzględniając potrzebne komentarze, jednak po skompilowaniu i wgraniu programu do Arduino Uno, program nie działa według mojego założenia. Poradźcie mi proszę gdzie popełniam błędy i co muszę zmienić abym nie zszedł na zawał. Siedzę już trzeci wieczór i dalej klops... Nie mam już pomysłów. Na dzień dzisiejszy program po uruchomieniu załącza przekaźniki w takim samym cyklu, samoczynnie bez wciskania jakiegokolwiek przycisku tzn po podaniu zasilania: przekaznik 2 -1na sekundę potem przekaźnik 1na 5 sekund pytanie co jest nie tak?
Program
//test nr1
void setup() {
pinMode(2, INPUT_PULLUP);//przełacznik typu krańcówka /test palcem
pinMode(8, OUTPUT); //moduł płytki 1 przekażnika załączany stanem wysokim
pinMode(9, OUTPUT); //moduł płytki 2 przekażnika załączany stanem wysokim
pinMode(3, INPUT_PULLUP); //moduł czujnika z stan wysoki 5V lub GND do wyboru
digitalWrite(2,LOW); // ustawienie portów po włączeniu zasilania
digitalWrite(8,LOW); // ---------------||--------------------------
digitalWrite(9,LOW); // ---------------||--------------------------
digitalWrite(3,LOW); // ---------------||--------------------------
}
void loop()
{
if (digitalRead(2) == LOW) //jeśli przycisk wciśnięty
{digitalWrite(8, HIGH); //Włącz przekaźnik2
delay(1000); //utrzymaj włączony 1 sekundę
digitalWrite(8, LOW); //wyłącz przekaźnik 2
delay(1000); //odczekaj 1 sekundę
digitalWrite(9, HIGH); //włącz przekaźnik 1
delay(5000);} //utrzymaj włączony 1 sekundę
else{ //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
digitalWrite(9, LOW); //wyłacz przekaźnik 1
digitalWrite(8, LOW);} //wyłacz przekaźnik 2
if (digitalRead(3) == HIGH && digitalRead(2) == HIGH) //Jeśli 2 przycisk wciśnięty
{digitalWrite(9, LOW); //odłącz przekaźnik 1
digitalWrite(8, LOW);} //odłącz przekaźnik 2
else //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
{ digitalWrite(9, LOW); //wyłacz przekaźnik 2
digitalWrite(8, LOW);} //wyłacz przekaźnik 1
If (digitalRead(9) == HIGH && digitalRead(3) == HIGH) //J eśli 2 przycisk wciśnięty
{digitalWrite(9, LOW); //odłącz przekaźnik 1
digitalWrite(8, LOW); } //odłącz przekaźnik 2
else //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
{digitalWrite(9, LOW); //wyłacz przekaźnik 2
digitalWrite(8, LOW);} //wyłacz przekaźnik 1
}
Program
//test nr1
void setup() {
pinMode(2, INPUT_PULLUP);//przełacznik typu krańcówka /test palcem
pinMode(8, OUTPUT); //moduł płytki 1 przekażnika załączany stanem wysokim
pinMode(9, OUTPUT); //moduł płytki 2 przekażnika załączany stanem wysokim
pinMode(3, INPUT_PULLUP); //moduł czujnika z stan wysoki 5V lub GND do wyboru
digitalWrite(2,LOW); // ustawienie portów po włączeniu zasilania
digitalWrite(8,LOW); // ---------------||--------------------------
digitalWrite(9,LOW); // ---------------||--------------------------
digitalWrite(3,LOW); // ---------------||--------------------------
}
void loop()
{
if (digitalRead(2) == LOW) //jeśli przycisk wciśnięty
{digitalWrite(8, HIGH); //Włącz przekaźnik2
delay(1000); //utrzymaj włączony 1 sekundę
digitalWrite(8, LOW); //wyłącz przekaźnik 2
delay(1000); //odczekaj 1 sekundę
digitalWrite(9, HIGH); //włącz przekaźnik 1
delay(5000);} //utrzymaj włączony 1 sekundę
else{ //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
digitalWrite(9, LOW); //wyłacz przekaźnik 1
digitalWrite(8, LOW);} //wyłacz przekaźnik 2
if (digitalRead(3) == HIGH && digitalRead(2) == HIGH) //Jeśli 2 przycisk wciśnięty
{digitalWrite(9, LOW); //odłącz przekaźnik 1
digitalWrite(8, LOW);} //odłącz przekaźnik 2
else //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
{ digitalWrite(9, LOW); //wyłacz przekaźnik 2
digitalWrite(8, LOW);} //wyłacz przekaźnik 1
If (digitalRead(9) == HIGH && digitalRead(3) == HIGH) //J eśli 2 przycisk wciśnięty
{digitalWrite(9, LOW); //odłącz przekaźnik 1
digitalWrite(8, LOW); } //odłącz przekaźnik 2
else //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
{digitalWrite(9, LOW); //wyłacz przekaźnik 2
digitalWrite(8, LOW);} //wyłacz przekaźnik 1
}