poniedziałek, 24 kwietnia 2017

Arduino czas zacząć cz.1

Na ostatnich zajęciach chłopcy rozpoczęli swoją przygodę z Arduino, czyli... Właśnie, może na początek parę słów wyjaśnienia, czym owo tajemnicze Arduino jest. Otóż Arduino to tak naprawdę nic innego jak bardzo mały komputer, który można wykorzystać w różnych projektach, urządzeniach które komunikują się z otoczeniem, sterują urządzeniami itd...

Wprowadzenie

Sercem tego komputera jest mikrokontroler Atmega328, który różni się od procesora w przeciętnym laptopie tym, że zawiera w sobie wiele dodatkowych elementów: pamięć, układy do komunikacji z otoczeniem itd. Wszystko w jednym scalaku. Oczywiście moc obliczeniowa jest o wiele mniejsza, ale wystarczy do naszych zastosowań. Aby zaprogramować mikroktroler, z reguły potrzebna była specjalistyczna wiedza, sprzęt - wszystko to utrudniało zaczęcie zabawy z tego typu układami.
Z Arduino jest łatwo, zresztą takie było zamierzenie twórców - wystarczy przewód USB, znajomość programowania i nieskomplikowany edytor kodu, by w zasadzie jednym kliknięciem wgrać program do układu. Chętnych odsyłam do strony projektu (w języku angielskim).

Komunikacja 

Jak już wspomniałem, Arduino komunikuje się z otoczeniem. By to było możliwe, potrzebny jest jakiś kanał do komunikacji. W przypadku tego układu mamy do czynienia z tzw. wejściami i wyjściami:
  • wejścia / wyjścia cyfrowe D1 - D13
  • wejścia analogowe A0 - A7
Czym się różni wejście od wyjścia? Z wejść mikrokontroler odczytuje wartości, a na wyjścia zapisuje. I teraz należy zapamiętać:
  • wejścia / wyjścia cyfrowe mają dwa stany - włączony i wyłączony, 1 i 0, jest napięcie - nie ma napięcia
  • wejścia analogowe pozwalają tak naprawdę na zmierzenie wartości napięcia (0-5V) na danym wejściu i przekształcenie tej wartości na pewną liczbę 

Wejście analogowe

Zrozumienie jak działa wejście analogowe nie jest trudne. Wyobraźmy sobie że mierzymy napięcie w zakresie od 0 do 5V.  Mikrokontroler nie będzie operować np wartością 2.4V, byłoby to niewygodne (mówiąc najogólniej). Zamiast tego sygnał z wejścia trafia na specjalny układ zamieniający sygnał analogowy na cyfrowy (przetwornik A/C). Zobaczmy na wykresie:
Załóżmy, że układ przetwornika może zmierzyć napięcie i zamienić je na liczby od 0 do 7 (dwójkowo na 3 bitach można zapisać właśnie takie liczby). Jeśli teraz na wejściu pojawi się napięcie 2.4 V układ przekaże dalej do mikrokontrolera liczbę 5 (011), zaś 4,9 dałoby wartość 7 (111). 

Wyjście analogowe (udawane)
Arduino nie posiada wyjść analogowych. Nie da się powiedzieć "ustaw na wyjściu X napięcie odpowiadające liczbie 7". Mikrokontroler nie posiada przetwornika cyfrowo-analogowego (C/A). Ale... Skoro jest tu taka sekcja, znaczy się sprawa nie jest beznadziejna. Arduino może nieco oszukać, a wykorzystuje do tego PWM  - sterowanie szerokością impulsu. Na niektórych wyjściach cyfrowych mikrokontroler może generować falę prostokątną (szybko włączać i wyłączać wyjście), z częstotliwością kilkuset Hz. Jeśli popatrzymy na drugi przypadek, sygnał wysoki (5V) pojawia się przez 25% czasu cyklu, kolejne 75% pozostaje w stanie niskim (0V). Gdybyśmy podłączyli miernik to pokazałby napięcie ok 1.25 V (1/4 z 5V).

Takich możliwych przypadków jest 256 (0 - 255), czyli rozdzielczość naszego wyjścia to 8 bit.

Brak komentarzy:

Prześlij komentarz