Мазмуну:
- 1 -кадам: Компоненттер
- 2 -кадам: Биринчи прототиптер
- 3 -кадам: PCB Дизайн
- 4 -кадам: Программалоо
- 5 -кадам: Тестирлөө
- 6 -кадам: Жыйынтык жана кийинки кадамдар
Video: Бир нече LED дисплей модулу: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Баарына салам, Мен 7 сегменттүү же чекиттик матрицалуу LED дисплейлер менен иштөөнү жакшы көрөм жана алар менен көптөгөн долбоорлорду жасадым.
Ар дайым алар кызыктуу, анткени алар кандайча иштээринде кандайдыр бир сыйкыр бар, анткени сиз көрүп турганыңыз оптикалык иллюзия!
Дисплейлерде Arduino (же башка микроконтроллер) менен туташуу үчүн көптөгөн казыктар бар жана алардын портторун колдонууну азайтуу үчүн маалыматтарды мультиплекстөө техникасын колдонуу эң жакшы чечим болуп саналат.
Муну кылганда, ар бир сегмент же ар бир LED бир нече көз ирмемде күйгүзүлөт (милисекунд же азыраак), бирок муну секундасына көп жолу кайталоо сиз көрсөткүңүз келген сүрөттүн элесин жаратат.
Мен үчүн эң кызык нерсе - бул логиканы, программаны кантип иштеп чыгуу, бул сиздин долбоорго ылайык туура маалыматты кантип көрсөтө аларын билүү.
Дисплейлерди колдонгон бир долбоордо бардык компоненттерди туташуу үчүн көптөгөн зымдары бар нан тактасына чогултуу көп убакытты талап кылат.
Мен билем, рынокто I2C менен иштеген, жөнөкөйлөтүлгөн жолдор менен (же жок), аларды программалоо жана мен дагы колдонгом, бирок 74HC595 (мультиплексор IC) жана ULN2803 (драйверлер) сыяктуу стандарттык компоненттер менен иштөөнү жактырам. алар сизге программаңызды көбүрөөк көзөмөлдөөгө, ошондой эле колдонууңузда дагы бекемдикке жана ишенимдүүлүккө ээ болушат.
Жыйынды жөнөкөйлөтүү үчүн мен Arduino дүйнөсүндө жөнөкөй жана жалпы компоненттерди колдонуу менен бир нече максаттар үчүн LED Dipslay модулун иштеп чыктым.
Бул модулдун жардамы менен сиз эки стандарттуу өлчөмдөгү (чоңураак жана кичирээк) кош түстүү светодиоддор менен матрица менен иштей аласыз, ошондой эле аларды 7 Seg x 4 Digits дисплейин башкара аласыз, алар абдан кеңири таралган жана аларды базарда табуу оңой.
Ошондой эле, сиз бул модулдар менен каскадда сериялык жол менен (дисплейге ар кандай маалыматтар) же параллелдүү түрдө (ошол эле маалыматтар дисплейге) иштей аласыз.
Келгиле, бул модуль кантип иштээрин карап көрөлү жана сиздин өнүгүүлөрүңүзгө жардам берели!
Видео (LED дисплей модулу)
Видео (Матрицалык тест)
Урматтоо менен, ЛАГСИЛВА
1 -кадам: Компоненттер
PCB (Басылган райондук)
- 74HC595 (03 x)
- ULN2803 (02 x)
- Транзистор PNP - BC327 (08 x)
- Резистор 150 Ом (16 x)
- Резистор 470 Ом (08 х)
- Конденсатор 100 нФ (03 х)
- IC розеткасы 16 казык (03 x)
- IC розеткасы 18 казык (02 x)
- Пин туташтыргычы аял - 6 казык (8 x)
- Pin баштары 90º (01 x)
- пин баштары 180º (01 x)
- Conector Borne KRE 02 төөнөгүчтөр (02 x)
- ПХБ (01 x) - Өндүрүлгөн
Башкалар
- Arduino Uno R3 / Nano / окшош
- LED дисплейи 04 Цифра х 7 Сегмент - (Жалпы анод)
- LED Dot Matrix Dual Color (Green & Red) - (Жалпы анод)
Маанилүү эскертүүлөр:
- Мен эң маанилүү компоненттердин маалымат барагын шилтеме катары гана койом, бирок сиз аларды колдонуудан мурун өзүңүздүн компоненттериңиздин маалымат барагын текшеришиңиз керек.
- Бул такта COMMON ANODE дисплейлерин гана колдонуу үчүн иштелип чыккан.
2 -кадам: Биринчи прототиптер
Менин биринчи прототипим схеманы текшерүү үчүн нан тактасында жасалган.
Андан кийин мен сүрөттөрдө көрүнүп тургандай универсалдуу тактайдын жардамы менен дагы бир прототип жасадым.
Мындай такта тез прототипти чыгаруу үчүн кызыктуу, бирок сиз дагы эле көп зымдарды кармап турарын түшүнөсүз.
Бул функционалдык чечим, бирок акыркы өндүрүлгөн ПХБ (көк) менен салыштырганда анча көрктүү эмес.
Мен бул процессте жетиштүү тажрыйбага ээ эмесмин, анткени ширетүү жакшы эмес, бирок мен дагы тажрыйбам менен жакшы натыйжаларга жетиштим жана андан да маанилүүсү: мен эч кандай компонентти да, колумду да күйгүзгөн жокмун!
Балким, кийинки тактайдагы жыйынтыктар практикага байланыштуу жакшы болот.
Ушундан улам мен сизди мындай тажрыйбаны сынап көрүүгө чакырам, анткени ал сиз үчүн эң сонун болот.
Жөн гана ысык үтүккө кам көрүүнү унутпаңыз жана аны күйгүзбөө үчүн компонентке бир нече секунддан ашык убакыт коротпоого аракет кылыңыз !!
Жана, акыры, Youtubeдан сиз реалдуу дүйнөгө барардан мурун үйрөнө турган ширетүү жөнүндө көптөгөн видеолорду таба аласыз.
3 -кадам: PCB Дизайн
Мен бул ПКБны атайын программалык камсыздоону кош кабаттуу тактаны чыгаруу үчүн иштеп чыккам жана ал акыркы версияга чейин бир нече башка версияларда иштелип чыккан.
Башында менде ар бир дисплейдин бир версиясы бар болчу жана мен баарын бир версияда бириктирүүнү чечтим.
Дизайн Максаты:
- Прототиптер үчүн жөнөкөй жана пайдалуу.
- Оңой орнотуу жана кеңейтүү.
- 3 түрдүү дисплейди колдонууга жөндөмдүү.
- LEDдин чоң чекит матрицасынын максималдуу туурасы.
- Тактайдын чыгымдарын азайтуу үчүн максималдуу узундугу 100 мм.
- Кол менен ширетүү процессинде көп кыйынчылыктарды болтурбоо үчүн SMD ордуна салттуу компоненттерди колдонуңуз.
- Такта каскаддагы башка такталар менен туташуу үчүн модулдук болушу керек.
- Башка такталар үчүн сериялык же параллелдик чыгаруу.
- Бир нече такталар Arduino тарабынан гана башкарылышы керек.
- Ардуинонун туташуусу үчүн болгону 3 зым маалымат.
- Тышкы 5V электр байланышы.
- Жарык диоддорун башкаруу үчүн транзисторлорду жана драйверлерди (ULN2803) колдонуу менен электрдин бекемдигин жогорулатыңыз.
Эскертүү:
Бул акыркы пунктка байланыштуу мен бул компоненттер жөнүндө менин башка инструкциямды окууну сунуштайм:
Shift Register 74HC595ти ULN2803, UDN2981 жана BC327 менен колдонуу
PCB өндүрүү:
Дизайн бүткөндөн кийин, мен аны Кытайдагы ПХБ өндүрүүчүсүнө ар кандай жергиликтүү жеткирүүчүлөр менен жана ар кайсы өлкөлөрдө көптөгөн издөөлөрдөн кийин жөнөттүм.
Негизги маселе такталардын суммасына жана баасына байланыштуу болду, анткени мага алардын бир нечеси гана керек.
Акыр -аягы, мен Кытайдагы бир компания менен болгону 10 тактайга үзгүлтүксүз заказ берүүнү чечтим.
3 күндөн кийин гана тактайлар даярдалып, мага 4 күндүн ичинде дүйнөнү кыдыруу үчүн жөнөтүлдү.
Жыйынтыктар сонун болду !!
Сатып алуу заказынан кийин бир жуманын ичинде тактайлар менин колумда болчу жана мен алардын жогорку сапатына жана тез ылдамдыгына абдан таң калдым!
4 -кадам: Программалоо
Программалоо үчүн аппараттык дизайн жана 74HC595 нөөмөт реестри жөнүндө кээ бир маанилүү түшүнүктөрдү эстен чыгарбоо керек.
74HC595тин негизги функциясы-8 биттик сериялык кирүүнү 8 параллелдүү чыгууга которуу.
Бардык сериялык маалыматтар #14 пинге кирет жана ар бир саат сигналында биттер анын параллелдүү чыккычтарына (Qa to Qh) өтөт.
Эгерде сиз дагы көбүрөөк маалыматтарды жөнөтүүнү уланта берсеңиз, биттер биринин артынан бири #9 (Qh ') пинге жылдырылат жана бул функцияга байланыштуу каскадга туташкан башка чиптерди койсоңуз болот.
Маанилүү:
Бул долбоордо бизде 74HC595 үч IC бар. Биринчи эки колонканы көзөмөлдөө үчүн иштейт (Позитивдүү логика менен) жана акыркысы линияларды көзөмөлдөө үчүн (PNP транзисторлорунун иштешине байланыштуу терс логика менен).
Позитивдүү логика сиз Ардуинодон жогорку деңгээлдеги сигналды (+5V) жөнөтүшүңүз керек дегенди билдирет жана Негатив логика LOW деңгээлдеги сигналды (0V) жөнөтүшүңүз керек дегенди билдирет.
LED диод матрицасы
- Биринчиси, кызыл диоддордун катоддорунун чыгышы үчүн (8 x) >> COLUMN RED (1ден 8ге чейин).
- Экинчиси Жашыл LED катоддорунун чыгышы үчүн (8 x) >> COLUMN GREEN (1ден 8ге чейин).
- Акыркысы, бардык светодиоддордун аноддорун чыгаруу үчүн (08 x Red & Green) >> LINES (1ден 8ге чейин).
Мисалы, эгер сиз 1 -графанын жана 1 -сызыктын Жашыл LEDин гана күйгүзгүңүз келсе, анда сериялык маалыматтардын төмөнкү ырааттуулугун жөнөтүшүңүз керек:
1º) САТЫРЛАР
~ 10000000 (биринчи гана линия күйгүзүлгөн) - ~ белгиси - бардык биттерди 1ден 0гө чейин жана тескерисинче.
2º) КОЛОННА Жашыл
10000000 (Жашыл LEDдин биринчи тилкеси күйгүзүлгөн)
3º) КОЛОНКА КЫЗЫЛ
00000000 (кызыл светодиоддордун бардык мамылары өчүк)
Arduino билдирүүлөрү:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000); // Саптар үчүн терс логика
shiftOut (dataPin, clockPin, LSBFIRST, B10000000); // Жашыл мамычалар үчүн оң логика
shiftOut (dataPin, clockPin, LSBFIRST, B00000000); // Кызыл мамычалар үчүн оң логика
Эскертүү:
Сиз ошондой эле эки LEDди (Жашыл жана Кызыл) айкалыштырып, сары түсүн төмөнкүдөй өндүрө аласыз:
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 (В сегментин коюу)
00100000 (C сегментин коюу)
00010000 (D сегментин коюу)
00001000 (E сегментин коюу)
00000100 (F сегментин коюу)
00000010 (G сегментин коюу)
00000001 (DP орнотуу)
Arduino мисалы, Display #2ди 3 саны менен орнотууга:
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000); // DISPLAY 2 орнотуу (Терс логика)
shiftOut (dataPin, clockPin, LSBFIRST, 0); // Маалыматты нөлгө коюу (колдонулган эмес)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010); // A, B, C, D, G сегменттерин коюу)
Акыр -аягы, бул процессти колдонуу менен сиз дисплейиңиздин каалаган LEDин башкара аласыз жана сизге керектүү өзгөчө белгилерди түзө аласыз.
5 -кадам: Тестирлөө
Бул жерде Дисплей модулунун иштешинин мисалы катары эки программа бар.
1) Countdown дисплейи (999,9 секунддан нөлгө чейин)
2) Чекит матрицасы (Сандар 0ден 9га чейин жана Алфавит Адан Zга чейин)
3) 4 цифрадан жана 7 сегменттен турган LED дисплейиндеги Digital Clock RTC
Бул акыркы санариптик сааттын биринчи версиясынын жаңыртылышы.
6 -кадам: Жыйынтык жана кийинки кадамдар
Бул модуль кээ бир LED дисплейлерин талап кылган келечектеги бардык долбоорлордо пайдалуу болот.
Кийинки кадамдар катары мен алар менен каскад режиминде иштөө үчүн бир нече такталарды чогултам жана программалоону ого бетер жөнөкөйлөштүрүү үчүн китепкананы дагы өнүктүрөм.
Бул долбоор сизге жакты деп ишенем.
Сураныч, мага комментарийлериңизди жөнөтүңүз, анткени бул бул Нускаманын долбоорун жана маалыматын жакшыртуу үчүн маанилүү.
Урматтоо менен, ЛАГСИЛВА
26. Май.2016
Сунушталууда:
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: 6 кадам (сүрөттөр менен)
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: Бул үйрөткүчтө мен сизге бир эле аналогдук кирүүчү пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окууну көрсөтөм
Nodemcu модулу менен бир нече PZEM 004T туташуу: 3 кадам
Nodemcu модулу менен бир нече PZEM 004T туташтыруу: Power уурдоону аныктоо тутуму же энергия мониторинг системасы сыяктуу кээ бир долбоорлордо бир нече PZEM 004T модулдарынын талабы керек, ошондуктан бул жерде мен Nodemcu кодун жана 3 PZEM 004T модулдарынын Nodemcu.if менен байланышы менен камсыз кылдым. анда к
Python жана Raspberry Piнин GPIO пиндери менен бир нече LEDди башкаруу: 4 кадам (сүрөттөр менен)
Python жана Raspberry Piнин GPIO казыктары менен бир нече светодиоддорду көзөмөлдөө: Бул Нускамада RaspberryPiдеги 4 светодиодду иштетүү үчүн бир нече GPIO төөнөгүчтөрүн кантип башкарууну көрсөтөт. Ал ошондой эле Pythonдогу параметрлер жана шарттуу билдирүүлөр менен тааныштырат
Бир нече баскычтарды Arduinoдогу бир пинге туташтыруу: 4 кадам
Бир нече баскычтарды Arduino'догу бир пинге туташтыруу: Саламатсыздарбы, Arduino долбоорлоруңузда жаркыраган светодиоддору ашып кеткенде, сиз өзүңүзгө кошумча казыктарга муктаж болуп калышыңыз мүмкүн. Мен сизге бир кнопканы көрсөтөм, анда сиз бир эле баскычка ээ боло аласыз, бардыгы бир эле аналогдук пинге туташкан
Fusion 360 бир нече денени бир STL файлы катары экспорттоо: 5 кадам
Fusion 360 бир нече денени бир STL файлы катары экспорттоо: Мен биринчи жолу Fusion 360 колдоно баштаганымда, менин эң жакшы көргөн өзгөчөлүктөрүмдүн бири 3D моделинен 3D басып чыгарууга өтүү болгон. Башка эч кандай программалык камсыздоо жумшак иштөө процессин камсыз кылган эмес. Эгерде сиздин модельде бир гана дене бар болсо, муну жасоо абдан жөнөкөй. Бирок