Съдържание:
- Стъпка 1: Получаване на компонентите
- Стъпка 2: Познайте вашия хардуер #1
- Стъпка 3: Познайте вашия хардуер #2
- Стъпка 4: Окабеляване на всичко
- Стъпка 5: Резултатът + библиотека
Видео: 3-жичен HD44780 LCD за по-малко от 1 долар: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
В тази инструкция ще научим как можем да свържем LCD, базиран на чипсета HD44780, към SPI шината и да го задвижваме само с 3 проводника за по -малко от $ 1. Въпреки че ще се фокусирам върху буквено -цифровия дисплей HD44780 в този урок, същият принцип ще работи почти еднакво за всеки друг LCD, който използва 8 -битова паралелна шина за данни, и може много лесно да се адаптира, за да отговаря на дисплеи с 16 -битови шини за данни. Буквено -цифровите дисплеи, базирани на HD44780 (и съвместими), обикновено се предлагат в конфигурации 16x2 (2 реда, състоящи се от 16 знака) и 20x4, но могат да бъдат намерени в много повече форми. Най -сложният дисплей би бил 40x4 дисплей, този вид дисплей е специален, тъй като има 2 HD44780 контролера, един за горните два реда и един за долните два реда. Някои графични LCD дисплеи имат и два контролера. LCD дисплеите HD44780 са страхотни, много са евтини, четими и доста лесни за работа. Но те също имат някои недостатъци, тези дисплеи заемат много I/O пинове, когато са свързани с Arduino. В прости проекти това не е проблем, но когато проектите станат големи, с много IO или когато са необходими определени щифтове за неща като аналогово четене или ШИМ, фактът, че тези LCD дисплеи изискват минимум 6 пина, може да стане проблем. Но можем да решим този проблем по евтин и интересен начин.
Стъпка 1: Получаване на компонентите
Използвах TaydaElectronics за повечето компоненти, които използвах в този проект. Можете да получите тези части и в ebay, но за по -лесно използване ще ви свържа с Tayda. Списък за пазаруване2 - 74HC595 пакет DIP161 - Обща мъжка заглавка - 2 пина. Това не се изисква, използвах това като начин за постоянно деактивиране на подсветката.3 - Керамичен кондензатор - капацитет 0.1 μF; напрежение 50V1 - Електролитен кондензатор - капацитет 10µF; напрежение 35V1 - Керамичен кондензатор - капацитет 220pF; напрежение 50V1 - NPN -транзистор - част # PN2222A* 1 - 1k Ω Резистор1 - Тример Потенциометър - максимално съпротивление 5kΩ1 - 470 Ω Резистор* При NPN транзистор подсветката ще остане изключена, докато не бъде включена от софтуера. Ако искате да включите подсветката по подразбиране, използвайте транзистор тип PNP. Ще трябва да се направят промени в кода на предоставената библиотека. Сумата на този списък е $ 0,744. Заглавката на щифта също не се изисква, така че можете да запишете 15 цента точно там и междинната сума ще бъде $ 0,6.
Стъпка 2: Познайте вашия хардуер #1
Ето един стандартен извод от HD44780 LCD, той също е много подобен на някои графични LCD дисплеи. HD44780 може да работи в два режима: 1. 4-битов режим, където всеки байт, изпратен на LCD, се състои от 2 4-битови части. 2. 8-битов режим, върху който ще се спрем. LCD дисплеят има общо 16 пина, 3 контролни пина и 8 пина за данни: RS - Контролира дали искаме да изпратим команда или данни към LCD. Където „високо“означава данни (символ), а „ниско“означава байт за команда. R/W - Контролерът HD44780 ви позволява да четете от неговата RAM. Когато този щифт е „висок“, можем да четем данни от неговите щифтове за данни. Когато е „ниско“, можем да запишем данни на LCD дисплея. Въпреки че опцията за четене от LCD може да бъде полезна в някои случаи, няма да я преглеждаме в този урок и просто ще заземим този щифт, за да гарантираме, че той винаги е в режим на запис. E - E е щифтът „Enable“, този щифт се превключва „високо“, след това „ниско“, за да запише данните в неговата RAM и в крайна сметка да ги покаже на екрана. DB0-7 - Това са пиновете за данни. В 4 -битов режим използваме само 4 -те битови DB4 -DB7, а в 8 -битов режим всички те се използват. VSS - Това е заземителният щифт., ние можем лесно да го захранваме от + 5v пина на Arduino. Vo - Това е щифтът, който ви позволява да зададете нивото на контраст за дисплея, той изисква потенциометър, обикновено се използва 5K Ohm пот. LED + - Това е източник на захранване за подсветката. Някои LCD дисплеи не се предлагат с подсветка и имат само 14 пина. В повечето случаи този щифт също изисква +5v връзка. LED- - Това е почвата за подсветката. ** Важно е да проверите листа с данни на дисплея или да проверите неговата печатна платка, за да проверите за резистор на подсветка, повечето LCD дисплеи ще ги построят -в този случай всичко, което трябва да направите, е да приложите захранване към LED+ и да заземите към LED-. Но в случай, че вашият LCD дисплей няма вграден резистор за подсветката, важно е да добавите такъв, в противен случай подсветката ще консумира много енергия и в крайна сметка ще изгори. В повечето случаи начинът, по който този LCD е свързан към Arduino, е чрез използването му в 4-битов режим и заземяване на R/W щифта. По този начин използваме щифтове RS, E и DB4-DB7. Работата в 4-битов режим има друг малък недостатък, тъй като отнема два пъти повече време за запис на данни на екрана, отколкото би било необходимо при 8-битова конфигурация. LCD дисплеят има време за „утаяване“от 37 микросекунди, което означава, че трябва да изчакате 37 микросекунди, преди да изпратите следващата команда или байт данни към LCD дисплея. Тъй като в 4-битов режим трябва да изпращаме данни два пъти за всеки байт, общото време, необходимо за запис на един байт, достига 74 микросекунди. Това все още е достатъчно бързо, но исках дизайнът ми да даде възможно най -добрите резултати. Решението на нашия проблем с броя на използваните щифтове се крие в сериен към паралелен преобразувател …
Стъпка 3: Познайте вашия хардуер #2
Това, което ще направим, е да изградим адаптер, който приема сериен тип комуникация, идваща от Arduino и преобразува данните в паралелен изход, който може да се подава към нашия LCD. Влиза чипът 74HC595. Това е много евтин и лесен за работа смяна регистър. По същество това, което той прави, е да приема часовник и сигнали за данни, които използва, за да запълни вътрешен 8 -битов буфер с 8 -те последни бита, които са „включени“. След като щифтът „Latch“(ST_CP) е поставен „високо“, той премества тези битове в своите 8 изхода. 595 има много хубава характеристика, има извод за сериен изход на данни (Q7 '), този щифт може да се използва за свързване на последователни 2 или повече 595 заедно, за да се образуват серийни към паралелни адаптери с ширина 16 или повече бита. За този проект ще ни трябват 2 от тези чипове. Схемата може също да бъде променена, за да работи с единична 595 в 4-битов режим, но това няма да бъде обхванато от този урок.
Стъпка 4: Окабеляване на всичко
Сега, когато знаем как работи хардуерът ни, можем да свържем всичко. В схемата виждаме 2 595 чипа, свързани последователно, за да образуват 16 -битов паралелен изход. Долният чип всъщност е основният, а горният е маргаритка, прикован към него. Това, което виждаме тук, е, че долният 595 управлява щифтовете за данни на LCD в 8-битова конфигурация, горният чип контролира RS сигнала и подсветката, като включва или изключва транзистор. Запомнете *бележката за подсветката на LCD дисплея на страница Знайте вашия хардуер #1, в случай че вашият LCD дисплей няма резистор за подсветка, не забравяйте да добавите такъв във вашата схема. В моя случай LCD дисплеите вече са с вграден резистор, така че пропуснах тази стъпка. Контрастът се прилага чрез 5K Ohm пот, един щифт отива към GND, вторият отива към VCC, а чистачката към Vo пина на LCD. Кондензаторите, използвани на LCD и 595 VCC линии, са разединяващи кондензатори, те са там, за да се отърват от смущенията. Те не са задължителни, ако работите върху макет, но трябва да се използват в случай, че изградите своя собствена версия на тази схема, която да се използва извън „лабораторни условия“. R5 и C9 в този много специфичен ред създават RC забавяне, което гарантира, че данните в изходите на 595 имат време да се стабилизират, преди щифтът Enable на LCD дисплея да е настроен „високо“и да прочете данните. Q7 'на долния 595 влиза в серийния вход на данни на 595 отгоре, това създава верига от маргаритка от 595s и по този начин 16 битов интерфейс. Окабеляването до Arduino е лесно. Използваме 3-жична конфигурация, използвайки SPI щифтовете на Arduino. Това позволява много бърз трансфер на данни, изпращането на 2 байта към LCD обикновено отнема около 8 микросекунди. Това е много бързо и всъщност е много по -бързо от времето, необходимо на LCD дисплея за обработка на данните, като по този начин е необходимо закъснение от 30 микросекунди между всяко записване. Едно много голямо предимство от използването на SPI е, че щифтовете D11 и D13 се споделят с други SPI устройства. Това означава, че ако вече имате друг компонент, който използва SPI, например акселерометър, това решение ще използва само един допълнителен щифт за сигнала за разрешаване. На следващата страница ще видим резултата. Изградих раница на перфорирана дъска и засега ми работи много добре.
Стъпка 5: Резултатът + библиотека
„Една картина струва хиляда думи“, съгласен съм с това твърдение, така че ето няколко изображения на крайния резултат за този проект. Това са изображения на завършения продукт, изгледът на печатната платка Fritzing е перфектното оформление, което използвах за изграждането на раницата си. Може да ви бъде полезно, ако искате да създадете свой собствен. Толкова ми хареса, че проектирах печатна платка с помощта на DipTrace и поръчах партида от 10 печатни платки. Ще ми трябват 2 или 3 единици за себе си, но ще направя останалите на разположение на символична цена, когато ги получа. Така че, ако някой се интересува, моля да ме уведоми. * Редактиране: ПХБ са тук и работят. Ето пълната галерия с картини за този проект, включително действителните печатни платки. https://imgur.com/a/mUkpw#0 Разбира се, не забравих най -важното - библиотека, с която да използвам тази схема. Той е съвместим с библиотеката LiquidCrystal, включена в Arduino IDE, така че можете лесно да замените декларациите в горната част на скицата си и да не се налага да променяте нищо друго в скицата си. Има и примерна скица, която демонстрира как работи всяка функция в библиотеката, затова я проверете.
Препоръчано:
Как да използвате DC към DC конвертор на долар LM2596: 8 стъпки
Как да използвате DC към DC конвертор на долар LM2596: Този урок ще покаже как да използвате LM2596 Buck Converter за захранване на устройства, изискващи различни напрежения. Ще покажем кои са най -добрите видове батерии за използване с конвертора и как да получите повече от един изход от преобразувателя (инди
"Долар на нинджа" Играта за Arduino: 3 стъпки
"Ninja Dollar" Играта за Arduino: Друга видео игра за arduino. Това е страхотна игра, която е по -напреднала от последната, която публикувам. Защо е по -сложна от другите? Тя е по -сложна, защото това може да скочи и стреля и има звукова светлина и нов метод за продължаване на точки
Как да използвате LCD HD44780 I2c: 5 стъпки
Как да използвате LCD HD44780 I2c: В този урок ще ви покажа как да свържете LCD към I2C, който ще има само 4 пина за управление и използване на LCD. Така че нека започнем
IC / КОМПОНЕНТНА КУТИЯ ЗА СЪХРАНЕНИЕ ПОД 1 ДОЛАР: 5 стъпки (със снимки)
IC / КОМПОНЕНТНА КУТИЯ ЗА СЪХРАНЕНИЕ ПОД 1 ДОЛАР: Тук ще направим IC / компонентна кутия под 1 долар
Минималистична IR писалка: Без запояване, под минута, под долар .: 3 стъпки
Минималистична IR писалка: Без запояване, под минута, под долар. ..) или програмата Smoothboard на www.smoothboard.net (светлинни години напред, защото Бун Джин започна