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 3 z 3

Odczyt wartości cyfrowej

W tym przykładzie będziemy odczytywać wartości cyfrowe („zera lub jedynki”) korzystając z funkcji przełącznika stykowego.

Potrzebne materiały

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

Połączenie

Jedną stronę przełącznika stykowego podłączamy do gniazda 5V, a drugą poprzez rezystor 10kΩ do GND (masy) oraz bezpośrednio do cyfrowego pinu nr 13.

W przełączniku stykowym nóżki w danej linii o większej odległości pomiędzy sobą są zmostkowane, natomiast te w bliższej są rozdzielone. Dla pewności zawsze możemy dokonać pomiaru ciągłości obwodu korzystając z Omomierza.

Kod źródłowy

Na początku dla ułatwienia tworzymy zmienną pushButton, której przypisujemy wartość 2 (jako drugi cyfrowy PIN)

int pushButton = 2;

W funkcji setup() ustawiamy komunikację szeregową z naszym Makiem:

Serial.begin(9600);

Następnie deklarujemy pin 2 (przez zmienną) jako źródło wejściowe:

pinMode(pushButton, INPUT);

W funkcji loop() odczytujemy stan przełącznika:

int buttonState = digitalRead(pushButton);

oraz prezentujemy jego wartość:

Serial.println(buttonState);

Po uruchomieniu podglądu Serial Monitor (⌘ + Shift + M) pojawi się nam okno, w którym możemy obserwować wartości z przedziału 0 - 1 reprezentujące stan przełącznika (0 - rozwarty, 1 - zwarty).

Ściemnianie diody LED

W tym przykładzie zaprogramujemy diodę LED tak, aby płynnie się zapalała, a następnie gasła, tworząc wrażenie jej rozjaśniania i ściemniania.

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 9 (DIGITAL), natomiast krótszą bezpośrednio do GND (masy).

Kod źródłowy

Na początku deklarujemy 3 zmienne:

  • int led = 9; (zmienna skojarzona z cyfrowym pinem 9 z PWM)
  • int brightness = 0; (zmienna przechowująca informacje o jasności diody)
  • int fadeAmount = 5; (zmienna przechowująca ilość poziomów o jaki zaciemnia/rozjaśnia się dioda w pojedyńczym cyklu pętli)

oraz pin 9 jako wyjściowy:

pinMode(led, OUTPUT);

W pętli loop ustawiamy wartość (z przedziału 0 do 255) dla pinu 9 za pomocą funkcji analogWrite(), która będzie odpowiadać za wartość napięcia a tym samym za jasność diody:

analogWrite(led, brightness);

następnie zmieniamy wartość jasności do kolejnego przejścia pętli:

brightness = brightness + fadeAmount;

oraz w razie konieczności korygujemy kierunek - zaciemnianie/rozjaśnianie.

Analogowy odczyt napięcia

W tym przykładzie ponownie będziemy odczytywać wartość analogową na podstawie ustawień potencjometru, ale dla odmiany będziemy prezentować ją w woltach. Do tego celu dodamy do naszego kodu stosowne przeliczenia.

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

Na początku ustawiamy komunikację szeregową z naszym Makiem:

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);

Aby przeliczyć wartości z przedziału 0 - 1023 na wolty mnożymy je przez wynik dzielenia 5/1023 (5V to maksymalny stan gniazda wejściowego, natomiast 1023 to maksymalna sczytana wartość analogowa):

float voltage= sensorValue * (5.0 / 1023.0);

Po wykonaniu obliczeń prezentujemy ich wynik:

Serial.println(voltage)

Po uruchomieniu podglądu Serial Monitor (⌘ + Shift + M) pojawi się nam okno w którym możemy obserwować wartości z przedziału 0.0 - 5.0V reprezentujące wartość napięcia wejściowego na pinie A0.

Bibliografia:

https://www.arduino.cc/en/Tutorial/BuiltInExamples

https://pl.wikipedia.org/wiki/Arduino