Klawiatura telefoniczna
Jest to prosta klawiatura od aparatu telefonicznego. Jest ona
zorganizaowan jako macierz 3 na 4, tzn. mamy 3 linie "poziome"
i 4 "pionowe", naciśnięcie klawisza łączy jedną z linii poziomych
z jedną z linii pionowych. Podając napięcie na jedną z linii
poziomych (a pozostałe traktując jako wejścia) i testując
stan linii pionowych można wykryć który klawisz jest naciśnięty
(zakładamy że co najwyżej jeden na raz). Ćwiczenie polega
na wypróbowaniu klawiatury.
Uwaga: Mamy też klawiatury w układzie 4x4, ze złączem płaskim
mającym 8 kontaktów. Z lewej strony złącza są 4 linie poziome,
z prawej 4 linie pionowe.
Wyświetlacz Nokia 5110
Jest to tani wyświetlacz graficzny, o rozmiarach 48 na 84 punkty,
monochromatyczny, sterowany przez SPI. Prosty program
przykładowy nokia_lcd.ino.
Dokumentacja układu sterującego wyświetlaczem
Uwaga: Linie wyświetlacza odpowiadają liniom układu.
Wyświetlacz 1602
Jest to tani wyświetlacz tekstowy, może wyświetlić dwie linie
po 16 znaków. Jest obsługiwany przez bibliotekę LiquidCrystal.
Dokumentacja wyświetlacza
Uwaga: Oryginalna biblioteka z Arduino konfiguruje nóżki
z konstruktora. Ale procesor w Stelaris Launchpad wymaga
aby najpierw przeprowadzić ogólną konfigurocję systemu,
co jest robione w 'main'. Dlatego oryginalna bibliteka nie
działa i potrzebna jest zmodyfikowana wersja (w środowisku
Energia w pracowniach jest wersja zmodyfikowana).
Uwaga: Wyświetlacz jest dość powolny. Biblioteka LiquidCrystal
zawiera opóźnienia tak by wyświetlacz zdążył wykonać polecenia
procesora, ale mogą być potrzebne dodatkowe opóźnienia
Uwaga: Wyświetlacz jest zasilany napięciem 5V, ale powinien
działać gdy na wejściach logicznych są sygnały 3.3V.
Serwomechanizm
Modelarze często używają
małe
serwomechanizmy, tzn. silniczki sprzężone z potencjometrem do
pomiaru położenia i z układem sterowania. Ogólnie serwomechanizmy
stosują różne sposoby sterowania, lecz w modelarstwie przyjęło się
sterowanie "na wypełnienie", tzn. co około 20ms do serwomechanizmu
wysyła się impuls którego długość (między 0.5ms i 2.4ms) decyduje
o położeniu serwomechanizmu.
Do obsługi takich serwomechanizmów środowiska Arduino i Energia
zawierają biblitekę Servo. Ćwiczenie polega na wypróbowaniu
serwomechanizmu.
Uwaga: Serwomechanizm wymaga zasilania napięciem 5V. Serwomechanizm
ma trzy przewody, brązowy to masa, czerwony zasilanie zaś żółty
to sygnał sterujący.
Karta SD
Gdy potrzeba przechowywać większą ilość informacji wbudowana
pamięć mikrosterownika może być zbyt mała. W takiej sytuacji
można podłączyć zewnętrzną pamięć. Dzięki dużej pojemności
i niskiej cenie atrakcyjne jest użycie kart SD (Secure Digital).
Karty SD normalnie używają swój własny protokół do komunikacji
z czytnikiem, ale większość pozwala też na komunikację po SPI.
Mamy proste moduły w których jest gniazdko, stabilizator napięcia
(potrzebny gdy chcemy zasilać kartę napięciem 5V) i kilka
elementów pasywnych (kondensatorów i oporników) poprawiających
współpracę karty z procesorem. Sygnały ze złącza modułu
łączymy z odpowiednimi liniami SPI. Zasilanie podłączamy
albo do linii 3.3V modułu (gdy chcemy zasilać moduł ze
źródła 3.3V) albo do linii 5V (gdy chcemy moduł zasilać
napięciem 5V).
Do obsługi karty można użyć bibliotekę SD. W sieci są dostępne
też inne biblioteki. Ćwiczenie polega na wypróbowaniu karty.
Uwaga: Sama karta jest zasilana napięciem 3.3V i używa sygnałów
3.3V. Moduł zawiera stabilizator obniżający napięcie zasilania z
5V do 3.3V ale nie wpływa na napięcie podawane przez procesor
na linie sygnałowe. Karty mogą oferować możliwość pracy przy innym
napięciu (czy wręcz to preferować), ale zakres 2.7V do 3.6V
jest wspierany przez wszystkie standartowe karty. Próba
zasilania czy komunikacji z kartą używająć niewłaściwego
napięcia może uszkodzić kartę. Dlatego naszych modułów
nie należy bezpośrednio używać z Arduino (potrzebny byłby
dodatkowy układ do dopasowania poziomów napięć).
Uwaga: Dane na karcie zapisywane są sektorami po 512 bajtów.
Biblioteka SD używa bufora do pamiętania sektora i dlatego
wymaga więcej niż 512 bajtów pamięci RAM (do bufora dochodzi
też trochę zmiennych). Ponieważ MSP430G2553 ma tylko 512
bajtów RAM, to bibliteka SD nie będzie na nim działać.
Zegar czasu rzeczywistego DS1307
Czesto mikrosterowniki zawierają układ który po podłączeniu
zewnętrzego resonatora kwarcowego (takiego jak w zegarkach)
pełni funkcję zegara czasu rzeczywistego. Jednakże niekiedy
używa się zewnętrzny zegar czasu rzeczywistego. Jednym
z układów tego typu jest DS1307 który dzięki bateryjce
chodzi również wtedy gdy procesor odłączymy od zasilania.
Procesor z DS1307 komunikuje się przy pomocy I2C. Przykład
użycia daje biblioteka RTClib (niestety, specyficzna dla Arduino).
Ćwiczenie polega na wypróbowaniu zegara.