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).
![](https://www.arduino.cc/en/uploads/Tutorial/pwm.gif)
Takich możliwych przypadków jest 256 (0 - 255), czyli rozdzielczość naszego wyjścia to 8 bit.
Brak komentarzy:
Prześlij komentarz