Skocz do zawartości

Kurs Arduino - #2 - podstawy programowania, porty I/O


Pomocna odpowiedź

@Wiktor-IT witam na forum 🙂 

A najprostszy program - miganie LED na płytce Arduino pod pinem 13 działa?

Możesz też przesłać zdjęcie swojego układu, może coś więcej wymyślimy.

cześć,

void setup() {
  //pinMode(4, OUTPUT); // dioda zielona 
  //pinMode(8, OUTPUT); // dioda czerwona 
}

void loop(){
  digitalWrite(8, HIGH);
  delay(100);
  digitalWrite(8, LOW);
  delay(100);
  digitalWrite(4, HIGH);
  delay(100);
  digitalWrite(4, LOW);
  delay(100);
}

przy zdjętych komentarzach w deklaracji diody świecą dobrze,

jak są zakomentowane deklaracje diody się żarzą (dlaczego?) - a chyba nie powinny 🙂 

  • Lubię! 1
(edytowany)

@success witam na forum 🙂

Jak masz zakomentowane to domyślnie wszystkie wyprowadzenia są wejściami (tak jakbyś napisał w pinMode INPUT) i jakiś niewielki prąd może popłynąć.

Edytowano przez Gieneq
  • Pomogłeś! 1
16 minut temu, Gieneq napisał:

Jak masz zakomentowane to domyślnie wszystkie wyprowadzenia są wejściami

A wtedy digitalWrite(pin, HIGH) podłącza do pinu wewnętrzny rezystor pull-up, i przez niego płynie wystarczający prąd aby leda się lekko żarzyła. Tak powinno być, objaw prawidłowy, pacjent zdrowy.

  • Pomogłeś! 1

@Wiktor-IT sprawdź też czy ta dioda świeci, bo chyba jednak poprawnie podłączyłeś ale podłącz do samego zasilania 5V - czerwony kabelek z pinu cyfrowego na ten oznaczony 5V i zobacz czy świeci.

  • 2 tygodnie później...
Gość Mexok

1.1 przy 10 milisekundach moje oko nie odróżnia czy dioda miga, gdy dioda za szybko mruga nie widać czy ogóle mruga.

  • 2 tygodnie później...

Cześć,

Mam pytanie o pętle while w poniższym szkicu. 

Zastanawia mnie dlaczego gdy przestaje wciskać przycisk to dioda się dalej świeci?

Rozumiem że dopóki przycisk jest wciśnięty i jesteśmy w pętli while to dioda miga, tylko dlaczego nie gaśnie gdy wychodzę z pętli while? 

(Na mój rozum program powinien się kręcić w kółko w pętli loop a dioda powinna być wygaszona, bo nie ma żadnego warunku gdy digitalRead(7) jest w stanie wysokim. ale mój rozum to nie język C więc proszę o wyjaśnienie 😉 )

void setup() {
pinMode(8,OUTPUT); //Dioda niebieska
pinMode(7,INPUT_PULLUP); //Przycisk
digitalWrite(8,LOW); //Wyłączenie diody
}

void loop() {
  while(digitalRead(7)==LOW){ //Jeśli przycik wciśniety
    digitalWrite(8,LOW); //niebieska wyłącz
    delay(1000);
    digitalWrite(8,HIGH); //niebieska włącz
    delay(1000);
  }
 }

kurs jest ekstra, mega wciąga 🙂

 

  • Lubię! 1
1 minutę temu, dastawowy napisał:

kurs jest ekstra, mega wciąga 🙂

Dzięki, miło słyszeć 🙂

1 minutę temu, dastawowy napisał:

Rozumiem że dopóki przycisk jest wciśnięty i jesteśmy w pętli while to dioda miga, tylko dlaczego nie gaśnie gdy wychodzę z pętli while? 

A wyobraź sobie, że ta pętla się wykonuje tylko raz. Jaki będzie stan diody po jednokrotnym przejściu tej pętli? Wchodzisz do pętli, wyłączasz diodę, czekasz, włączasz diodę, czekasz, wychichocesz z pętli.

  • Lubię! 1
19 minut temu, Treker napisał:

A wyobraź sobie, że ta pętla się wykonuje tylko raz. Jaki będzie stan diody po jednokrotnym przejściu tej pętli? Wchodzisz do pętli, wyłączasz diodę, czekasz, włączasz diodę, czekasz, wychichocesz z pętli.

W takim wypadku dioda będzie się święcić ciągle, ( czekać z włączoną diodą? 🙂 ) ale czy to oznacza że jak się wychodzi z pętli while to program "pamięta" ostatnią komendę pętli?

nie wiem jak to rozumieć? 

 

Twój program wykona się tylko wtedy kiedy warunek w pętli while jest spełniony i będzie się wykonywał dopóki będzie on spełniony.

Popracuj miernikiem zmierz napięcie na pin (7)

  • Lubię! 1

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