Platforma Arduino – wyzwanie dla programisty

Dziś napiszę trochę o Arduino, czyli mikrokontrolerach jednopłytkowych, z których można wyczarować najróżniejsze rzeczy, takie jak np. alarmy, mierniki, sterowniki urządzeń przemysłowych, etc. W zasadzie mnogość dodatkowych modułów dedykowanych platformie jest nieograniczona, zaś obszary zastosowań ograniczone są wyłącznie wyobraźnią konstruktora oraz jego… umiejętnościami programistycznymi w języku C. Zapraszam zatem do zapoznania się z najpopularniejszą platformą, dzięki której poznasz podstawy mikrokontrolerów.

Czy pamiętacie czasy, gdy programista dysponował 64kB pamięci RAM w swoim komputerze 8-bitowym? Jeśli dodać do tego pamięć masową typu kaseta magnetofonowa, surowe środowiska programistyczne i języki niskiego poziomu, pewnie przypomni się wam Atari, Commodore lub ZX Spectrum. Pewnie starsi programiści pamiętają te czasy i wspominają je niezbyt miło. Ale chyba przyznacie, że te komputery wymagały od programisty wyjątkowego skupienia się na optymalizacji kodu tak, by w ogóle zmieścił się w niewielkiej pamięci tych maszynek. Obecnie niewielu przejmuje się optymalizacją, bo i kogo to obchodzi? Współczesne komputery mają moc, RAM i dużą powierzchnię dysku. Powoduje to odejście od żmudnego optymalizowania kodu. Ale nie wszędzie, bowiem tego typu podejście bezstresowe stosowałem do czasu, aż rozpocząłem przygodę z mikrokontrolerami, które szybko weryfikują nasze umiejętności programistyczne i często okazuje się, że na nic zdaje się znajomość języków wysokiego poziomu i trzeba używać każdej zmiennej w taki sposób, by drastycznie malejąca pamięć pomieściła program wykonywalny w mikrokontrolerze.

Co to jest Arduino?

Cytując Wikipedię, to platforma programistyczna dla systemów wbudowanych oparta na prostym projekcie Open Hardware przeznaczonym dla mikrokontrolerów montowanych w pojedynczym obwodzie drukowanym, z wbudowaną obsługą układów wejścia/wyjścia oraz dedykowanym językiem programowania.

Moduł Arduino w wersji UNO

Projekt Arduino został zapoczątkowany w 2005 roku we Włoszech, zaś przyświecającym celem jego twórców było zbudowanie urządzenia kontrolującego studenckie projekty interakcyjne jako tańsza alternatywa dla droższych systemów prototypowania. Dzięki temu, z ogólnodostępnych, tanich i niewymagających dużych nakładów finansowych, można tworzyć szybkie projekty elektroniczne.

Płytka Arduino, którą można nabyć już za kilkanaście złotych, zawiera kontroler oraz dolutowane wyjścia pinów mikrokontrolera (cyfrowe i analogowe linie wejścia/wyjścia oraz interfejs UART) oraz gniazdo USB do połączeń z komputerem. Zachwyca także prostota programowania kontrolera – nie jest wymagany programator, wystarczy urządzenie do portu USB, zainstalować darmowe środowisko programistyczne (Mac OS, Linux, Windows), wczytać przykładowy program, których jest mnóstwo i za pomocą jednego przycisku zaprogramować urządzenie. Ogromną zaletą Arduino jest dostępność wielu kompatybilnych modułów, które można po prostu podłączyć, pobrać przykładowy program i cieszyć się szybkim prototypowaniem nawet bardziej skomplikowanych urządzeń. Płytka nie wymaga nawet zasilania, bowiem może być zasilana bezpośrednio z komputera – oczywiście są tu pewnie ograniczenia i czasem wymagany jest zewnętrzny zasilacz.

Układy Arduino bazują na mikrokontrolerach Atmel AVR i mogą występować jako produkty oryginalne, bądź klony, które są zarówno zgodne, jak i dobre. Wszystko dzięki temu, że projekt Arduino jest otwarty i każdy producent może produkować własne płytki, które są w pełni kompatybilne z oryginalnymi. Jedynym ograniczeniem „podróbek” jest to, że nieoryginalne płytki nie mogą być sprzedawane pod nazwą Arduino.

