- Wymagane materiały:
- Krótkie wprowadzenie do wyświetlacza LCD 16 × 2 z matrycą punktową:
- Schemat obwodu i połączenie:
- Programowanie MSP430 dla LCD przy użyciu Energia:
- LCD 16x2 z MSP430G2:
To trzeci samouczek z serii samouczków, w których uczymy się programować MSP430G2 LaunchPad za pomocą Energia IDE. W naszym poprzednim samouczku nauczyliśmy się, jak sterować pinami wejścia i wyjścia cyfrowego na naszej płycie MSP. W tym samouczku nauczymy się, jak połączyć wyświetlacz LCD z płytką, aby wyświetlić przydatne informacje.
Wyświetlacz LCD, którego używamy w tym projekcie, jest najczęściej używanym wyświetlaczem LCD 16 × 2 Dot matrix akan Alphanumeric Displays. Większość z nas zetknęłaby się z tym poprzez publiczne PCO lub inne projekty elektroniczne. Wyświetlacz taki jak ten przyda się w naszych przyszłych samouczkach do wyświetlania danych i innych informacji dotyczących debugowania. Połączenie tego wyświetlacza LCD z MSP430 jest bardzo łatwe dzięki dostępnej bibliotece. Więc zanurzmy się !!
Wymagane materiały:
- MSP430G2 LaunchPad firmy Texas Instruments
- Wyświetlacz LCD z matrycą punktową 16 × 2
- Przewody łączące
- Energia IDE
Krótkie wprowadzenie do wyświetlacza LCD 16 × 2 z matrycą punktową:
Jak powiedziano wcześniej, Energia IDE zapewnia piękną bibliotekę, która sprawia, że interfejs jest bułką z masłem, dlatego nie jest obowiązkowa wiedza o module wyświetlacza. Ale czy nie byłoby interesujące pokazać, czego używamy!
Nazwa 16 × 2 oznacza, że wyświetlacz ma 16 kolumn i 2 rzędy, które razem (16 * 2) tworzą 32 pola. Jedno pudełko wyglądałoby mniej więcej tak na poniższym obrazku
Pojedyncze pudełko ma 40 pikseli (punktów) z porządkiem matrycy 5 wierszy i 8 kolumn, te 40 pikseli razem tworzy jeden znak. Podobnie, 32 znaki można wyświetlić we wszystkich polach. Teraz spójrzmy na pinouty.
Wyświetlacz LCD ma łącznie 16 pinów, jak pokazano powyżej, można je podzielić na cztery grupy, jak poniżej
Piny źródłowe (1, 2 i 3): Te styki zapewniają moc i poziom kontrastu wyświetlacza
Piny sterujące (4, 5 i 6): Te szpilki ustawiają / sterują rejestrami w IC interfejsu LCD (więcej można znaleźć w linku poniżej)
Piny danych / poleceń (7 do 14): Te szpilki dostarczają danych, jakie informacje powinny być wyświetlane na wyświetlaczu LCD.
Piny LED (15 i 16): Te szpilki służą do podświetlenia podświetlenia LCD w razie potrzeby (opcjonalnie).
Ze wszystkich tych 16 pinów tylko 10 pinów jest obowiązkowych do prawidłowego działania wyświetlacza LCD, jeśli chcesz dowiedzieć się więcej o tych wyświetlaczach LCD. Przejdź do tego artykułu LCD.
Schemat obwodu i połączenie:
Pełny schemat obwodu do połączenia wyświetlacza LCD z matrycą punktową 16 × 2 z MSP430G2 przedstawiono poniżej.
Jednym z głównych ograniczeń podczas łączenia tych dwóch jest ich napięcie robocze. Wyświetlacz LCD ma napięcie robocze + 5V natomiast MSP pracuje tylko 3.6V. Na szczęście dla nas pin danych interfejsu LCD IC (HD44780U) ma szerokie napięcie robocze od 2,7 V do 5,5 V. Musimy więc martwić się tylko o Vdd (pin 2) LCD, podczas gdy piny danych mogą pracować nawet z 3.6V.
Płyta MSP430G2 domyślnie nie daje pinu + 5V, ale możemy zrobić mały hack, aby uzyskać + 5V z MSP430 za pomocą portu USB. Jeśli przyjrzysz się bliżej portowi USB, znajdziesz terminal o nazwie TP1, ten terminal da nam + 5v. Wszystko, co musimy zrobić, to przylutować małą męską szpilkę, jak pokazano poniżej, abyśmy mogli podłączyć ją do naszego wyświetlacza LCD.
Uwaga: Nie podłączaj obciążeń, które mogą zużywać więcej niż 50 mA do tego 5 V pin, ponieważ może to spowodować uszkodzenie portu USB.
Jeśli nie jesteś zainteresowany lutowaniem, po prostu użyj dowolnego regulowanego zasilacza + 5V i zasil LCD, w takim przypadku upewnij się, że podłączyłeś masę swojego zasilacza do masy płyty MSP.
Gdy skończysz z pinem + 5 V, łącząc pozostałe piny, jest całkiem proste. Teraz, gdy nasz sprzęt jest gotowy, przejdźmy do części oprogramowania.
Programowanie MSP430 dla LCD przy użyciu Energia:
Kompletny program do łączenia się MSP430G2553 z wyświetlaczem LCD jest podany na końcu tej strony. Kod można kompilować, przesyłać i wykorzystywać jako taki. W kolejnych akapitach wyjaśnię, jak działa program.
Zanim przejdziemy do wyjaśnienia, musimy zanotować używane przez nas szpilki. Jeśli spojrzysz na schemat obwodu powyżej i schemat styków MSP430 poniżej
Możesz wywnioskować, że podłączyliśmy LCD zgodnie z poniższą tabelą
Nazwa pinu wyświetlacza LCD |
Połączony z |
Vss |
Ziemia |
Vdd |
+ 5V pin USB |
Rs |
Pin 2 MSP |
R / W |
Ziemia |
Włączyć |
Pin 3 MSP |
D4 |
Pin 4 MSP |
D5 |
Pin 5 MSP |
D6 |
Pin 6 MSP |
D7 |
Pin 7 MSP |
Mając to na uwadze, zacznijmy definiować wyprowadzenia LCD używane w naszym programie. Nazwiemy każdy pin bardziej zrozumiałą nazwą, abyśmy mogli później łatwo z niego skorzystać.
# zdefiniować RS 2 # zdefiniować EN 3 # zdefiniować D4 4 # zdefiniować D5 5 # zdefiniować D6 6 # zdefiniować D7 7
Oznacza to po prostu, że zamiast nazywać pin 2 mogę dalej nazywać go RS, podobnie dla wszystkich 6 pinów.
Następnym krokiem byłoby dołączenie biblioteki LCD. Ta biblioteka została zainstalowana automatycznie podczas instalacji IDE Energia. Po prostu dodaj go, korzystając z następującego wiersza
#zawierać
Następnym krokiem jest wspomnienie pinów, do których podłączony jest wyświetlacz LCD, ponieważ już nazwaliśmy go za pomocą #define , możemy teraz po prostu wymienić nazwy pinów LCD. Upewnij się, że przestrzegana jest ta sama kolejność.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Teraz przejdźmy do void setup () funkcji. Jest tak wiele typów wyświetlaczy LCD różniących się rozmiarem i charakterem, ten, którego używamy, to 16 * 2, więc określmy to w naszym programie
lcd.begin (16, 2);
Aby wydrukować coś na wyświetlaczu LCD, musimy wspomnieć o dwóch rzeczach w programie. Jedna to pozycja tekstu, o której można wspomnieć za pomocą linii lcd.setCursor (), a druga to treść do wydrukowania, o której można wspomnieć za pomocą lcd.print (). W tym wierszu są ustawienie kursora 1 st rzędu i 1 ul kolumny.
lcd.setCursor (0,0);
Podobnie możemy
lcd.setCursor (0, 1); // ustaw kursor na pierwszą kolumnę, drugi wiersz
Podobnie jak wymazywanie tablicy po napisaniu na niej, wyświetlacz LCD również powinien zostać wymazany, gdy coś na nim zostanie napisane. Można to zrobić za pomocą poniższej linii
lcd.clear ();
Tak więc pełna void setup () funkcja będzie wyglądać następująco.
void setup () {lcd.begin (16, 2); // Używamy wyświetlacza LCD 16 * 2 lcd.setCursor (0,0); // Umieść kursor w pierwszym wierszu, pierwszej kolumnie lcd.print ("MSP430G2553"); // Wyświetl wiadomość wprowadzającą lcd.setCursor (0, 1); // ustaw kursor na pierwszą kolumnę, drugi wiersz lcd.print ("- CircuitDigest"); // Wyświetl opóźnienie komunikatu intro (2000); // Poczekaj, aż wyświetlacz pokaże informacje lcd.clear (); // Następnie wyczyść to}
Następnie, wewnątrz naszej funkcji void loop () , zwiększajmy liczbę co 500 ms i wyświetlajmy ją na wyświetlaczu LCD. Ta liczba jest testowana i jest inicjowana na 1, jak pokazano poniżej
int test = 1;
Aby utworzyć opóźnienie, możemy użyć wbudowanej funkcji delay (). Musimy wspomnieć, jak długo potrzebujemy opóźnienia. W naszym przypadku użyłem 500 ms, jak pokazano poniżej
opóźnienie (500);
Zwiększanie zmiennej można wykonać za pomocą testu ++, reszta jest już wyjaśniona. Pełny kod wewnątrz pustych pętli przedstawiono poniżej
void loop () {lcd.print ("LCD z MSP"); // Wyświetl wiadomość wprowadzającą lcd.setCursor (0, 1); // ustaw kursor na kolumnę 0, wiersz 1 lcd.print (test); // Wyświetl opóźnienie komunikatu wstępnego (500); lcd.clear (); // Następnie wyczyść test ++; }
LCD 16x2 z MSP430G2:
Gdy twój sprzęt i kod będą gotowe, po prostu podłącz swoją płytę główną do komputera i prześlij kod, tak jak zrobiliśmy to w pierwszym samouczku. Po załadowaniu kodu powinieneś zobaczyć ekran pokazujący następujące.
Po dwóch sekundach ekran wyświetlacza zmieni się z konfiguracji na pętlę i rozpocznie zwiększanie wartości zmiennej i wyświetli na ekranie, jak pokazano na poniższym obrazku.
Całość pracy można znaleźć na poniższym filmie. Śmiało, spróbuj zmienić to, co jest wyświetlane na wyświetlaczu LCD i baw się tym. Mam nadzieję, że zrozumiałeś samouczek i nauczyłeś się z niego czegoś przydatnego. Jeśli masz jakiekolwiek wątpliwości, zostaw je w sekcji komentarzy poniżej lub skorzystaj z forów. Spotkajmy się w innym tutorialu.