Reklama

arduino lampki choinkoweTo kolejna część naszej nauki Arduino i tym razem my? Będę uczyć się i używać Tablice zrobić małą ozdobę choinki z różnymi migającymi sekwencjami. Byłby to idealny projekt, aby zająć dzieci, jeśli chcesz nauczyć ich podstawowego lutowania - po prostu zamontuj diody LED na kawałku karty, a możesz uzyskać energię ze standardowej baterii 9 V.

Jest to także kluczowa lekcja dla początkujących programistów Arduino, choć jeśli nie zamierzasz używać tego jako ozdoby, zdecydowanie sugeruję, aby to zrobić.

Uwaga: to jest samouczek dla początkujących i na pewno wygrywamy? przełamać jakąkolwiek nową płaszczyznę - prawda? s tylko urządzenie do nauczania zasad użytkowania Tablice i Do pętli radzić sobie z duża liczba diod LED (lub inne urządzenia wyjściowe).

Jeśli nie już teraz, teraz byłby dobry czas, aby śledzić wraz z innymi artykułami z serii:

  • Co to jest Arduino i co możesz z tym zrobić Co to jest Arduino i co możesz z tym zrobić?Arduino to niezwykłe małe urządzenie elektroniczne, ale jeśli nigdy wcześniej go nie używałeś, jakie dokładnie są i co możesz z tym zrobić? Czytaj więcej ?
  • Co to jest zestaw startowy Arduino i co zawiera? Co zawiera zestaw startowy Arduino? [MakeUseOf wyjaśnia]Wcześniej MakeUseOf przedstawiłem tutaj sprzęt open source Arduino, ale będziesz potrzebować czegoś więcej niż samego Arduino, aby coś z niego zbudować i zacząć. „Zestawy startowe” Arduino są ... Czytaj więcej
  • Więcej fajnych komponentów do zakupu za pomocą zestawu startowego 8 dodatkowych fajnych komponentów do twoich projektów ArduinoZastanawiasz się więc nad zestawem startowym Arduino, ale zastanawiasz się, czy niektóre podstawowe diody LED i rezystory wystarczą, abyś był zajęty na weekend? Prawdopodobnie nie. Oto kolejne 8 ... Czytaj więcej
  • Rozpoczęcie pracy z zestawem startowym Arduino? Instalowanie sterowników i konfigurowanie płyty głównej i portu Rozpoczęcie pracy z zestawem startowym Arduino - instalowanie sterowników oraz konfigurowanie płyty głównej i portuKupiłeś więc zestaw startowy Arduino i być może jakieś inne fajne komponenty - co teraz? Jak właściwie zacząłeś programować to Arduino? Jak to skonfigurować ... Czytaj więcej
  • Fritzing, bezpłatne narzędzie do rysowania schematów połączeń Fritzing - najlepsze narzędzie do szkicowania projektów elektronicznych [Cross Platform]Pomimo tego, że brzmi jak alcopop, Fritzing jest w rzeczywistości niesamowitym kawałkiem darmowego oprogramowania, którego można użyć do stworzenia schematy obwodów i komponentów do użytku z płytkami elektronicznymi do szybkiego prototypowania, takimi jak fantastyczne oprogramowanie typu open source Arduino ... Czytaj więcej
  • Bliższe spojrzenie na strukturę aplikacji Arduino i przykładowy program Blink Pierwsze kroki z Arduino: bliższe spojrzenie na płytkę drukowaną i strukturę programuOstatnim razem zostawiłem cię, skonfigurowałeś Arduino do pracy z Maciem lub Windowsem i przesłałem prostą aplikację testową, która mrugała pokładową diodę LED. Dzisiaj wyjaśnię kod ... Czytaj więcej

Do tego projektu ty? Potrzebuję przynajmniej 8 lub 9 diod LED w kolorze czerwonym lub zielonym, a rezystor dla każdego z nich: deska do krojenia i niektóre przewody przyłączeniowe. Zestaw startowy od Ooomlout, który niedawno kupiłem i który jest przedstawiony w tym samouczku, oferuje świetny stosunek jakości do ceny i ma więcej diod LED i rezystorów niż ty? Zawsze będę potrzebować, a także schludny deska do krojenia i walizka Arduino, aby utrzymać porządek.

Tutaj? ostatnia rzecz:

arduino lampki choinkowe

I wideo z tego w akcji.

Tutaj? widok okablowania od Fritzinga. To? jest bardzo prosty - wystarczy podłączyć dodatni przewód diod LED do pinów 2-> cokolwiek (do styku 13) i połącz ujemne nogi z uziemieniem w linii za pomocą rezystora. Wartość I? Użyłem tutaj 560 omów. Że? to do okablowania.

arduino lampki choinkowe

Po stronie oprogramowania zastanów się, jak możesz napisać do wszystkich diod LED w kodzie. Możesz to zrobić w ten sposób:

int led1 = 2; // pierwsza dioda LED na pinie 2. int led2 = 3; // sekunda na pinie 3. // etc etc void loop () {digitalWrite (led1, HIGH); opóźnienie (100); digitalWrite (led1, LOW); opóźnienie (100); digitalWrite (led2, HIGH); // itd. }