Do płytki Arduino można połączyć: wyświetlacz LCD lub OLED, czytnik RFID, czujniki temperatury, wilgotności, ciśnienia, gazu, dymu, etanolu, czujnik ruchu, moduł ethernet, moduł WiFi, moduł GSM, moduł karty SD, moduł sterownik silnika krokowego i wiele, wiele innych. Nie jestem w stanie wymienić wszystkich dostępnych modułów, gdyż jest ich zwyczajnie zbyt dużo. Projekty oparte na Arduino tworzyć mozna na wiele sposobów: lutując trwale moduły do urządzenia z pomocą przewodów, poprzez wykorzystanie płytki prototypowej, która pozwala na szybkie łączenie i rozłączanie elementów na płytce, co pozwala na poprawianie ewentualnych błędów lub też budując własne arduino.

 

Na rynku spotyka się wiele modeli Arduino: Uno, Nano, Mega, Pro oraz inne, jednakże przy zakupie najlepiej wybierać model, który jest oparty na mikrokontrolerze Atmega 328. Mają one bowiem pewną przewagę na starszymi modułami, z których ogromną zaletą jest większa pamięć RAM, Flash oraz EEPROM.

Mikrokontroler Atmega 328

To po prostu niewielki scalak za kilka złotych, który pełni rolę kontrolera, zatem ma wbudowaną jednostkę CPU (centralny procesor, który wykonuje program), pamięć Flash, pamięć RAM oraz wbudowane układy wejścia/wyjścia.

Typowy mikrokontroler[1]

Ogromną zaletą mikrokontrolerów jest dostępność wielu układów peryferyjnych, które można wykorzystać do komunikacji. Warto także podkreślić, że układy te pozwalają programowo przełączać je jako wejścia lub wyjścia. Mikrokontroler posiada we/wy cyfrowe oraz analogowe, a dzięki temu, można podłączać zarówno sygnały cyfrowe, jak i mierzyć wartości analogowe. Mikrokontroler Atmega328 posiada 8-bitową szynę danych.

Mikrokontrolery występują w różnych obudowach. Poniżej obrazek wyprowadzeń wersji 328P.

Opis wyjść Atmega 328

Opisywany mikrokontroler posiada piny opisane jako digital (cyfrowe) oraz analog (analogowe). W przypadku portów cyfrowych, można wysłać lub odczytać poziom wysoki i niski (0/1) – dzięki temu można na przykład sprawdzić, czy  przycisk został wciśnięty lub czy czujnik drzwi został zwarty. Jednakże czasami tylko 2 stany to za mało. Dlatego też kontroler jest wyposażony w piny analogowe, wyposażone w przetwornik analogowo-cyfrowy (ADC). Można je także wykorzystać jako wyjście/wejście cyfrowe, lecz portów cyfrowych nie można ustawić jako analogowe. Jako że przetworniki ADC są drogie w produkcji, to stosuje się multipleksery, które umożliwiają za pomocą jednego takiego przetwornika pomiar na np. 6 wejściach analogowych. W Atmega328 mamy do dyspozycji ADC o rozdzielczości 10 bitów. Dzięki wejściom analogowym można obsługiwać rozmaite czujniki, jak na przykład akcelerometry czy inne sensory. Wbudowana magistrala szeregowa działająca w sposób synchroniczny (SPI) używa do komunikacji trzech wyprowadzeń: MISO, MOSI, SCK. Interfejs ten charakteryzuje się wysoką prędkością transmisji, zatem można go wykorzystać do obsługi szybkich urządzeń.

 

Reasumując, w przypadku tego kontrolera mamy możliwość podłączenia 14 cyfrowych wejść/wyjść, co umożliwia np. sterowanie diodami LED, przekaźnikami oraz odczytywanie stanów przycisków. Wyjścia typu PWM charakteryzują się modulacją szerokości impulsu, a dzięki temu można sprzętowo generować sygnał o zadanym wypełnieniu, co jest przydatne np. przy sterowania prędkością obrotową za pomocą sterownika silników czy pozycją serwomechanizmów. 6 wejść wbudowanego przetwornika analogowo-cyfrowego o rozdzielczości 10-bitów obsługuje m.in. czujniki z wyjściem analogowym. Dodatkowo urządzenie obsługuje interfejsy: UART, I2C i SPI, a to pozwala na podłączenie wielu urządzeń np. I2C i ich obsługę poprzez adresowanie.

