Skocz do zawartości

Arduino przełącznik on/off


Pomocna odpowiedź

Napisano

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

@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ć?

(edytowany)

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_
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 

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.

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..

(edytowany)
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

Masz jeden pin cyfrowy i trzy możliwości: podłączony do plusa, podłączony do minusa, niepodłączony. Pokaż tego ifelsa.

A przede wszystkim mówisz o on-off czy on-off-on?

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...