Съдържание:
- Стъпка 1: Компоненти
- Стъпка 2: Първи прототипи
- Стъпка 3: Дизайн на печатни платки
- Стъпка 4: Програмиране
- Стъпка 5: Тестване
- Стъпка 6: Заключение и следващи стъпки
Видео: Модул с множество LED дисплеи: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Здравейте всички, Обичам да работя с LED дисплеи със 7 сегмента или с матрица и вече направих много различни проекти с тях.
Всеки път, когато те са интересни, защото има някакъв вид магия в начина, по който могат да работят, защото това, което виждате, е оптична илюзия!
Дисплеите имат много пинове за връзка с Arduino (или друг микроконтролер) и най -доброто решение е да се приложи техниката на мултиплексиране на данни, за да се сведе до минимум използването на техните портове.
Когато направите това, всеки сегмент или всеки светодиод ще бъдат включени за няколко мига (милисекунди или по -малко), но повторението на това толкова пъти в секунда създава илюзията на изображението, което искате да покажете.
За мен най -интересното е да развием логиката, програмата, за да разберем как могат да покажат правилната информация според вашия проект.
В един проект използването на дисплеи изисква много време за сглобяване на всички компоненти на макет с много проводници за свързване.
Знам, че на пазара има много различни дисплеи, работещи с I2C, с опростени начини (или не), за да ги програмирате и аз също ги използвах, но предпочитам да работя със стандартни компоненти като 74HC595 (мултиплексорен IC) и ULN2803 (драйвери), защото те ви дават по -голям контрол във вашата програма и също така по -здрави и надеждни при използването ви.
За да опростя процеса на сглобяване, разработих LED Dipslay модул за множество цели, използвайки прости и общи компоненти в света на Arduino.
С този модул можете да работите с матрица с двуцветни светодиоди в два стандартни размера (по -голям и по -малък), а също така можете да контролирате 7 Seg x 4 -цифрен дисплей, който е много често срещан и лесен за намиране на пазара.
Можете също така да работите с тези модули каскадно по сериен начин (различни данни в дисплеи) или по паралелен начин (същите данни в дисплеи).
Така че нека да видим как може да работи този модул и да ви помогнем в развитието ви!
Видео (LED дисплей модул)
Видео (Dot Matrix Test)
За разбирането, ЛАГСИЛВА
Стъпка 1: Компоненти
PCB (печатна платка)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Транзистор PNP - BC327 (08 x)
- Резистор 150 ома (16 x)
- Резистор 470 Ома (08 x)
- Кондензатор 100 nF (03 x)
- IC гнездо 16 пина (03 x)
- IC гнездо 18 пина (02 x)
- Pin конектор женски - 6 пина (8 x)
- Заглавки на щифтове 90º (01 x)
- Заглавки на щифтове 180º (01 x)
- Конектор Borne KRE 02 пина (02 x)
- ПХБ (01 x) - Произведено
Други
- Arduino Uno R3 / Nano / подобен
- LED дисплей 04 цифра x 7 сегмента - (общ анод)
- Двоцветен LED Dot Matrix (зелен и червен) - (общ анод)
Важни забележки:
- Поставям листа с данни за всички най -важни компоненти само като справка, но трябва да проверите листа с данни за вашите собствени компоненти, преди да ги използвате.
- Тази платка е проектирана да използва само дисплеи на COMMON ANODE.
Стъпка 2: Първи прототипи
Първият ми прототип беше направен на макет за тестване на веригата.
След това направих друг прототип, използвайки универсална дъска, както можете да видите на снимките.
Този вид платка е интересна за производство на бърз прототип, но осъзнавате, че все още запазва много проводници.
Това е функционално решение, но не толкова елегантно в сравнение с окончателно произведената платка (синята).
Не съм добър в запояването, защото нямам достатъчно опит с този процес, но дори и с това постигнах добри резултати както с опит, така и по -важно: не изгорих нито един компонент и нито ръцете си!
Вероятно резултатите на следващия ми борд ще бъдат по -добри поради практиката.
Поради това ви насърчавам да опитате този вид опит, защото той ще бъде отличен за вас.
Просто имайте предвид, че трябва да се грижите за горещата ютия и се опитайте да не харчите повече от няколко секунди върху компонент, за да избегнете изгарянето му !!
И накрая, в Youtube можете да намерите много видеоклипове за запояване, които можете да научите, преди да отидете в реалния свят.
Стъпка 3: Дизайн на печатни платки
Проектирах тази печатна платка с помощта на специален софтуер за производство на двуслойна платка и тя беше разработена в няколко различни версии преди тази последна.
В началото имах по една версия за всеки вид дисплеи и в края на краищата реших да комбинирам всичко само в една версия.
Дизайн цели:
- Прост и полезен за прототипи.
- Лесна настройка и разширяемост.
- Възможност за използване на 3 различни вида дисплеи.
- Максимална ширина на матрицата с големи светодиоди.
- Максимална дължина при 100 мм, за да се намалят разходите за производство на дъската.
- Прилагайте традиционни компоненти вместо SMD, за да избегнете повече трудности по време на процеса на ръчно запояване.
- Платката трябва да бъде модулна, за да бъде свързана с друга платка в каскада.
- Сериен или паралелен изход за други платки.
- Няколко дъски трябва да се контролират само от Arduino.
- Само 3 жици данни за връзката на Arduino.
- Външно 5V захранване.
- Увеличете електрическата устойчивост, като приложите транзистори и драйвери (ULN2803) за управление на светодиодите.
Забележка:
Във връзка с този последен елемент препоръчвам да прочетете другите ми инструкции за тези компоненти:
Използване на Shift Register 74HC595 с ULN2803, UDN2981 и BC327
Производство на печатни платки:
След като завърших дизайна, го изпратих до производител на печатни платки в Китай след много търсения с различни местни доставчици и в различни страни.
Основният въпрос беше свързан с количеството дъски спрямо цената, защото ми трябват само няколко от тях.
Накрая реших да направя редовна поръчка (не изрична поръчка поради по -високи разходи) само на 10 борда с компания в Китай.
Само след 3 дни дъските бяха произведени и изпратени до мен, обикаляйки света за повече от 4 дни.
Резултатите бяха отлични !!
Една седмица след поръчката за покупка дъските бяха в ръцете ми и бях наистина впечатлен от високото им качество и от бързата скорост!
Стъпка 4: Програмиране
За програмиране трябва да имате предвид някои важни концепции за хардуерния дизайн и за регистъра на смяна 74HC595.
Основната функция на 74HC595 е да трансформира 8-битовия сериен вход в 8 паралелен изход.
Всички серийни данни влизат в Pin #14 и при всеки тактов сигнал битовете преминават към съответните му изводи за паралелен изход (Qa до Qh).
Ако продължавате да изпращате повече данни, битовете ще бъдат преместени един по един в Pin #9 (Qh ') като сериен изход отново и поради тази функция можете да поставите други чипове, свързани в каскада.
Важно:
В този проект имаме три интегрални схеми от 74HC595. Първите две работят за управление на колоните (с ПОЗИТИВНА логика), а последната за управление на линиите (с НЕГАТИВНА логика поради функционирането на PNP транзисторите).
Положителната логика означава, че трябва да изпратите сигнал на ВИСОКО ниво (+5V) от Arduino, а отрицателната логика означава, че трябва да изпратите сигнал на НИСКО ниво (0V).
Матрица от светодиоди
- Първият е за изходите на катодите на червени светодиоди (8 x) >> COLUMN RED (1 до 8).
- Вторият е за изхода L на катодите на зелени светодиоди (8 x) >> КОЛОННА ЗЕЛЕНА (1 до 8).
- Последният е за извеждане на аноди на всички светодиоди (08 x червено и зелено) >> ЛИНИИ (1 до 8).
Например, ако искате да включите само зеления светодиод на колона 1 и ред 1, трябва да изпратите следната последователност от серийни данни:
1º) ЛИНИИ
~ 10000000 (само първият ред е настроен на включен) - Символът ~ има за цел да обърне всички битове от 1 до 0 и обратно.
2º) КОЛОНА Зелено
10000000 (само първата колона на зеления светодиод е включена)
3º) КОЛОНА ЧЕРВЕНА
00000000 (всички колони с червени светодиоди са изключени)
Изявления на Arduino:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Отрицателна логика за редовете
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Положителна логика за зелените колони
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Положителна логика за червените колони
Забележка:
Можете също така да комбинирате и двата светодиода (зелен и червен), за да получите цвят ЖЪЛТ, както следва:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
shiftOut (dataPin, clockPin, LSBFIRST, B10000000);
Показване на 7 сегмента
За този вид дисплеи последователността е същата. Единствената разлика е, че не е необходимо да използвате зелените светодиоди.
1º) DIGIT (1 до 4 отляво надясно) ~ 10000000 (зададена цифра #1)
~ 01000000 (зададена цифра #2)
~ 00100000 (зададена цифра #3)
~ 00010000 (зададена цифра #4)
2º) НЕ СЕ ИЗПОЛЗВА
00000000 (всички битове са настроени на нула)
3º) СЕГМЕНТИ (от A до F и DP - проверете листа с данни на дисплея)
10000000 (задайте сегмент А)
01000000 (задайте сегмент B)
00100000 (задайте сегмент C)
00010000 (задайте сегмент D)
00001000 (задайте сегмент E)
00000100 (задайте сегмент F)
00000010 (задайте сегмент G)
00000001 (комплект DP)
Пример за Arduino за задаване на дисплей #2 с номер 3:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // Задайте DISPLAY 2 (Отрицателна логика)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Задайте данни на нула (не се използва)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // Задаване на сегменти A, B, C, D, G)
И накрая, прилагайки този процес, можете да контролирате всеки светодиод на дисплея си, а също така можете да създавате всякакви специални знаци, от които се нуждаете.
Стъпка 5: Тестване
Ето две програми като пример за функционалност на модула на дисплея.
1) Дисплей за обратно броене (от 999,9 секунди до нула)
2) Матрица с точки (цифри от 0 до 9 и азбука от A до Z)
3) Цифров часовник RTC в LED дисплей от 4 цифри и 7 сегмента
Последната е актуализация на първата ми версия на Digital Clock.
Стъпка 6: Заключение и следващи стъпки
Този модул ще бъде полезен във всички бъдещи проекти, които изискват LED дисплей.
Като следващи стъпки ще събера още няколко дъски за работа с тях в каскаден режим и ще разработя също библиотека, която да опрости още повече програмирането.
Надявам се, че сте харесали този проект.
Моля, изпратете ми вашите коментари, защото това е важно за подобряване на проекта и информацията на тази инструкция.
За разбирането, ЛАГСИЛВА
26. Май.2016г
Препоръчано:
Как да прочетете множество аналогови стойности, използвайки един аналогов щифт: 6 стъпки (със снимки)
Как да прочетете множество аналогови стойности с помощта на един аналогов щифт: В този урок ще ви покажа как да четете множество аналогови стойности, използвайки само един аналогов входен щифт
Свържете множество PZEM 004T с модул Nodemcu: 3 стъпки
Свържете множество PZEM 004T с модул Nodemcu: Изискването за множество модули PZEM 004T в някои проекти като система за откриване на кражба на електроенергия или система за мониторинг на енергията е необходимо, затова тук предоставих кода на Nodemcu и свързването на 3 модула PZEM 004T с Nodemcu.ако имате някаква заявка след това к
Дисплеи със звукова реактивна крушка + странни неща : 8 стъпки (със снимки)
Дисплеи със звукова реактивна крушка + странни неща …: За повече снимки и актуализации на проекта: @capricorn_one
Двойни 7 -сегментни дисплеи, контролирани от потенциометър в CircuitPython - Демонстрация на устойчивост на зрението: 9 стъпки (със снимки)
Двойни 7-сегментни дисплеи, контролирани от потенциометър в CircuitPython-Демонстрация на устойчивост на зрението: Този проект използва потенциометър за управление на дисплея на няколко 7-сегментни LED дисплея (F5161AH). Когато копчето на потенциометъра се завърти, показаният номер се променя в диапазона от 0 до 99. Във всеки момент свети само един светодиод, много кратко, но
Адресируеми 7-сегментни дисплеи: 10 стъпки (със снимки)
Адресируеми 7-сегментни дисплеи: От време на време една идея щраква в мозъка ми и си мисля: „Как досега това не е направено?“и през по -голямата част от времето всъщност е било така. В случай на "Адресен 7-сегментен дисплей" - Наистина не мисля, че е направено