Teraz skupimy się na pamięciach, które spotkamy w kontrolerach. A jest ich trzy rodzaje:

  1. Flash – to pamięć nieulotna, w którym znajduje się napisany program. Pamięć ta jest podtrzymywana po zaniku zasilania. Oczywiście im większa, tym bardziej rozbudowany program można napisać. Rozmiar pamięci to w przypadku Atmega328 – 32kB. Pamięć typu flash może także przechowywać tablice stałych oraz sekcję bootloadera, który umożliwia wgrywanie programów bez użycia programatora. Żywotność pamięci flash jest ograniczona do około 10.000 zapisów.
  2. RAM – to pamięć przeznaczona na program wykonywalny, który po kontroler ładuje z pamięci flash. W przeciwieństwie do pozostałych pamięci nie ma limitu zapisów. Pamięć ta jest zerowana po wyłączeniu zasilania lub wciśnięciu przycisku reset. W kontrolerze jest tej pamięci aż 2kb, jednak nie przejmujcie się – na szczęście tutaj nie ma Windows i sterownikowi wystarcza taki rozmiar pamięci do szybkiego działania.
  3. EEPROM – to pamięć nieulotna, która może przechowywać np. konfigurację urządzenia przez kilkadziesiąt lat. Nie traci zawartości po resecie czy wyłączeniu zasilania. Rozmiar pamięci wynosi zwykle 1kB, zaś jej żywotność wynosi około 10.000 zapisów.

A oto dane techniczne mikrokontrolera Atmega328, który występuje w najnowszych wersjach Arduino:

ATMEL
mikrokontroler AVR
32kx8bit
1024B
2048B
DIP28
20MHz
23
6
2
1
THT
1.8…5.5V
3.86 g

W jakim celu opublikowałem piny układu scalonego? Zrobiłem to świadomie, bowiem nic nie stoi na przeszkodzie, aby zakupić wyłącznie układ scalony Atmega, dokupić kilka części i zbudować z nich własne urządzenie. Poniżej przedstawiam przykładowy schemat urządzenia, które można zbudować samodzielnie. Tyle tylko, że aby wykonać poniższy układ, wymagane jest doświadczenie, czas oraz zewnętrzny programator.

źródło: http://www.hobbytronics.co.uk/arduino-atmega328-hardcore

Na początek warto jednak zakupić gotowe Arduino. W zamian otrzymujemy gotową do działania płytkę, na której znajduje się: gniazdo USB, które umożliwia podłączenie do komputera (programowanie bez zewnętrznego programatora) oraz obustronną wymianę danych, stabilizator napięcia z wyjściem o napięciach 3.3V oraz 5V (moduły dodatkowe działają właśnie na tych napięciach) oraz wygodnie wyprowadzone porty wejścia/wyjścia.

Który model Arduino wybrać?

Odpowiedź jest w mojej opinii prosta. Jeśli zaczynamy naukę, idealny będzie Arduino UNO. Jeśli zaś potrzebujemy więcej portów, wybieramy Arduino MEGA (posiada więcej portów we/wy). W przypadku, gdy mamy opracowany prototyp i nasz układ już działa, lecz potrzebujemy zminiaturyzować urządzenie, warto sięgnąć po Arduino NANO lub Arduino PRO. Przy wyborze należy kierować się ilością pinów (wejść/wyjść) oraz wielkością urządzenia.

A oto specyfikacja poszczególnych modeli Arduino. Opisy oraz zdjęcia pochodzą ze sklepu internetowego Botland, który warto odwiedzić, bowiem sklep ten oferuje naprawdę pokaźną liczbę modułów oraz dodatków dedykowanych Arduino i nie tylko.

Arduino UNO

Moduł od Arduino z mikrokontrolerem AVR ATmega328 w wymiennej obudowie. Posiada 32 kB pamięci Flash, 2 kB RAM, 14 cyfrowych wejść/wyjść z czego 6 można wykorzystać jako kanały PWM, 6 wejść analogowych oraz popularne interfejsy komunikacyjne.

Specyfikacja

  • Napięcie zasilania: od 7 V do 12 V
  • Mikrokontroler: ATmega328
    • Maksymalna częstotliwość zegara: 16 MHz
    • Pamięć SRAM: 2 kB
    • Pamięć Flash: 32 kB (5 kB zarezerwowane dla bootloadera)
    • Pamięć EEPROM: 1 kB
  • Porty I/O: 14
  • Wyjścia PWM: 6
  • Ilość wejść analogowych: 6 (kanały przetwornika A/C o rozdzielczości 10 bitów)
  • Interfejsy szeregowe: UART, SPI, I2C
  • Zewnętrzne przerwania
  • Podłączona dioda LED na pinie 13
  • Gniazdo USB A do programowania
  • Złącze DC 5,5 x 2,1 mm do zasilania
  • W zestawie przezroczyste nóżki samoprzylepne

