• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Wyswietlacz lcd, wejscia i wyjscia
#21
(16-10-2017, 20:04)bond napisał(a): Zrobiłem tak jak proponujesz wyciąłem wszystko związane z wyświetlaczem. Ale nadal mi się zapętliło.
Jak włączę led1 i led2 to nie mogę wyłączyć np. led1 jak nie wyłączę led2 i tak w koło.
Wiem, że robię jakiś błąd, dlatego potrzebuję wsparcia i podpowiedzi gdzie robię błąd.
Twój problem polega na tym że nie rozumiesz jak działa if.
Odpowiedz na pytanie: co się wykona w programie jeśli warunek "if (digitalRead(11) == LOW)" będzie spełniony.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
#22
Tak jak napisał wyżej kolega namok przyjrzyj się jak działa sprawdzenie pierwszego warunku IF.
Szczególnie zobacz gdzie zamyka się druga klamra po tym warunku...

Aby Tobie łatwiej było to zobaczyć to tylko uporządkowałem Twój program.
Zerknij poniżej...

Kod:
void setup()
{
 // put your setup code here, to run once:
 pinMode(11, INPUT_PULLUP); //Przycisk jako wejście
 pinMode(12, INPUT_PULLUP);
 pinMode(10, OUTPUT); //Dioda jako wyjście
 pinMode(8,OUTPUT);//Dioda jako wyjście
 digitalWrite(10,LOW); //Wyłączenie diody
 digitalWrite(9,LOW);//Wyłączonie diody
}

void loop()
{
 if (digitalRead(11) == LOW)
 {
   //Jeśli przycisk wciśnięty
   digitalWrite(10,HIGH); //Włącz diodę1
 }
 else
 {
   //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
   delay(200); //Opóźnienie
   digitalWrite(10,LOW);

   if (digitalRead(12) == LOW)
   {
     //Jeśli przycisk wciśnięty
     digitalWrite(8, HIGH); //Wyłącz diodę
   }
   else
   {
     //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
     delay(200); //Opóźnienie
     digitalWrite(8, LOW); //Wyłącz diodę
   }
 }
}

Poniżej natomiast zamieściłem moje rozwiązanie Twojego problemu.
Jednak sprawdź czy o to Ci chodziło.

Kod:
void setup()
{
 // put your setup code here, to run once:
 pinMode(11, INPUT_PULLUP); //Przycisk jako wejście
 pinMode(12, INPUT_PULLUP);
 pinMode(10, OUTPUT); //Dioda jako wyjście
 pinMode(8,OUTPUT);//Dioda jako wyjście
 digitalWrite(10,LOW); //Wyłączenie diody
 digitalWrite(9,LOW);//Wyłączonie diody
}

void loop()
{
 if (digitalRead(11) == LOW)
 {
   //Jeśli przycisk wciśnięty
   digitalWrite(10,HIGH); //Włącz diodę1
 }
 else
 {
   //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
   delay(200); //Opóźnienie
   digitalWrite(10,LOW);
 }

 if (digitalRead(12) == LOW)
 {
   //Jeśli przycisk wciśnięty
   digitalWrite(8, HIGH); //Wyłącz diodę
 }
 else
 {
   //Jeśli warunek nie został spełniony (przycisk nie jest wciśnięty)
   delay(200); //Opóźnienie
   digitalWrite(8, LOW); //Wyłącz diodę
 }
}

Staraj się porządkować swoje programy bo to bardzo ułatwia ich analizę.
Do szybkiego formatowania używam skrótu: CTRL + T
Wypróbuj ten skrót podczas pisania swoich programów, polecam.
Jeżeli pomogłem, to poproszę o punkt reputacji Big Grin
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości