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.