Arduino MEGA

Popularny moduł z mikrokontrolerem AVR ATmega2560. Posiada 256 kB pamięci Flash, 8 kB RAM, 54 cyfrowych wejść/wyjść z czego 15 można wykorzystać jako kanały PWM, 16 wejść analogowych oraz popularne interfejsy komunikacyjne.

Specyfikacja

  • Napięcie zasilania:7 V do 12 V
  • Mikrokontroler: ATmega 2560
    • Maksymalna częstotliwość zegara: 16 MHz
    • Pamięć SRAM: 8 kB
    • Pamięć Flash: 256 kB (8 kB zarezerwowane dla bootloadera)
    • Pamięć EEPROM: 4 kB
  • Porty I/O: 54
  • Kanały PWM: 15
  • Ilość wejść analogowych: 16 (kanały przetwornika A/C o rozdzielczości 10 bitów)
  • Interfejsy szeregowe: 4xUART, SPI, I2C
  • Zewnętrzne przerwania
  • Podłączona dioda LED do pinu 13
  • Gniazdo USB A do programowania
  • Złącze DC 5,5 x 2,1 mm do zasilania

Oryginalne Arduino MEGA

Arduino NANO

Moduł na bazie Arduino Uno, z mikrokontrolerem AVR Atmega328 charakteryzuje się niewielkim rozmiarem. Posiada 32 kB pamięci Flash, 2 kB RAM, 22 cyfrowe wejścia/wyjścia z czego 6 można wykorzystać jako kanały PWM i 8 jako analogowe wejścia oraz popularne interfejsy komunikacyjne.

Specyfikacja

  • Napięcie zasilania: 6 V do 20 V
  • Mikrokontroler: ATmega328
    • Maksymalna częstotliwość zegara: 16 MHz
    • Pamięć SRAM: 2 kB
    • Pamięć Flash: 32 kB (2 kB zarezerwowane dla bootloadera)
    • Pamięć EEPROM: 1 kB
  • Porty I/O: 22
  • Kanały PWM: 6
  • Ilość wejść analogowych: 8(kanały przetwornika A/C o rozdzielczości 10 bitów)
  • Gniazdo miniUSB do programowania
  • Interfejsy szeregowe: UART, SPI, I2C
  • Zewnętrzne przerwania
  • Wymiary: 45 x 18 mm

Oryginalne Arduino NANO

Arduino PRO MINI

Moduł na bazie Arduino Uno, charakteryzuje się niewielkimi rozmiarami i niskim profilem. Posiada mikrokontroler Atmega328, wyposażony 32 kB pamięci Flash, 2 kB RAM, 14 cyfrowych wejść/wyjść z czego 6 można wykorzystać jako kanały PWM, 8 wejść analogowych oraz popularne interfejsy komunikacyjne.

Specyfikacja

  • Napięcie zasilania: od 3,35 V do 12 V
  • Mikrokontroler: ATmega328
    • Maksymalna częstotliwość zegara: 8 MHz
    • Pamięć SRAM: 2 kB
    • Pamięć Flash: 32 kB (5 kB zarezerwowane dla bootloadera)
    • Pamięć EEPROM: 1 kB
  • Porty I/O: 14
  • Kanały PWM: 6
  • Ilość wejść analogowych: 8
  • Interfejsy szeregowe: UART, SPI, I2C
  • Zewnętrzne przerwania
  • Zabezpieczenie przeciw przepływowi zbyt dużego prądu
  • Moduł wykonany na laminacie o grubości 0,8 mm
  • Masa poniżej 2 g
  • Wymiary: 33 x 18 mm

Oryginalne Arduino PRO

Jak wspomniałem, na początek najlepiej wybrać płytkę Arduino UNO z procesorem Atmega328, bowiem jest ona wystarczająca nie tylko do nauki, ale w zupełności wystarcza do budowania różnego rodzaju urządzeń.

