Skocz do zawartości

Włączanie i wyłączanie jednym przyciskiem diody z wykorzystaniem Arduino Mega


Pomocna odpowiedź

Napisano

Witam serdecznie

Mam problem od dłuższego czasu, ponieważ chciałbym w niedalekiej przyszłości zrobić sterowanie roletami, gdzie wciskam przycisk i roleta jedzie w dół, wciskam drugi raz i się zatrzymuje, znowu wciskam i jedzie w dół itd. Zacząłem na chwilę obecną ze zwykłą diodą ponieważ chciałem zobaczyć czy wyjdzie. i tu pojawił się problem, mianowicie gdy przycisk nie jest wciśnięty dioda miga z bardzo dużą częstotliwością(nie wiem jaką, miga po prostu szybko), tak samo dzieje się gdy do wejścia przycisku do Arduino, czyli INPUT na wejściu np.34 dioda również zaczyna migać. Poniżej wrzucam program, może w nim jest coś nie tak.

Z góry dziękuję za pomoc😁

void setup() {
pinMode(42, OUTPUT);
pinMode(44, INPUT);
digitalWrite(42, LOW);
}
bool wcisniety = 0;
bool aktywny_program = 0;
void loop() {
 if(digitalRead(44) == 1)
 {
  if(wcisniety == 0)
  {
    if(aktywny_program == 0)
    {
      aktywny_program = 1;
      
    }
    else
    {
      aktywny_program = 0;
      
    }
    wcisniety = 1;
  }
 }
 else
 {
  wcisniety = 0;
 }
 if(aktywny_program == 1)
 {
  digitalWrite(42, HIGH);
 }
 else
 {
   digitalWrite(42, LOW);
 }
}

 

Tu chodzi mi bardziej o to, że w momencie bezczynności, kiedy nic nie jest wciśnięte dioda bez przerwy miga i mam pytanie jak temu zaradzić/obejść

Na INPUT_PULLUP też program nie działał, wystąpił błąd powyżej opisany

19 godzin temu, Daw1d napisał:

gdzie wciskam przycisk i roleta jedzie w dół, wciskam drugi raz i się zatrzymuje, znowu wciskam i jedzie w dół itd.

To zachowanie realizuje przerzutnik typu T (toggle). Poczytaj ten wpis i poszukaj jak zapamiętać stan w zmiennej.

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