- Необходими материали:
- Модул за графичен дисплей Nokia 5110:
- Електрическа схема:
- Програма и работа на Arduino:
Самото емблематично име „ Nokia 5110 “ би трябвало да купи спомени за здравия мобилен телефон Nokia, който беше много популярен през 90-те. Моделът 5110 се предлага с графичен дисплей, който е бил достатъчно достатъчен, за да действа като екран на дисплея за мобилния телефон тогава. Този екран можеше да показва всичко - от буквено-цифрови символи до малки графики, което е всичко необходимо за мобилния телефон. Тъй като Земята се въртеше нови технологии с лъскави сензорни екрани и този дисплей вече не се използва. Но се надяваме, че те могат да се използват в приложения за електроника, където трябва да се показва малка графика и да се избягва харченето на пари за големи LCD екрани. Така че в този урок ще научим как да свържем графичен LCD на Nokia 5110 с Arduino и да го накараме да работи.
Тези LCD имат черно-бели пиксели с размери 84 × 48. Те може да изглеждат монотонно, но все пак могат да се използват за показване на прилични графики за вашите проекти и могат лесно да се използват с микроконтролери като Arduino. Така че нека да започнем….!
Необходими материали:
- Arduino Board (всяка версия)
- Дисплей на Nokia 5110
- Свързващи проводници
Модул за графичен дисплей Nokia 5110:
На пазара се предлагат два вида тези графични LCD. Едната с подложки за запояване както над, така и под дисплея, а другата с подложки за спойка само в долната част на дисплея. Този, който използваме, принадлежи към тип 2, където има подложки само под дисплея. И двата модула работят еднакво и следователно връзките са еднакви и за двата. Така че независимо от модула, можете да следвате урока.
Както беше казано по-рано, Nokia 5110 Graphical LCD има 84 пиксела в хоризонтала и 48 пиксела във вертикала. Общият размер на дисплея е 1,72 'x 1,72'. Модулът има 6 входни щифта, с помощта на които можем да го свържем с всеки микроконтролер чрез SPI комуникация. Свързващата интегрална схема, която комуникира между дисплея и Arduino, е интегралната схема на контролера на дисплея на Philips PCD8544, чийто лист с данни можете да намерите тук. Ако обаче използвате Arduino за комуникация с този IC, тогава не е нужно да се притесняваме за листа с данни, тъй като има библиотеки, които са готови за изтегляне и използване. Модулът, който използваме тук, е показан по-долу.
Електрическа схема:
Пълната електрическа схема за свързване на Nokia5110 Graphical LCD с Arduino е дадена по-долу.
Дисплейният модул има 8 пина, които се използват за настройка на SPI комуникация с Arduino. Модулът се захранва с 3.3V щифт на платката Arduino. Имайте предвид, че тези модули работят на 3.3V логика и следователно не подават 5V към Vcc щифта на дисплеите. Директно свързах Pin на дисплея към Arduino, въпреки че LCD работи на 3.3V логика, а Arduino на 5V логика, защото едва тогава открих, че LCD работи правилно. Можете да използвате делител на напрежение, за да преобразувате 5V в 3.3V, ако е необходимо, но за мен той работи само без логическо преобразуване. Връзките са доста прости и прави напред. След като приключите с връзките, вашата настройка ще изглежда по следния начин.
Програма и работа на Arduino:
Следвайте стъпките по-долу, за да програмирате вашия Arduino за дисплея на Nokia 5110. Стъпките предполагат, че вече сте инсталирали IDE на Arduino и сте запознати с използването му.
Стъпка 1: Отворете Arduino IDE на вашия компютър и изберете подходящата дъска в менюто с инструменти след свързване на вашия Arduino с вашия компютър.
Стъпка 2: Щракнете тук, за да изтеглите Nokia 5110 Display Library от библиотеката Adafruit от хранилището на GitHub.
Стъпка 3: След като изтеглите Zip файла, изберете Скица -> Включване на библиотека -> Добавяне на.ZIP библиотека и прегледайте местоположението, където е изтеглен ZIP.
Забележка: Също така ще трябва да изтеглите ядрото Adafruit GFX Graphics, което прави всички кръгове, текст, правоъгълници и др. Можете да го получите от https://github.com/adafruit/Adafruit-GFX-Library и да го инсталирате по същия начин.
Стъпка 4: Сега отворете примерната програма, като изберете Файл -> Примери -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest и кликнете върху бутона за качване
Стъпка 5: След като програмата бъде качена, натиснете бутона за нулиране на Arduino и ще видите примерната програма, показваща всички анимации, както е показано във видеото, дадено в края на този урок.
Можете да прочетете примерната програма, за да разберете различните вградени функции, които могат да се използват за изпълнение на различен графичен дизайн на LCD дисплея. Но нека да отидем още една стъпка напред и да опитаме да покажем логото CircuitDigest на LCD екрана.
Сега отворете необходимото изображение в Paint и преоразмерете изображението. Максималният размер на изображението, който можем да използваме за нашия дисплей, е 84 × 48.
След преоразмеряване на изображението, запазете изображението като растерно изображение (черно-бяло), като използвате опцията за запазване като в Paint. За да покажем изображение като растерно изображение на нашия LCD екран, ще ни е необходим софтуер, който може да преобразува растерното изображение в код. Можете да изтеглите софтуера, като кликнете тук. След като изтеглите, разархивирайте файла и кликнете върху „BitmapEncoder“, за да стартирате приложението. Отворете растерното изображение, което току-що запазихме с помощта на този софтуер, за да получим масива от кодирани стойности. Можете директно да копирате тези стойности и да ги поставите във вашия Arduino масив. Стойността, показана от софтуера за нашето лого, е показана по-долу
Както можете да видите, масивът започва със стойност 48, 48 това е размерът на нашето изображение. Не трябва да добавяме това в нашия масив. И така, премахнете първите две стойности и използвайте останалите като стойност на масива в програмата. Масивът ще изглежда по-долу. В пълна програма се дава в края на тази страница, за ваше сведение.
статичен const неподписан знак Лого на PROGMEM = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B00000000, B00000000, B0000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B1100000000, B1111000000, B11110000 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, B11 B11 B11 B11 B11, B11, B11, B11, B11, B11 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B00111111, B111111 B11 B111111, B111111, B111111 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, B1111, B1111, B1111, B1111, B1111 B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B00111111, B11110000 B000011110000 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11 B11 B11 B111111, B11 B11, B11 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B11111100, B11111100 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, B0000 B111111110000 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Сега, за да покажем това растрово изображение, трябва да използваме следните редове код. Когато предишните данни на екрана се изтриват и се записва новото растерно изображение.
display.clearDisplay (); display.drawBitmap (20, 0, лого, 48, 48, 1); display.display ();
Линията display.drawBitmap (20, 0, лого, 48, 48, 1); покажете позицията, размера и цвета на растерното изображение. Синтаксисът може да бъде даден като.
display.drawBitmap (X_Position, Y_Position, Име на масива, дължина на изображението, широчина на изображението);
Дължината и широчината на изображението могат да бъдат получени от първите два елемента на масива, както е казано по-рано. Когато този код се изпълни, ще получим растерното изображение, показано на нашия LCD екран, както е показано по-долу.
Можете също да покажете прост текст, както е показано по-долу:
Надявам се, че сте разбрали урока и сте свързали вашия Nokia 5110 LCD с Arduino. С този графичен дисплей в ръкава си можете да създадете много проекти, които изискват малки графични детайли. Пълната работа може да бъде намерена във видеото, дадено по-долу. Ако се сблъскате с някакъв проблем, за да накарате това да работи, можете да използвате форума, за да публикувате проблема си или секциите за коментари по-долу.