Skoro postawiliśmy już pierwsze kroki w teorii oraz praktyce to teraz czas na rozpoczęcie przygody z układami opartymi o platformę Arduino. Dowiemy się jak skonfigurować całość do pracy z Makiem oraz zaczniemy programować proste układy elektroniczne.

Strona 2 z 3

Odczyt wartości analogowych

Przykład ten demonstruje możliwość sczytywania wartości za pomocą analogowych wejść Arduino. Za źródło zmiennych posłuży potencjometr, czyli opornik z możliwością płynnej regulacji jego wartości rezystancji. Wyniki będą przesyłane do naszego Maka, gdzie będziemy je analizować korzystając ze środowiska Arduino IDE.

Potrzebne materiały:

  • płytka Arduino (w przykładzie wykorzystam UNO)
  • kabel USB do połączenia Arduino z Makiem
  • potencjometr 10kΩ
  • kabelki połączeniowe

Połączenie

  • Pierwszą nóżkę potencjometru (nie ma znaczenia, czy to prawa, czy lewa) łączymy z gniazdem 5V (w sekcji POWER)
  • Środkową nóżkę łączymy z A0 (w sekcji ANALOG IN)
  • Ostatnią nóżkę łączymy z GND, tzw. masą (w sekcji POWER)

Kod źródłowy

W poniższym kodzie musimy zacząć od nawiązania połączenia szeregowego pomiędzy komputerem, a płytką Arduino. Komunikacja odbywa się z szybkością 9600 bitów na sekundę i rozpoczynana jest następującą komendą, którą zamieszczamy w funkcji setup():

Serial.begin(9600);

W funkcji loop() (wywoływanej w pętli) definiujemy zmienną sensorValue, która będzie przybierała wartości analogowe z przedziału 0 do 1023 sczytywane z gniazda A0 (analog 0):

int sensorValue = analogRead(A0);

Następnie dodajemy linię odpowiedzialną za prezentację wartości zmiennej sensorValue w monitorze połączenia szeregowego:

Serial.println(sensorValue);

a całość kończymy komendą odpowiedzialną za opóźnienie wykonania o 1 ms, co powinno poskutkować większą stabilnością programu

delay(1);

Po wgraniu powyższego kodu do Arduino oraz uruchomieniu podglądu Serial Monitor (⌘ + Shift + M) pojawi się nam okno, w którym możemy obserwować wartości z przedziału 0 - 1023, w zależności od pozycji w jakiej znajduje się potencjometr.

Jako ćwiczenie możecie poeksperymentować z innymi wartościami opóźnienia (np. delay(1000)), pamiętając, że 1s = 1000ms. Przekonacie się wtedy jak zwiększa się czas pomiędzy kolejnymi prezentowanymi odczytami.

Miganie diody LED

W tym przykładzie będziemy automatycznie zaświecać i gasić diodę LED.

Potrzebne materiały

  • płytka Arduino (w przykładzie wykorzystam UNO)
  • kabel USB do połączenia Arduino z Makiem
  • dioda LED
  • rezystor 220Ω
  • kabelki połączeniowe
  • płytka stykowa

Połączenie

Dłuższą nóżkę diody (anodę) przez rezystor 220Ω wpinamy do cyfrowego gniazda nr 13 (DIGITAL), natomiast krótszą bezpośrednio do GND (masy).

Kod źródłowy

Większość płytek Arduino posiada wbudowaną diodę LED, z której możemy korzystać dokładnie tak, jakbyśmy podłączyli zewnętrzną w parze z dopasowanym rezystorem (najczęściej dioda ta jest połączona z cyfrowym pinem 13).

W tym przykładzie zdublujemy funkcję wbudowanej diody dokładając zewnętrzną podpiętą pod wspominany PIN 13, natomiast odwoływać się do niej w kodzie będziemy korzystając ze stałej LED_BUILTIN.

Na początek ustawiamy zatem cyfrowy pin 13 jako wyjściowy:

pinMode(LED_BUILTIN, OUTPUT);

W głównej pętli włączamy diodę za pomocą polecenia:

digitalWrite(LED_BUILTIN, HIGH);

co sprawia, że na anodę (+) diody LED Arduino zacznie kierować napięcie 5V (stan wysoki). Z kolei polecenie:

digitalWrite(LED_BUILTIN, LOW);

wyłącza diodę ponownie ustawiająć na jej anodzie stan niski (0V).

Pomiędzy zmianą stanów na wyjściu analogowym ustawiamy opóźnienie 1s (1000ms) tak, by móc zaobserwować „miganie” diody.