Serwisy partnerskie:
Close icon
Serwisy partnerskie

Kurs Arduino odcinek 23 - przygotowanie bitmap do wyświetlania

W poprzednim odcinku przygotowaliśmy „ręcznie” obrazek do wyświetlenia, niestety, po wgraniu programu do Arduino ekran wyglądał jak na fotografii 8. Aby wyjaśnić problem, musimy zajrzeć do biblioteki GFX, a konkretnie do pliku Adafruit_GFX.cpp.
Article Image
1. Kurs Arduino: wprowadzenie 2. Kurs Arduino odcinek 1 - co to jest i jak zacząć? (sprzęt, schematy, programowanie) 3. Kurs Arduino odcinek 2 - termometry: 'diodowy', pokojowy oraz 'scalony' analogowy 4. Kurs Arduino odcinek 3 - moduł wyświetlacza LCD (HD44780) 5. Kurs Arduino odcinek 4 - czujnik BME280 (pomiar ciśnienia, wilgotności i temperatury) 6. Kurs Arduino odcinek 5 - biblioteki do trzyfunkcyjnego czujnika BME280 7. Kurs Arduino odcinek 6 - wykorzystanie łącza I2C (TWI) 8. Kurs Arduino odcinek 7 - wykorzystanie łącza SPI (karty pamięci, MAX31865, MAX31855) 9. Kurs Arduino odcinek 8 - wykorzystanie czujnika dwutlenku węgla (MH-Z19) 10. Kurs Arduino odcinek 9 - wykorzystanie modułów do odmierzania czasu 11. Kurs Arduino odcinek 10 - wykorzystanie czujników temperatury (DS18B20) 12. Kurs Arduino odcinek 11 - budowa loggera (rejestratora danych) 13. Kurs Arduino odcinek 12 - rejestracja i prezentacja danych oraz obsługa karty SD 14. Kurs Arduino odcinek 13 - rejestracja danych (wykorzystanie modułu OpenLog) 15. Kurs Arduino odcinek 14 - czym zastąpić płytkę Arduino Uno? 16. Kurs Arduino odcinek 15 - budowa rejestratora (chiński klon Arduino Pro Mini) 17. Kurs Arduino odcinek 16 - problemy z kwadratowym modułem Strong 18. Kurs Arduino odcinek 17 - czujniki do pomiaru wilgotności gleby (instalacja, konfiguracja) 19. Kurs Arduino odcinek 18 - protokół MODBUS i łącze RS-485 20. Kurs Arduino odcinek 19 - wyświetlacze od podstaw (matrycowe, 7-segmentowe, MAX7219) 21. Kurs Arduino odcinek 20a - wyświetlacze matrycowe i biblioteki MD_MAX 22. Kurs Arduino odcinek 20b - przyciski i biblioteki do obsługi wyświetlaczy 23. Kurs Arduino odcinek 20c - biblioteki do obsługi wyświetlaczy graficznych 24. Kurs Arduino odcinek 21 - moduł wyświetlacza OLED 25. Kurs Arduino odcinek 22 - moduł wyświetlacza 1,3 cala 26. Kurs Arduino odcinek 23 - przygotowanie bitmap do wyświetlania 27. Kurs Arduino odcinek 24 - omówienie fontu podstawowego (Adafruit GFX) 28. Kurs Arduino odcinek 25 - font podstawowy biblioteki Adafruit GFX 29. Kurs Arduino odcinek 26 - wykorzystanie bitmapowych fontów GFX 30. Kurs Arduino odcinek 27 - polskie znaki w glcdfont.c 31. Kurs Arduino odcinek 28 - zmiana ulepszonych fontów GFX
Rozwiń cały spis treści Zwiń spis treści

Znajdziemy tam definicję metody drawBitmap(), co jest pokazane w szkicu 2. Wykorzystujemy dwie pomocnicze zmienne: byteWidth będzie przechowywać informację, ile pełnych bajtów potrzeba do zapisania jednej linii, a do zmiennej byte będą kopiowane z pamięci programu kolejne bajty treści obrazka. Zmienna licznikowa j posłuży do zliczania linii – wierszy, natomiast zmienna i – do określania kolejności wyświetlania pikseli w jednym wierszu.

Rys.9 Uzupełnienie informacji do pełnych bajtów

Sama procedura rysowania bardzo negatywnie zaskakuje, bo polega na żmudnym i dość czasochłonnym zaświecaniu pojedynczych punktów za pomocą elementarnej metody writePixel()! Wyświetlanie kolejnych punktów, zgodnie z rysunkiem 6, realizują dwie pętle: „mniejsza” z licznikiem i wyświetla punkty jednej linii, a „większa” pętla z licznikiem j wyświetla kolejne linie – wiersze.

