Skocz do zawartości

Przycisk bistabilny + czasówka program


Pomocna odpowiedź

Napisano (edytowany)

Witam.  Przestudiowałem nieco kurs Arduino na Forbot, ale mam problem z napisaniem programu w którym jeden przycisk załączałby  diodę  na określony czas . Naciśnięcie go w trakcie świecenia ma ją wyłączyć. Na razie z pomocą zmiennej boolean tylko włączam i wyłączam diodę :



boolean zmienna = 0 ;

void setup()

{

pinMode(3, OUTPUT) ;

pinMode(1, INPUT_PULLUP) ;

}

void loop()

{

  if (digitalRead(1) == LOW) {

   zmienna = !zmienna;

   digitalWrite(3, zmienna);

} }

 

Edytowano przez arasb

@arasb witam na forum 🙂

15 godzin temu, arasb napisał:

Przestudiowałem nieco kurs Arduino na Forbot, ale mam problem z napisaniem programu w którym jeden przycisk załączałby  diodę  na określony czas .

Z czym dokładnie masz problem, na czym utknąłeś? Czy ten program ma realizować tylko to jedno zadanie?

PS Kody programów należy umieszczać za pomocą opcji "Wstaw kod", dzięki której kody programów są odpowiednie kolorowane i formatowane.

(edytowany)

 

Mam problem jak tu użyć funkcji delay,  bo takim kodzie jak napisałem niżej nie mogę wyłączyć diody podczas  jej świecenia . Funkcja delay chyba nie będzie pozwala na odczyt stanu tego pinu  1 w czasie jej trwania

 

boolean zmienna = 0 ;

void setup()

{

pinMode(3, OUTPUT) ;

pinMode(1, INPUT_PULLUP) ;

}

void loop()

{

  if (digitalRead(1) == LOW) {
   digitalWrite(3, HIGH); 
   delay (4000);
   digitalWrite(3, LOW) ;
   zmienna = !zmienna;

   digitalWrite(3, zmienna);
   
} }

 

Edytowano przez arasb

No to nie używaj delay() bo nie do tego służy. A o używaniu millis() napisano już tyle, że znajdziesz sobie rozwiązanie zarówno na forum, jak i na kursach arduino.

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