Dodatkowo warto zakupić kilka podstawowych dodatków, które wymienię w tabeli poniżej. Warto podkreślić, że można także zakupić zestaw startowy, w którym znajdzie się komplet: Arduino wraz z różnego rodzaju modułami, czujnikami, płytką stykową oraz przewodami.

Przykładowy zestaw startowy

Przestrzegam jednak przed zakupem drogich zestawów startowych, w których znajdziemy kilkanaście lub kilkadziesiąt czujników, modułów, przewodów, itp. Są po pierwsze zbyt drogie. Jeśli zaś dopiero rozpoczynamy naukę, wystarczy zakupić tańszy zestaw (100-150zł) lub skompletować elementy według listy, którą umieściłem w dalszej części niniejszego artykułu.

Dodatki do Arduino

Moduły rozszerzające mogą występować pod nazwą shield oraz modułów niezależnych. Wersje shield (obrazek poniżej) to płytki, które montuje się  bezpośrednio urządzenie, bowiem posiadają dopasowane piny do konkretnego modelu Arduino. Shieldy są zwykle zgodne z UNO, zaś w przypadku, gdy posiadamy wersję MEGA, należy zwrócić uwagę w opisie, czy płytka (shield) jest zgodna z tym modelem. Oczywiście ze względu na miniaturyzację wersji MEGA, shieldy dedykowane UNO/MEGA nie będą do pasować fizycznie do tego miniaturowego urządzenia.

Płytka shield – montowana bezpośrednio na płytce Arduino

Moduły w formie shieldów są bardzo wygodne, bowiem nie wymagają żadnych połączeń. Co więcej – można je łączyć w stos, a dodatkowo niektóre moduły shield zawierają kilka modułów – np. płytka ethernet shield może zawierać także czytnik kart SD.

Moduły w wersjach uniwersalnych występują w postaci płytek (rysunek poniżej). Są to gotowe do działania moduły kompatybilne ze wszystkimi płytkami Arduino.

Niezależny moduł ethernet

Do podłączenia modułów niezależnych zaś należy wykorzystać przewody połączeniowe (żeńsko-męskie).

Gotowe przewody do Arduino

