Skocz do zawartości
danmaz

Pierwsze programy własny który nie mogę zrozumieć

Pomocna odpowiedź

Zsumowałem programiki i teraz po przytrzymaniu włacznika świeci dioda 5 s a później miga tak jak ma zadane ale nie mogę tego zrozumieć co z czym.

void setup() {
 pinMode(8, OUTPUT); //Dioda jako wyjście
 pinMode(7, INPUT_PULLUP); //Przycisk jako wejście
 digitalWrite(8, LOW); //Wyłączenie diody
}

void loop()
{
 if (digitalRead(7) == LOW) { //Jeśli przycisk wciśnięty
   digitalWrite(8, HIGH); //Włącz diodę
   delay(5000); //Czekamy 10 sekund
   digitalWrite(8, LOW); //Wyłączamy diodę
 } else {digitalWrite(8, HIGH);   
 delay(1000);              
 digitalWrite(8, LOW);   
 delay(1000);             
 digitalWrite(8, LOW); //Wyłącz diodę
 }

}

Udostępnij ten post


Link to post
Share on other sites

danmaz, zanim zaczniemy Ci pomagać popraw pisownie, bo słowa "ktury" nic już nie usprawiedliwia... Kod programu zmieść w tagach

Udostępnij ten post


Link to post
Share on other sites

danmaz, czego konkretnie nie rozumiesz? Komentarze, które tam są w miarę tłumaczą co i jak.

Jedynie ten fragment:

 } else {digitalWrite(8, HIGH);    
 delay(1000);              
 digitalWrite(8, LOW);    
 delay(1000);              
 digitalWrite(8, LOW); //Wyłącz diodę 
 } 

Można zamienić na:

 } else {
 digitalWrite(8, HIGH);    
 delay(1000);              
 digitalWrite(8, LOW);   //Wyłącz diodę   
 delay(1000);              
 } 

Ta ostatnia linijka i tak nic nie robiła. Przeczytałeś kurs Arduino dostępny na Forbocie?

Udostępnij ten post


Link to post
Share on other sites

Tak właśnie z tym kursem robię tylko chciałem coś więcej zrobić. Chodziło o to że nie wiem dlaczego przetrzymanie włącznika zmienia działanie i później wraca do poprzedniej pętli.

Udostępnij ten post


Link to post
Share on other sites

Program wykonywany jest cały czas w pętli. W środku masz warunek:

if (digitalRead(7) == LOW) {

Zależnie od wciśnięcia przycisku wykonywana jest tylko "połowa" pętli miganie, co sekundę lub świecenie przez 5. Zwróć uwagę, że polecenia delay (opóźniające) zatrzymują wykonywanie pętli na określony czas. Teraz trochę jaśniej? Jak nie, to postaraj się przeanalizować ten program i zadaj jakieś konkretne pytanie 🙂

Udostępnij ten post


Link to post
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!

Gość
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...