21
Apr
2016

Arduino podstawy cz. 3

W poprzednim rozdziale opisałem jak zacząć z Arduino, przygotować płytkę prototypową, zmontowaćpierwszy układ ze świecącą diodą LED. Nie ma jednak żadnej filozofii podpiąć coś do zasilania i patrzeć jak świeci. Uzywamy Arduino aby wprowadzić nieco logiki w układ i nim sterować w reakcji na zdarzenia.

Podłączamy

Opisuję tutaj podstawy więc nie będziemy szaleć. Proponuję włączanie i wyłączanie diody w równych odstępach czasu. Do zmontowania uzyjemy poprzednio omówionych komponentów: Arduino, diodę, rezystor, kabelki i płytkę prototypową. Sposób podłączenia może być tak jak poniżej.

Pierwszy sketch/szkic

Oprócz hardware’u potrzebujemy software. Gdy mamy uruchomione środowisko Arduino IDE i załadowany pierwszy szkic możemy go podmienić kodem poniżej.

 O co tutaj chodzi. Szkic jest złożony z dwóch części. Funkcji setup() oraz pętli głównej loop().

setup() – funkcja setup() jest automatycznie wykonywana na początku programu Arduino. W tej funkcji inicjujemy zmienne, piny oraz inne biblioteki, które mogą być pomocne w naszym szkicu. Funkcja setup() jest uruchamiana tylko raz gdy płytka dostanie zasilanie lub naciśniemy przycisk reset.

loop() – funkcja loop() odpowiada za ciągłe wykonywanie twojego właściwego programu. Jest wykonywana po zakończonej funkcji setup(). Arduino wykonuje komendy wewnątrz pętli w nieskończoność dopóki płytka jest zasilana.

Tuaj przydatna może być oryginalna dokumentacja Arduino reference page.

Migająca dioda

W tym przykładzie opiszę za co odpowiedzialne są pozostałe funkcje.

pinMode(pinNumber, tryb) – pinMode jest ustawiany w trakcie wywołania części setup() aby zainicjalizować  pin do użycia jako wejście lub wyjście. Robimy to jednorazowo wskazując numer pinu (te poprzedzone literą D) oraz tryb pracy (albo”INPUT” albo “OUTPUT”). Jeśli wskażemy,ze pin będzie działał jako wejście nie da się tego zmienić w trakcie działania programu. W naszym przypadku wysyłamy dane do pinu aby sterować stanem napięcia i zarazem diodą LED, więc ustawiamy jako OUTPUT.

digitalWrite(pinNumber, stan) – digitalWrite jest komendą, która umożliwia ustawienie napięcia 5V lub ground. Funkcja przyjmuje 2 argumenty: numer pinu oraz stan (LOW lub HIGH). Będziemy ustawiać na przemiennie w rezultacie podając napięcie 5V lub ustawiając 0V.

delay(timeInMs) – delay wstrzymuje  program na zadany czas wyrażony w milisekundach. Na przykład delay(2000)  zatrzyma program na 2s , delay(100) zatrzyma program 100 millisekund (1/10 sekundy), itd.

Po wgraniu programu na płytkę nasza dioda powinan zacząć migać.

Komunikaty portu szeregowego

dioda ładnie miga, ale co jeśli zczytywalibyśmy jakiś sygnał lub chcielibyśmy poinformować inny moduł używając połączenia szeregowego. Nie będziemy się tu rozwodzić na temat komunikacji. Postaram się to opisać przy okazji komunikacji Arduino-ESP8266. Zacznijmy od definicji.

Serial Communication – komunikacja szeregowa (Serial) pozwala Arduino przesłać komunikat do komputera  podczas pracy programu. Jest to bardzo użyteczne podczas debugowania, gdy chcemy mieć pewność że nasze zmienne przyjmują odpowiednią wartość lub są odpowiednio inkrementowany w pętlach i warunkach.  Aby włączyć komunikację szeregową w naszym szkicu należy ją zainicjalizować w sekcji setup() komendą Seial.begin(). Przyjmuje ona jeden argument. Szybkość transmisji (baud rate) domyślnie 9600 powinno być OK. Kolejną komendą jest Serial. println() do wysłania komunikatu w Arduino IDE (Tools>>Serial Monitor lub Narzędzia>>Szeregowy Monitor).

Poniżej kod po tych modyfikacjach

Pojawiły się 3 dodatkowe linie kodu. Po uruchomieniu programu raz jeszcze i wybraniu opcji Szeregowy Monitor w Arduino IDE powinno nam się pokazać coś takiego:

Inne pomysły z Arduino

Umiemy sterować diodą. Widzimy co się dzieje w kodzie. A co jeśli chcemy podłączyć żarówkę albo sterować gniazdkiem? Zamiast diody musielibyśmy podłączyć przekaźnik zamiast diody. Urządzenie to z jednej strony ma 3 piny. Dwa z nich to zasilanie 5V i GND a środkowy IN1 to sterowanie. W momencie podania napięcia z naszego pinu Digital (sygnał HIGH) przekaźnik zamknie się. Po prawej stronie sa zaciski przykręcane na śruby do których wpinamy się w obwód zasilania żarówki (220V).

Obwód wyglądałby mniej więcej tak:

 Na tym kończę wprowadzenie. Następne  artykuły poświęcę dalszym wdrożeniom aby w efekcie uzyskać wiedzę do zbudowania podobnego systemu – namiastki inteligentnego domu.

Share

You may also like...

Leave a Reply