Powinieneś być w stanie zobaczyć, że dzięki 9 diodom LED szybko to się męczy. Odpowiedź leży po stronie Tabliceco jeśli możesz? pamiętam nasz Programowanie 101 o podstawowych typach danych Podstawy programowania komputerowego 101 - Zmienne i typy danychPo wprowadzeniu i rozmowie o programowaniu obiektowym wcześniej i gdzie jego nazwa pochodzi, myślałem, że nadszedł czas, aby przejść przez absolutne podstawy programowania w języku innym niż język droga. To... Czytaj więcej - są w zasadzie tylko listami.

Składnia wygląda następująco (umieść to jako pierwszy wiersz w kodzie):

int leds [] = {2,3,4,5,6,7,8,9,10};

Nawiasy kwadratowe wskazują, że diody LED? zmienna będzie Szyk. Nawiasy klamrowe zawierają listę numerów pinów, które przechowuje nasza tablica.

Teraz, aby użyć macierzy, musimy rozwiązać ją za pomocą numeru indeksu. The indeks zaczyna się od 0, i dlatego zawsze wzrośnie o 1 mniej niż całkowita liczba rzeczy w nim zawartych (więc przy 9 elementach ostatni miałby indeks 8).

Piszesz to w ten sposób:

diody led [0]

Który w naszym przypadku przyniósłby liczbę 2, ponieważ to? co? s pod indeksem 0 w naszej tablicy.

Śledzisz do tej pory? Świetny. Samo nie jest? wystarcza nam jednak - potrzebujemy również sposobu na iterację każdego elementu naszej tablicy diod LED. W tym celu użyjemy dla pętli. Składnia do tego jest następująca:

dla (zmienna początkowa; stan, w którym powtarzamy się ponownie; zmień na zmienną każdą iterację)

Na przykład:

dla (int i = 0; i <9; i ++)

Który mówi

  • rozpocznij tę pętlę zmienną, ja, który ma wartość zero
  • kontynuuj zapętlanie tylko wtedy, gdy ja mniej niż 9? (tak: 0,1,2,3,4,5,6,7,8)
  • za każdym razem, dodaj 1 do i (i ++ to krótki sposób na powiedzenie i = i + 1)

Zasadniczo pętla będzie powtarzana tyle razy, ile mamy diod LED i za każdym razem? s powtórzy się, będziemy mieć zmienną, ja, z którego możemy korzystać w dowolny sposób.

My? Na początek użyję tej struktury dwa razy. Po wejściu do funkcji konfiguracji, aby wszystkie nasze piny przełączyły się w tryb wyjściowy, tak:

void setup () {for (int i = 0; i <9; i ++) {pinMode (diody LED [i], WYJŚCIE); } }

Widzisz, co tam zrobiliśmy? Zamiast pisać 9 linii kodu, aby zadeklarować każdy pojedynczy pin jako wynik, tworzymy pętlę „for”, która powtarza się 9 razy, za każdym razem ustawiając inny pin.

Teraz powinieneś zobaczyć, jak moglibyśmy zrobić dokładnie to samo w głównej pętli programu, aby kolejno włączyć każdą diodę LED:

void loop () {for (int i = 0; i <9; i ++) {digitalWrite (diody [i], WYSOKA); opóźnienie (100); digitalWrite (diody LED [i], LOW); } }

Spróbuj tego. Możesz pobierz stąd pełny kod do dzisiejszego projektu Jeśli ty? d raczej nie pisz go ponownie (choć zachęcam cię, ponieważ pomaga to w nauce).

Okej, więc teraz mamy dość nudną sekwencję oświetlenia. Pozwolić? s zaprogramuj inny. Tylko dla zabawy, niech? s sprawiają, że jest całkowicie losowy. Zamień kod głównej pętli na:

void loop () { int randomLed = losowy (0,8); digitalWrite (leds [randomLed], HIGH); opóźnienie (50); randomLed = losowy (0,8); digitalWrite (leds [randomLed], LOW); }

Zamiast używać pętli „for” do iteracji po każdej diodzie LED, zamiast tego wybieramy losową liczbę od 0 do 9 i włączamy ją.

Zostawię to na dziś, ponieważ powinieneś być uzbrojony w wystarczającą wiedzę, aby zaprogramować wszystkie nowe sekwencje i eksperymentować z pętlami. Aby udowodnić, jak łatwo to wszystko, rzuciłem wyzwanie mojej żonie, by wymyśliła sekwencję, którą ona? chciałbym zobaczyć, a potem dostałeś?ją zaprogramować, podając tylko kod i lekcje? jak dotąd. Wymyśliła to, więc sprawdź, czy możesz to dopasować do pracy domowej!

Pytania, sugestie, problemy - prosimy o kontakt w komentarzach.

James ma licencjat z zakresu sztucznej inteligencji i jest certyfikowany przez CompTIA A + i Network +. Jest głównym programistą MakeUseOf i spędza wolny czas grając w paintball VR i gry planszowe. Buduje komputery od dziecka.