Gdy trzy najmłodsze bity licznika i są równe zeru, polecenie pgm_read_byte() odczytuje z pamięci FLASH kolejne bajty, ...

Aby pobrać e-wydanie zawierające ten artykuł wykup prenumeratę
Kup teraz
1. Kurs Arduino: wprowadzenie 2. Kurs Arduino odcinek 1 - co to jest i jak zacząć? (sprzęt, schematy, programowanie) 3. Kurs Arduino odcinek 2 - termometry: 'diodowy', pokojowy oraz 'scalony' analogowy 4. Kurs Arduino odcinek 3 - moduł wyświetlacza LCD (HD44780) 5. Kurs Arduino odcinek 4 - czujnik BME280 (pomiar ciśnienia, wilgotności i temperatury) 6. Kurs Arduino odcinek 5 - biblioteki do trzyfunkcyjnego czujnika BME280 7. Kurs Arduino odcinek 6 - wykorzystanie łącza I2C (TWI) 8. Kurs Arduino odcinek 7 - wykorzystanie łącza SPI (karty pamięci, MAX31865, MAX31855) 9. Kurs Arduino odcinek 8 - wykorzystanie czujnika dwutlenku węgla (MH-Z19) 10. Kurs Arduino odcinek 9 - wykorzystanie modułów do odmierzania czasu 11. Kurs Arduino odcinek 10 - wykorzystanie czujników temperatury (DS18B20) 12. Kurs Arduino odcinek 11 - budowa loggera (rejestratora danych) 13. Kurs Arduino odcinek 12 - rejestracja i prezentacja danych oraz obsługa karty SD 14. Kurs Arduino odcinek 13 - rejestracja danych (wykorzystanie modułu OpenLog) 15. Kurs Arduino odcinek 14 - czym zastąpić płytkę Arduino Uno? 16. Kurs Arduino odcinek 15 - budowa rejestratora (chiński klon Arduino Pro Mini) 17. Kurs Arduino odcinek 16 - problemy z kwadratowym modułem Strong 18. Kurs Arduino odcinek 17 - czujniki do pomiaru wilgotności gleby (instalacja, konfiguracja) 19. Kurs Arduino odcinek 18 - protokół MODBUS i łącze RS-485 20. Kurs Arduino odcinek 19 - wyświetlacze od podstaw (matrycowe, 7-segmentowe, MAX7219) 21. Kurs Arduino odcinek 20a - wyświetlacze matrycowe i biblioteki MD_MAX 22. Kurs Arduino odcinek 20b - przyciski i biblioteki do obsługi wyświetlaczy 23. Kurs Arduino odcinek 20c - biblioteki do obsługi wyświetlaczy graficznych 24. Kurs Arduino odcinek 21 - moduł wyświetlacza OLED 25. Kurs Arduino odcinek 22 - moduł wyświetlacza 1,3 cala 26. Kurs Arduino odcinek 23 - przygotowanie bitmap do wyświetlania 27. Kurs Arduino odcinek 24 - omówienie fontu podstawowego (Adafruit GFX) 28. Kurs Arduino odcinek 25 - font podstawowy biblioteki Adafruit GFX 29. Kurs Arduino odcinek 26 - wykorzystanie bitmapowych fontów GFX 30. Kurs Arduino odcinek 27 - polskie znaki w glcdfont.c 31. Kurs Arduino odcinek 28 - zmiana ulepszonych fontów GFX
Rozwiń cały spis treści Zwiń spis treści
Firma:
AUTOR
Źródło
Elektronika dla Wszystkich kwiecień 2020
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
cykl Audio Out
1/10 Skuteczność głośnika 80 dB/W/m można ocenić jako:
Oceń najnowsze wydanie EdW
Wypełnij ankietę i odbierz prezent
Kursy kategorie
AI-Sztuczna Inteligencja
Aparatura
Arduino Audio Automatyka
CNC
DIY
Druk 3d
Elektromechanika Fotowoltaika FPGA-CPLD-SPLD
GPS
IC-układy scalone
Interfejsy
IoT
Książki
Lasery
LED/LCD/OLED
Mechatronika
Mikrokontrolery (MCV,μC)
Moc
Moduły Narzędzia
Optoelektronika
PCB/Montaż
Podstawy elektroniki
Podzespoły bierne
Półprzewodniki
Pomiary i testy Projektowanie Raspberry Pi
Retro
Komunikacja, RF
Robotyka
SBC-SIP-SoC-CoM
Sensory Silniki i serwo Software
Sterowanie
Transformatory
Tranzystory
Wyświetlacze
Wzmacniacze
Zasilanie
W tym numerze znajdziesz źródłową wersję artykułu publikowanego obok
Elektronika dla Wszystkich
kwiecień 2020
Elektronika dla Wszystkich
Przejrzyj i kup
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"