Skocz do zawartości

Arduino przełącznik on/off


dominik.andreck

Pomocna odpowiedź

Zwracam się z prośbą o możliwość stworzenia kodu programu na Arduino.
Nie jestem w stanie napisać poprawnie działającego kodu, jedynie udało mi się poprawnie napisać część działającego kodu mniej więcej jakbym potrzebował

 

const int buttonPin = 2;
int buttonState = 0;

void setup() {
 pinMode(2, INPUT_PULLUP); //Przycisk jako wejście GND > pin 7
 pinMode(13, OUTPUT); //Dioda jako wyjście wbudowana
 pinMode(8, OUTPUT); // przekaznik 1 szary
 pinMode(7, OUTPUT); // przekaznik 2 fioletowy
}

void loop() {
 buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {    //jezeli przycisk jest wciśnięty
    digitalWrite(13, HIGH);
       
   
} else {  // jezeli jest wyłączony
  
    digitalWrite(13, LOW); //Wyłączamy diodę
}
}

Tylko, że bym potrzebowałgo zmodyfikować tak aby 

jeżeli przełącznik jest w pozycji on to:
włącz przekaźnik nr.1
mignij dioda 5x
zostaw włączoną diode   -  czas od włączenia przełącznika 5s 
wyłącz przekaźnik nr.1

odczekaj 1s

jeżeli przełącznik jest w pozycji off to:
włącz przekaźnik nr.2
mignij dioda 5x
zostaw wyłączoną diode   -  czas od wyłączenia przełącznika 5s 
wyłącz przekaźnik nr.2

Każda próba z mojej strony ingerencji w kod typu pin 13 wysoki, delay 500, pin 13 niski
Powoduje iż przestaje działać tak jak wklejony
Próbowałem już też z blokadami i ten sam efekt, raz zadziała poprawnie i później mimo zmiany stanu przełącznika brak reakcji

Link do komentarza
Share on other sites

@dominik.andreck witam na forum 🙂

Tylko jak ten program ma działać w trybie ciągłym? Załóżmy, że przycisk jest cały czas w jednej pozycji to program ma ciągle wykonywać to, co dzieje się, gdy przycisk jest wyłączony, czy nie ma wtedy nic robić?

Link do komentarza
Share on other sites

Szukaj pod nazwą "maszyna stanów" i zawczasu zapoznaj się z funkcjami millis. Aha i cierpliwości nie od razu uda Ci się napisać w pełni satysfakcjonujący kod 🙂

Edytowano przez _LM_
Link do komentarza
Share on other sites

31 minut temu, Treker napisał:

@dominik.andreck witam na forum 🙂

Tylko jak ten program ma działać w trybie ciągłym? Załóżmy, że przycisk jest cały czas w jednej pozycji to program ma ciągle wykonywać to, co dzieje się, gdy przycisk jest wyłączony, czy nie ma wtedy nic robić?

Cześć 😁

O tym nie pomyślałem, generalnie ma wykonywać w zasadzie tylko raz i czekać na zmianę stanu 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ok, w takim razie zacznij od napisania programu, który reaguje tylko na zmianę położenia przycisku. Czyli np. spróbuj napisać, który wysyła przez UART tekst do komputera tylko raz, po zmianie pozycji przełącznika. Pokaż co uda Ci się zrobić to pójdziemy z tematem dalej.

Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

Oj chyba za szybko... jakie do plusa i minusa?

Jesli mam wspólny pin dla dwóch pozycji to muszę jakoś rozpoznać która pozycja została uruchomiona😉 a to uczynię tylko poprzez dwa różne stany..

Link do komentarza
Share on other sites

17 minut temu, ethanak napisał:

BTW była mowa o dwóch pinach przy on-off-on.

 

3 godziny temu, ethanak napisał:

Jednego pinu... po co dwóch? Dwa to dla 3-pozycyjnego

To wkoncu jeden czy dwa?😜

 

No mam jeden pin..w kodzie ustalam co jest czym i sprawdzam choćby w jednym if else stan jaki jest aktualnie i uruchamiam odpowiedni przekaźnik/sekwencję..no ja to tak widzę dla oszczędności pinu😉

17 minut temu, ethanak napisał:

Ciekawe podejście - podaj przykładowy kod i schemat.

17 minut temu, ethanak napisał:

 

Edytowano przez farmaceuta
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.