- Wymagane materiały:
- Moduł wyświetlacza graficznego Nokia 5110:
- Schemat obwodu:
- Program i działanie Arduino:
Już sama nazwa „ Nokia 5110 ” powinna była kupić za wspomnienia solidnego telefonu komórkowego Nokia, który był bardzo popularny w latach 90-tych. Model 5110 był wyposażony w wyświetlacz graficzny, który był wystarczający, aby działać jako ekran wyświetlacza telefonu komórkowego. Ten ekran był w stanie wyświetlić wszystko, od znaków alfanumerycznych po małe grafiki, czyli wszystko, co jest wymagane w telefonie komórkowym. Gdy ziemia się kręciła, pojawiały się nowe technologie z błyszczącymi ekranami dotykowymi, a ten wyświetlacz nie jest już używany. Ale miejmy nadzieję, że mogą być używane w aplikacjach elektronicznych, w których trzeba wyświetlać małą grafikę i unikać wydawania pieniędzy na duże ekrany LCD. W tym samouczku nauczymy się, jak połączyć graficzny wyświetlacz LCD Nokia 5110 z Arduino i jak go uruchomić.
Te LCD mają czarno-białe piksele o wymiarach 84 × 48. Mogą wyglądać monotonnie, ale nadal mogą być używane do wyświetlania przyzwoitej grafiki dla twoich projektów i mogą być łatwo używane z mikrokontrolerami, takimi jak Arduino. Więc zacznijmy….!
Wymagane materiały:
- Płytka Arduino (dowolna wersja)
- Wyświetlacz Nokia 5110
- Przewody łączące
Moduł wyświetlacza graficznego Nokia 5110:
Na rynku dostępne są dwa rodzaje graficznych wyświetlaczy LCD. Jedna z polami lutowniczymi zarówno nad, jak i pod wyświetlaczem, a druga z polami lutowniczymi tylko na dole wyświetlacza. Ten, którego używamy, należy do typu 2, gdzie pady znajdują się tylko pod wyświetlaczem. Oba moduły działają tak samo, dlatego połączenia są takie same dla obu. Więc niezależnie od tego, jaki to moduł, możesz skorzystać z samouczka.
Jak wspomniano wcześniej, graficzny wyświetlacz LCD Nokia 5110 ma 84 piksele w poziomie i 48 pikseli w pionie. Całkowity rozmiar wyświetlacza to 1,72 'x 1,72'. Moduł posiada 6 pinów wejściowych za pomocą których możemy podłączyć go do dowolnego mikrokontrolera poprzez komunikację SPI. Interfejsem IC, który komunikuje się między wyświetlaczem a Arduino, jest układ scalony kontrolera wyświetlacza Philips PCD8544, którego arkusz danych można znaleźć tutaj. Jeśli jednak używasz Arduino do komunikacji z tym układem scalonym, nie musimy martwić się o arkusz danych, ponieważ istnieją biblioteki, które są gotowe do pobrania i użycia. Moduł, którego tutaj używamy, pokazano poniżej.
Schemat obwodu:
Pełny schemat podłączenia graficznego wyświetlacza LCD Nokia5110 z Arduino znajduje się poniżej.
Moduł wyświetlacza posiada 8 pinów, które służą do nawiązania komunikacji SPI z Arduino. Moduł zasilany jest z pinu 3,3V płytki Arduino. Zwróć uwagę, że te moduły działają na logice 3,3 V, a zatem nie dostarczają 5 V do styku Vcc wyświetlaczy. Podłączyłem pin wyświetlacza bezpośrednio do Arduino, mimo że wyświetlacz LCD działa na logice 3,3 V, a Arduino na logice 5 V, ponieważ dopiero wtedy stwierdziłem, że LCD działa poprawnie. Możesz użyć dzielnika napięcia do konwersji 5V na 3,3V w razie potrzeby, ale dla mnie działa tylko bez konwersji logiki. Połączenia są dość proste i łatwe do wykonania. Gdy skończysz z połączeniami, Twoja konfiguracja będzie wyglądać mniej więcej tak, jak pokazano poniżej.
Program i działanie Arduino:
Wykonaj poniższe czynności, aby zaprogramować Arduino do obsługi wyświetlacza Nokia 5110. W tych krokach założono, że masz już zainstalowane środowisko Arduino IDE i wiesz, jak go używać.
Krok 1: Otwórz Arduino IDE na swoim komputerze i wybierz odpowiednią płytkę z menu narzędzi po podłączeniu Arduino do komputera.
Krok 2: Kliknij tutaj, aby pobrać bibliotekę Nokia 5110 Display Library firmy Adafruit z repozytorium GitHub.
Krok 3: Po pobraniu pliku Zip wybierz Szkic -> Dołącz bibliotekę -> Dodaj bibliotekę.ZIP i przejdź do lokalizacji, w której pobrano plik ZIP.
Uwaga: Będziesz także musiał pobrać rdzeń Adafruit GFX Graphics, który wykonuje wszystkie okręgi, tekst, prostokąty itp. Możesz go pobrać z https://github.com/adafruit/Adafruit-GFX-Library i zainstalować go w ten sam sposób.
Krok 4: Teraz otwórz przykładowy program, wybierając Plik -> Przykłady -> Biblioteka Adafruit PCD Nokia 5110 LCD -> pcdtest i kliknij przycisk przesyłania
Krok 5: Po załadowaniu programu naciśnij przycisk resetowania na Arduino i powinieneś zobaczyć przykładowy program wyświetlający wszystkie animacje, jak pokazano na filmie podanym na końcu tego samouczka.
Możesz przeczytać przykładowy program, aby zrozumieć różne wbudowane funkcje, które można wykorzystać do wykonywania różnych projektów graficznych na wyświetlaczu LCD. Ale pójdźmy o krok dalej i spróbujmy wyświetlić logo CircuitDigest na ekranie LCD.
Teraz otwórz wymagany obraz w programie Paint i zmień rozmiar obrazu. Maksymalny rozmiar obrazu, jakiego możemy użyć do naszego wyświetlacza to 84 × 48.
Po zmianie rozmiaru obrazu zapisz go jako bitmapę (czarno-białą), używając opcji Zapisz jako w programie Paint. Aby wyświetlić obraz jako bitmapę na naszym ekranie LCD, będziemy potrzebować oprogramowania, które może przekształcić obraz bitmapowy w kod. Możesz pobrać oprogramowanie, klikając tutaj. Po pobraniu rozpakuj plik i kliknij „BitmapEncoder”, aby uruchomić aplikację. Otwórz obraz bitmapowy, który właśnie zapisaliśmy za pomocą tego oprogramowania, aby uzyskać tablicę zakodowanych wartości. Możesz bezpośrednio skopiować te wartości i wkleić je do swojej tablicy Arduino. Wartość pokazana przez oprogramowanie dla naszego logo jest pokazana poniżej
Jak widać tablica zaczyna się od wartości 48, 48 to jest rozmiar naszego obrazu. Nie powinniśmy dodawać tego do naszej tablicy. Dlatego usuń pierwsze dwie wartości, a resztę użyj jako wartości tablicy w programie. Tablica będzie wyglądać jak poniżej. Kompletny program jest podany na końcu tej strony w celach informacyjnych.
static const unsigned char Logo PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00001100, B001100, B001100, B001100, B001100, B001100, B001100, B001100 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B0000111, B11110001, B11000, B11000, B110011000, B110011000, B11001100, B11000, B110011 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B110011, B110011, B110011, B110011, B110011, B110011 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B000011001100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B01111111, B11111111, B11110000, B00001111, B11100000, B11111111, B11111111, B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B00000000, B00000000, B00000001, B11111111, B10000111, B11011000, B00111111, B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B11111111, B11111111, B11000000, B00000000, B00000000, B00000000, B11111111, B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Teraz, aby wyświetlić tę mapę bitową, musimy użyć następujących wierszy kodu. Gdzie poprzednie dane na ekranie są usuwane i zapisywany jest nowy obraz bitmapowy.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
The line display.drawBitmap (20, 0, Logo, 48, 48, 1); wyświetlić pozycję, rozmiar i kolor obrazu bitmapowego. Składnię można podać jako.
display.drawBitmap (X_Position, Y_Position, nazwa tablicy, długość obrazu, szerokość obrazu);
Długość i szerokość obrazu można uzyskać odpowiednio z pierwszych dwóch elementów tablicy, jak powiedziano wcześniej. Po uruchomieniu tego kodu otrzymamy mapę bitową wyświetlaną na naszym ekranie LCD, jak pokazano poniżej.
Możesz także wyświetlić prosty tekst, jak pokazano poniżej:
Mam nadzieję, że zrozumiałeś samouczek i połączyłeś telefon Nokia 5110 LCD z Arduino. Dzięki temu graficznemu wyświetlaczowi w rękawie możesz tworzyć wiele projektów, które wymagają drobnych szczegółów graficznych. Całość pracy można znaleźć na poniższym filmie. Jeśli napotkasz jakiś problem z uruchomieniem tego, możesz użyć forum, aby opublikować swój problem lub sekcje komentarzy poniżej.