Jeżeli nie zdecydujecie się na gotowy zestaw do prototypowania Arduino, poniżej przedstawiam listę zakupów, która w mojej opinii jest na początek wystarczająca:

  1. Arduino UNO – klon, cena około 17zł. (https://abc-rc.pl/Arduino-UNO-R3-CH340).
  2. Przewód USB – nie każdy będzie działał, wymagane są przewody, które posiadają piny od pin2 i pin3 (-RD i +RD); Pin1 i Pin4 to VCC i GND.
  3. Komplet przewodów żeńsko-męskich – do szybkiego połączenia modułów z Arduino za 6zł. za 40 sztuk (https://nettigo.pl/products/przewody-f-m-20-cm-40-szt).
  4. Wyświetlacz LCD 2×16 – koniecznie z konwerterem I2C. Wyświetlacz posłuży do wyświetlania np. wynikó pomiarów, 15zł. (https://nettigo.pl/products/wyswietlacz-lcd-2×16-i2c-niebieski).
  5. Czujnik temperatury/wilgotności DHT11 lub DHT22 – w wersji moduł (3 wyjścia), około 12zł (DHT11) lub 22zł (DHT22).
  6. Zegar RTC DS3231 – cena około 8,70zł, aby mieć stały dostęp do aktualnej daty oraz godziny (https://abc-rc.pl/modul-czasu-rtc-ds3231).
  7. Moduł przekaźnika – opcjonalnie, (https://nettigo.pl/products/modul-przekaznika-1-kanal-5v).

Podsumowując zakupy powinny zamknąć się w kwocie około 80-90zł. W tej kwocie jesteśmy w stanie rozpocząć prototypowanie urządzeń opartych o Andruino. Oczywiście można wybrać dowolnie bogaty zestaw startowy, w którym znaleźć można wiele dodatkowych modułów i urządzeń, lecz proponuję, by na początek wybrać wersję zaproponowaną przez mnie.

Jeśli chodzi o środowisko programistyczne, należy przejść na stronę http://arduino.cc i z menu software->download pobrać Arduino IDE. Środowisko jest dostępne dla systemów Mac OS, Linux oraz Windows. Po pobraniu i zainstalowaniu, można podłączyć moduł Arduino za pomocą przewodu USB. Po podłączeniu urządzenia i podpięciu przewodu USB, uruchamiamy Arduino IDE i wybieramy w opcjach:

  1. Narzędzia->płytka->Arduino Uno
  2. Narzędzia->procesor->Atmega328P lub Atmega328 (old bootloader)
  3. Narzędzia->port->nowy port COM*

*W systemie powinien pojawić się dodatkowy port COM. W przypadku Windows można sprawdzić, czy urządzenie jest poprawnie rozpoznane przez system operacyjny w menadżerze urządzeń. Jeśli zdarzy się, że komputer nie potrafi poprawnie rozpoznać urządzenia, należy zainstalować dodatkowy sterownik (https://www.arduined.eu/ch340-windows-8-driver-download/).

Jeśli port został wykryty poprawnie, to oznacza, że można przystąpić do zaprogramowania urządzenia. W tym celu w Arduino IDE wybierz Plik->Przykłady->Basic->Blink. Zostanie wczytany prosty przykład programu (szkic), który będzie cyklicznie migał diodą wbudowaną na płytce. Od nas zaś zależy, z jaką częstotliwością mruganie będzie się odbywać. W tym celu wystarczy jedynie zmodyfikować wartości delay(milisekundy). Aby wgrać program na płytkę, wybierz przycisk Wgraj lub z menu Szkic->wgraj. Po chwili zaczną szybko mrugać diody RX/TX na płytce, co oznacza w tym przypadku programowanie, zaś po wgraniu programu, Arduino zacznie natychmiast realizować wgrany program.

void setup() {
  // ustawienie LED_BUILTIN jako portu wyjścia.
  pinMode(LED_BUILTIN, OUTPUT);
}
 
// główna, nieskończona pętla programu.
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // stan wysoki na porcie - załącz diodę LED
  delay(1000);                       // czekaj 1000ms czyli 1sekundę
  digitalWrite(LED_BUILTIN, LOW);    // stan nisku na porcie - wyłącz diodę
  delay(1000);                       // czekaj 1000ms czyli 1sekundę
}

Dokonajmy teraz drobnej przeróbki naszego programu. Sprawimy, że będziemy mogli podglądać co w danym momencie robi program. Nie mamy jeszcze podpiętego wyświetlacza ani dostępu do monitora, zatem wyświetlimy informacje poprzez port szeregowy. Zmodyfikuj program jak na listingu poniżej.

void setup() {
  // ustawienie LED_BUILTIN jako portu wyjścia.
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600); // Ustaw szybkość portu
}
 
// główna, nieskończona pętla programu.
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   
  Serial.println("dioda włączona");
  delay(1000);                       // czekaj 1000ms czyli 1 sekundę
  digitalWrite(LED_BUILTIN, LOW);    // stan nisku na porcie - wyłącz diodę
  Serial.println("dioda wyłączona");
  delay(1000);                       // czekaj 1000ms czyli 1 sekundę
}

Teraz wgraj program do Arduino i włącz monitor portu szeregowego (narzędzia->monitor portu szeregowego lub przycisk na pasku narzędzi po prawej stronie). Obserwuj, jak program wysyła komunikaty. Warto dodać, że te komunikaty można także odbierać z programów pisanych w C# czy Delphi. Komunikaty działają w obie strony, zatem można wykorzystać komputer także do sterowania mikrokontrolerem.

 

Ten proste przykłady ukazują prostotę programowania Arduino. Jest to język zbliżony do C, dysponujący własnymi bibliotekami, co pozwala na szybkie opanowanie programowania. I takie właśnie było jedno z założeń twórców środowiska. Warto podkreślić, że każdy program (nazywany szkicem) składa się z funkcji setup(), która uruchamia się tylko przy starcie systemu oraz zapętlonej funkcji loop(), która nigdy się nie kończy. Na początku programu można dołączać pliki nagłówkowe oraz definiować zmienne globalne. Oczywiście mamy też możliwość tworzenia własnych funkcji oraz bardzo bogaty zestaw bibliotek i przykładów dla każdego dostępnego urządzenia na platformę Arduino. W dalszej części opiszę, jak wykorzystać zakupione moduły.

Leszek Klich

Bibliografia

[1] https://forbot.pl/blog/mikrokontroler-wszystko-co-powinniscie-wiedziec-o-jego-dzialaniu-id1314

1430total visits,93visits today

Tagi .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

6 + 2 =

This site uses Akismet to reduce spam. Learn how your comment data is processed.