Skocz do zawartości

Problem ze zrozumieniem działania programu (2 przyciski, dioda)


Wojtek65

Pomocna odpowiedź

Witajcie

Kontynuacja poprzeniego odcinka:((((

Płytka z poprzeniego mojego posta uzbrojona w dwa przyciski

Spłodziłem taki program

void setup()
{
  pinMode(8, OUTPUT); //Tryb pinu 8 ( wyjście )
  pinMode(7, INPUT_PULLUP); //Przycisk CZERWONY podłączony do pinu 7 ( wejście )
  pinMode(6, INPUT_PULLUP); //Przycisk CZARNY podłączony do pinu 6 ( wejście )
  digitalWrite(8, HIGH); //Stan pinu 8 ( Wysoki ) - przez urządzenie podłączone do pinu 8 ( diodę LED ) płynie prąd
}

void loop()
{
  if (digitalRead(7) == LOW) //Jeżeli przycisk 7 ( CZERWONY ) jest  WCIŚNIĘTY dioda LED sobie miga
  {
    digitalWrite(8, LOW);
    delay(300);
    digitalWrite(8, HIGH);
    delay(400);
  }
  if (digitalRead(7) == HIGH) //Jeżeli przycisk 7 ( CZERWONY ) jest ZWOLNIONY
  {
    digitalWrite(8, HIGH);//dioda LED świeci światłem ciągły
  }
if (digitalRead(6) == LOW) //Jeżeli przycisk 6 ( CZARNY ) jest  WCIŚNIĘTY dioda nie chce zgasnąć, zmienia się delikatnie jasność świecenia ( DLACZEGO??
{
  digitalWrite(8, LOW);
   }
  
}

za pomoc z góry dzięki

Edytowano przez Gieneq
Zachęcam do korzystania z bloku kodu programu
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

Możesz też ten fragment kodu:

 

if (digitalRead(7) == HIGH) //Jeżeli przycisk 7 ( CZERWONY ) jest ZWOLNIONY
  {
    digitalWrite(8, HIGH);//dioda LED świeci światłem ciągły
  }

zmienić na ten:

if (digitalRead(7) == HIGH) //Jeżeli przycisk 7 ( CZERWONY ) jest ZWOLNIONY
  {
    digitalWrite(8, HIGH);//dioda LED świeci światłem ciągły
   delay(150);
  }

Zobaczysz efekt i łatwiej zrozumiesz.

Edytowano przez SOYER
Link do komentarza
Share on other sites

@Wojtek65 kody programów należy umieszczać za pomocą odpowiedniego narzędzia dostępnego w edytorze (przycisk "Wstaw kod programu"). Programy są wtedy prezentowane w czytelny sposób, a ich składania jest kolorowana. Proszę o poprawienie tego w pierwszym poście. Z góry dziękuję za zrozumienie i pomoc w utrzymaniu porządku 😉

Link do komentarza
Share on other sites

(edytowany)
void setup()
{
  pinMode(8, OUTPUT); //Tryb pinu 8 ( wyjście )
  pinMode(7, INPUT_PULLUP); //Przycisk CZERWONY podłączony do pinu 7 ( wejście )
  pinMode(6, INPUT_PULLUP); //Przycisk CZARNY podłączony do pinu 6 ( wejście )
  digitalWrite(8, HIGH); //Stan pinu 8 ( Wysoki ) - przez urządzenie podłączone do pinu 8 ( diodę LED ) płynie prąd
}

void loop()
{
  if (digitalRead(7) == LOW) //Jeżeli przycisk 7 ( CZERWONY ) jest  WCIŚNIĘTY dioda LED sobie miga
  {
    digitalWrite(8, LOW);
    delay(300);
    digitalWrite(8, HIGH);
    delay(400);
  }
  if (digitalRead(7) == HIGH) //Jeżeli przycisk 7 ( CZERWONY ) jest ZWOLNIONY
  {
    digitalWrite(8, HIGH);//dioda LED świeci światłem ciągły
  }
if (digitalRead(6) == LOW) //Jeżeli przycisk 6 ( CZARNY ) jest  WCIŚNIĘTY dioda nie chce zgasnąć, zmienia się delikatnie jasność świecenia ( DLACZEGO??
{
  digitalWrite(8, LOW);
   }
  
}

za pomoc z góry dzięki

void setup()
{
  pinMode(8, OUTPUT); //Tryb pinu 8 ( wyjście )
  pinMode(7, INPUT_PULLUP); //Przycisk CZERWONY podłączony do pinu 7 ( wejście )
  pinMode(6, INPUT_PULLUP); //Przycisk CZARNY podłączony do pinu 6 ( wejście )
  digitalWrite(8, HIGH); //Stan pinu 8 ( Wysoki ) - przez urządzenie podłączone do pinu 8 ( diodę LED ) płynie prąd
}

void loop()
{
  if (digitalRead(7) == LOW) //Jeżeli przycisk 7 ( CZERWONY ) jest  WCIŚNIĘTY dioda LED sobie miga
  {
    digitalWrite(8, LOW);
    delay(300);
    digitalWrite(8, HIGH);
    delay(400);
  }
  if (digitalRead(7) == HIGH) //Jeżeli przycisk 7 ( CZERWONY ) jest ZWOLNIONY
  {
    digitalWrite(8, HIGH);//dioda LED świeci światłem ciągły
  }
if (digitalRead(6) == LOW) //Jeżeli przycisk 6 ( CZARNY ) jest  WCIŚNIĘTY dioda nie chce zgasnąć, zmienia się delikatnie jasność świecenia ( DLACZEGO??
{
  digitalWrite(8, LOW);
   }
  
}

za pomoc z góry dzięki

 

Edytowano przez Gieneq
Link do komentarza
Share on other sites

Panie bo jak guzik7 jest nie wcisniety to warunek jest spelniony i dioda zapalona..jak guzik6 wcisniety to dioda ma zgasnac...i w rzeczywistosci tak sie dzieje...tylko strasznie szybko i efekt jakby dioda swiecila caly czas...if wykonuje sie tylko raz i kod przechodzi dalej...

Mozesz tak dopisac i powinno byc to co chcesz...

if (digitalRead(6) == LOW) //Jeżeli przycisk 6 ( CZARNY ) jest  WCIŚNIĘTY dioda nie chce zgasnąć, zmienia się delikatnie jasność świecenia ( DLACZEGO??
{
  digitalWrite(8, LOW);
  delay(50);  //dopisz delay!
   }

 

Edytowano przez farmaceuta
  • Lubię! 1
Link do komentarza
Share on other sites

Podziękował wszystkim KOLEGOM dotarło do mojego pustego łba, że void loop to pętla, żę dwa ostanie if-y wykonują się w kółko bardzo, ale to bardzo szybko co sprawia wrażenie, że dioda nie gaśnie i  że funkcję przycisku 6 można zrealizować kilkoma metodami programowymi zarówno wenątrz void loopa jak i wykonując skok poza pętlę void loopa

 

podziękował serdecznie

Link do komentarza
Share on other sites

1 minutę temu, Wojtek65 napisał:

można zrealizować kilkoma metodami programowymi zarówno wenątrz void loopa jak i wykonując skok poza pętlę void loopa

Zebys wyszedl poza loop to musisz stworzyc osobna funkcje...i podczas jej wywolania do niej sie dostajesz...narazie sie tym nie przejmuj..a doszlifuj podstawowe dzialanie if/for/while etc...wtedy unikniesz wielu "dziwnych" problemow w przyszlosci..🙂

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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