Мазмуну:

Shift реестрин колдонуу менен LED Matrix: 7 кадам (Сүрөттөр менен)
Shift реестрин колдонуу менен LED Matrix: 7 кадам (Сүрөттөр менен)

Video: Shift реестрин колдонуу менен LED Matrix: 7 кадам (Сүрөттөр менен)

Video: Shift реестрин колдонуу менен LED Matrix: 7 кадам (Сүрөттөр менен)
Video: Аял ТӨШӨКТӨ болгусу келгенин кантип билдирет? | ЖЫНЫСТЫК катнашты КААЛАП жатканын айтабы? | ТОШОК 2024, Июль
Anonim
LED Matrix Shift реестрлерин колдонуу
LED Matrix Shift реестрлерин колдонуу
LED Matrix Shift реестрлерин колдонуу
LED Matrix Shift реестрлерин колдонуу
LED Matrix Shift реестрлерин колдонуу
LED Matrix Shift реестрлерин колдонуу

Бул көрсөтмө интернетте жеткиликтүү болгондорго караганда толук түшүндүрмө болушу керек. Белгилей кетчү нерсе, бул LED555 тарабынан көрсөтүлүүчү LED Marqueeде жеткиликтүү болгондон дагы аппараттык түшүндүрмө берет.

Максаттар

Бул көрсөтмө сменалык реестрлер жана жогорку айдоочулар менен байланышкан түшүнүктөрдү берет. Бул түшүнүктөрдү 8x8 LED матрицасы менен сүрөттөө менен, мен сизге долбоордун талап кылган өлчөмүнө жана макетине ылайыкташуу жана кеңейтүү үчүн керектүү шаймандарды берем деп үмүттөнөм.

Тажрыйба жана көндүмдөр

Мен бул долбоорду орточо татаал деп баалайт элем:

  • Эгерде сизде микроконтроллерлерди программалоо жана светодиод менен иштөө тажрыйбасы бар болсо, анда бул проектти толтуруу жана чоңураак жарык масштабына чейин жеткирүү оңой болушу керек.
  • Эгерде сиз микроконтроллерлерди жаңыдан баштап жатсаңыз жана бир же эки светодиодду күйгүзсөңүз, бул долбоорду биздин досубуз гуглдун жардамы менен бүтүрүшүңүз керек.
  • Эгерде сизде микроконтроллерлер же программалоо боюнча тажрыйбасы аз болсо же жок болсо, анда бул сиз өзүңүз кабыл ала турган нерседен ашып түшүшү мүмкүн. Башка бир нече башталгыч долбоорлорду сынап көрүңүз жана микроконтроллерлер үчүн программаларды жазуу боюнча дагы тажрыйбага ээ болгондон кийин кайтып келиңиз.

Жоопкерчиликтен баш тартуу жана Кредит

Биринчиден, мен инженер -электрик эмесмин. Эгерде сиз туура эмес нерсени көрүп жатсаңыз, же эң жакшы тажрыйба жок болсо, мага кабарлаңыз, мен оңдоону жасайм. Сиз эмне кылып жатканыңызды билишиңиз керек, же сиз компьютериңизге, микроконтроллериңизге, ал тургай өзүңүзгө зыян келтиришиңиз мүмкүн. Мен интернеттен, айрыкча форумдардан көп нерсени үйрөндүм: https://www.avrfreaks.net ks0108 универсалдуу С китепканасы менен келген шрифт топтому. Бул жерден текшериңиз:

1 -кадам: Бөлүктөр

Бөлүктөр тизмеси

Жалпы бөлүктөр

Светодиоддордун 8x8 сеткасын жасоо жана аларды башкаруу үчүн сизге керек болот:

  • Сиз тандаган 64 LED
  • LED үчүн 8 резистор
  • 1 Мамычалар үчүн Shift реестри
  • 1 саптар үчүн драйвер массиви
  • Айдоочу массивин которуу үчүн 8 резистор
  • 1 микроконтроллер
  • Микроконтроллер үчүн 1 саат булагы
  • 1 прототип тактасы
  • 1 электр менен камсыздоо
  • Кошуу зымы

Бул жерде колдонулган конкреттүү бөлүктөр

Бул көрсөтмө үчүн мен төмөнкүлөрдү колдондум:

  • 64 жашыл LED (Mouser бөлүгү #604-WP7113GD)
  • LED үчүн 8 220ohm 1/4 ватт резисторлор (Mouser бөлүгү #660-CFS1/4CT52R221J)
  • 1 HEF4794 светодиод менен LED айдоочу (Mouser бөлүгү #771-HEF4794BPN)
  • 1 mic2981 Жогорку вольттуу жогорку токтун булагы драйвери (Digikey бөлүгү #576-1158-ND)
  • Айдоочу массивин которуу үчүн 8 3.3 кох 1/4 ватт резисторлор (Radio Shack бөлүгү #271-1328)
  • 1 Atmel ATmega8 микроконтроллери (Mouser бөлүгү #556-ATMEGA8-16PU)
  • Микроконтроллер саат булагы үчүн 1 12 МГц кристалл (Mouser бөлүгү #815-AB-12-B2)
  • 1 2200 тешиктүү прототипдөө тактасы (Radio Shack бөлүгү #276-147)
  • ATX энергия менен камсыздоо: Бул Нускаманы караңыз
  • Катуу өзөк 22-awg илгич зымы (Radio Shack бөлүгү #278-1221)
  • Solderless breadboard (Radio Shack бөлүгү #276-169 (мындан ары жеткиликтүү эмес, аракет кылыңыз: 276-002)
  • AVR Dragon (Mouser бөлүгү #556-ATAVRDRAGON)
  • Ecros Technologies тарабынан Dragon Rider 500: Бул Нускаманы караңыз

Бөлүктөргө байланыштуу эскертүүлөр

Катардын жана мамычанын айдоочулары: Балким, бул долбоордун эң татаал бөлүгү катар жана мамыча айдоочуларын тандоо. Биринчиден, бул жерде 74HC595 стандарттык реестри жакшы идея деп ойлобойм, анткени алар биз LED аркылуу жөнөткүбүз келген токту башкара алышпайт. Бул мен HEF4794 драйверин тандадым, анткени ал бардык 8 ледтер бир катарда күйгүзүлгөндө учурдагы учурду бат эле чөктүрүп коет. Эмне регистри төмөн жагында (ледтердин жерге төөнөгүчү) бар. Бизге бир нече мамычаларды бириктирүү үчүн жетиштүү токту бере ала турган сап айдоочусу керек болот. Mic2981 500 мА чейин жеткире алат. Бул тапшырманы аткарган башка бөлүк UDN2981 (башка бөлүк #620-1120-ND), башка өндүрүшчүнүн бир бөлүгү. Сураныч, эгерде сиз бул тиркемеде жакшы иштей турган башка жогорку деңгээлдеги драйверлерди билсеңиз, мага билдирүү жөнөтүңүз. Чоңураак LED массиви бир нече матрицаларды бириктирип курулушу мүмкүн жана "модулдук түшүнүктөр" кадамында талкууланат. Эгерде сиз чоң массивди кааласаңыз, керектүү бөлүктөрдүн бардыгын бир убакта заказ кылыңыз. 8x8, 5x7 жана 5x8 LED матрицалары бир ыңгайлуу пакетте бар. Булар DIY матрицасын алмаштырууга оңой болушу керек. Ebay булар үчүн жакшы булак. Мусерде 5x7 бирдиктери бар, мисалы #604-TA12-11GWA. Мен арзан жашыл диоддорду колдондум, анткени мен жөн эле ойноп, көңүл ачып жатам. Жогорку жарыктыкка, жогорку эффективдүү светодиоддорго көбүрөөк сарптоо сизди алда канча укмуштуудай көрүнүүчү дисплейди чыгарууга мүмкүндүк берет … бул мен үчүн жетиштүү! Башкаруу жабдуулары: матрицаны Atmel AVR микроконтроллери башкарат. Бул үчүн сизге программист керек болот. Мен прототиптеп жаткандыктан, мен Dragon Rider 500 колдонуп жатам, ал үчүн мен монтаждоо жана колдонуу боюнча көрсөтмөлөрдү жазгам. Бул прототиптөө үчүн оңой курал жана мен аны абдан сунуштайм.

2 -кадам: Матрица

Матрица
Матрица
Матрица
Матрица
Матрица
Матрица

Мен бул проект үчүн 5мм леддерди жана Radio Shackтин прототипдөө тактасын колдонуп, жеке LED матрицамды курам. Белгилей кетүүчү нерсе, 8x8 чекиттүү матрицалуу модулдарды бир нече булактан, анын ичинде ebayдан сатып алсаңыз болот. Алар бул көрсөтмө менен жакшы иштеши керек.

Курулуш ойлору

LEDs тегизделиши керек, ошондуктан алар бир эле бурчта бир багытка туш болушат. Мен эң оңой вариантты таптым - бул LED флештин корпусун тактага коюу жана аны кичинекей плексиглас жана кыскыч менен кармоо. Мен плексигласс прототиптештирүү тактасы менен параллель экенине ынануу үчүн иштеп жаткан катарымдан бир нече дюймду ордуна бир нече светодиод коюп койдум. Катардын жана мамычанын айдоочусунун тандоосунан улам, биз анодду (LEDдин оң коргошун) катар менен жана катодду (LEDдин терс коргошун) мамыча менен байланыштырышыбыз керек. Бул прототип үчүн мен катуу ядро (бир өткөргүч) илгич зымын колдонуп жатам. Бул ширетилбеген нан менен иштөө үчүн абдан оңой болот. Долбооруңузга ылайыктуу башка туташтыргычты колдонуңуз.

Матрицаны куруу

1. Прототипдөө тактасына LEDSтин биринчи тилкесин коюңуз.2. Ар бир LED үчүн полярдуулугуңуздун туура экенин эки жолу текшериңиз, кийинчерээк түшүнсөңүз, аны оңдоо өтө кыйын болот. LEDдин эки коргошун да тактага туташтырыңыз. Алардын туура тегизделгенин текшериңиз (кызыктай бурчтарда эмес) жана катоддорду алып салыңыз. Аноддун коргошун кыскартпаганыңызды текшериңиз, бизге кийинчерээк керек болот, андыктан аны өйдө каратып коюңуз. Катуу негизги зымдын бир бөлүгүнөн изоляцияны алып салыңыз. Бул зымды ар бир катодго тактанын деңгээлинде ээрчиңиз.

  • Мен муну ар бир учунда кармадым, андан кийин артка кайтып, ар бир түйүнгө бир аз ширетүүчү кошуп койдум.
  • Бул зым көзөмөлдөөчү зымдарды кошкондо жеңил интерфейс үчүн акыркы LEDыңыздын жанынан өтүшү керек.

5. 1-4-бөлүктөрдү бардык Светодиоддор орнотулганга чейин жана баардык мамычалуу автобустар soldered.6 чейин кайталаңыз. Катардын шинасын түзүү үчүн, аноддун бир нече жолун 90 градуска буруп, ошол эле саптагы башка аноддорго тийип коюңуз.

  • Мунун деталдуу сүрөттөрү төмөндө бар.
  • Кыска туташууну жаратып, булардын колонна автобустары менен байланышуусуна жол бербеңиз.

7. Ар бир кесилиште коргошундарды ширетип, ашыкча аноддорду үзүңүз.

Акыркы анодду акыркы LEDдын жанына калтырыңыз. Бул катар айдоочунун башкаруу зымдарын туташтыруу үчүн колдонулат

8. 6 жана 7 -бөлүктөрдү бардык катардагы автобустар ширетилгенче кайталаңыз.9. Башкаруучу зымдарды бекиткиле.

  • Мен саптар үчүн кызыл, негизги мамычалар үчүн кара катуу зым колдондум.
  • Ар бир мамыга бир зымды жана ар бир сапка бирден туташтырыңыз. Муну ар бир автобустун аягында оңой эле жасаса болот.

Маанилүү

Бул LED матрицасында учурдагы чектөөчү резисторлор жок. Эгер сиз муну резисторсуз сынап көрсөңүз, анда сиз светодиоддорду күйгүзүп жиберишиңиз мүмкүн жана мунун баары бекер болот.

3 -кадам: Control Hardware

Control Hardware
Control Hardware
Control Hardware
Control Hardware

Биз LED матрицабыздын мамыларын жана катарларын көзөмөлдөшүбүз керек. Матрица аноддор (LEDдин чыңалуу тарабы) катарларды, катоддорду (светодиоддун жер жагы) мамыларды түзө тургандай кылып курулган. Бул биздин сап айдоочубузга учурдагы булакты, ал эми мамычабыздын айдоочусуна чөгүп кетиши керек дегенди билдирет. Пиндерди сактоо үчүн мен мамычаларды башкаруу үчүн нөөмөт реестрин колдонуп жатам. Ошентип, мен төрт эле микроконтроллердин төөнөгүчтөрү менен чексиз мамычаларды башкара алам. Enable Output пини чыңалууга түз байланган болсо, үчөөнү гана колдонууга болот. Мен HEF4794 светодиод менен LED айдоочуну тандап алдым. Бул стандарттык 74HC595ке караганда жакшы вариант, анткени бардык 8 светодиоддор бир убакта күйүп турганда, азыркы учурду оңой эле чөктүрүп жибериши мүмкүн. Жогорку тарапта (катарлар үчүн учурдагы булак) мен mic2981 колдонуп жатам. Схема UDN2981ди көрсөтөт, менимче, бул экөө бири -бирин алмаштырат. Бул драйвер 500мАга чейин токту ала алат. Биз бир убакта 1 катар гана айдап бара жаткандыктан, бул чип үчүн 33 мамыга чейин кеңейтүү үчүн көп мүмкүнчүлүктөрдү берет (бул тууралуу көбүрөөк "модулдук түшүнүктөр" кадамында).

Башкаруу аппараттык жабдууларын куруу

Бул үйрөткүч үчүн мен бул схеманы жөн эле нанга түшүрдүм. Туруктуу чечим үчүн, сиз өзүңүздүн платаңызды чийип салууну же прототипдөө тактасын колдонууну каалайсыз. Жол айдоочусу

  • Mic2981 (же UDN2981) нан тактасына коюңуз
  • Pin 9ду чыңалууга туташтырыңыз (Бул схемада түшүнүксүз)
  • Pin 10ду жерге туташтырыңыз (Бул схемада түшүнүксүз)
  • 1-8 пинге туташкан 3k3 резисторлорун салыңыз
  • ATmega8 (PD0-PD8) D портунан 8 резисторго туташыңыз
  • LED матрицасынын 8 катар башкаруу зымдарын 11-18 пинге туташтырыңыз (LEDдин эң төмөнкү катарын 18-пинге жана эң жогорку сапты пин-11ге туташтырганымды эске алыңыз).

2. Колоннанын айдоочусу

  • Hef4794ди нан тактасына коюңуз
  • Pin 16ны чыңалууга туташтырыңыз
  • Pin 8ди жерге туташтырыңыз
  • 4-7 жана 11-14 пиндерине 220 омдук резисторлорду туташтырыңыз.
  • LED матрицасынан 8 мамычаны башкаруу зымдарын жаңы эле туташтырылган 8 резисторго туташтырыңыз.
  • Pin1ди (Latch) ATmega8дин PC0 -ге туташтырыңыз
  • Pin2ди (Маалыматты) ATmega8дин PC1ине туташтырыңыз
  • Pin3 (Саатты) ATmega8дин PC2'ине туташтырыңыз
  • Pin15ти (Чыгууну иштетүү) ATmega8дин PC3'ине туташтырыңыз

3. Кристалл сааты

12 МГц кристаллды туташтырыңыз жана схемада көрсөтүлгөндөй конденсаторлорду жүктөңүз

4. ISP

Схемада көрсөтүлгөндөй программалоо башын туташтырыңыз

5. Фильтрлөөчү конденсатор жана тартма каршылык

  • ATmega8ге берилген чыңалууну чыпкалоо эң жакшы. 0.1me конденсаторун ATmega8дин Pin 7 жана 8 ортосунда колдонуңуз
  • Баштапкы абалга келтирүүчү пинди калкып таштап кетүүгө болбойт, анткени ал кокусунан баштапкы абалга келтириши мүмкүн. Аны чыңалууга туташтыруу үчүн резисторду колдонуңуз, 1к жөнүндө эч нерсе болбошу керек. Мен схемада 10k каршылыгын колдондум.

6. +5v жөнгө салынуучу кубатты колдонуп жатканыңызды текшериңиз. Бул жөндөгүчтү долбоорлоо сизге байланыштуу.

4 -кадам: Программалык камсыздоо

Куулук

Ооба, бардык нерселер сыяктуу эле, бир амал бар. Куулук - бул бир убакта 8ден ашык LED диаметри жок. Бул жакшы иштеши үчүн, бир аз амалкөй программалоо керек. Мен тандаган түшүнүк - таймердин үзүлүшүн колдонуу. Бул жерде дисплей үзгүлтүгү жөнөкөй англисче кантип иштейт:

  • Таймер белгилүү бир чекитке чейин эсептейт, качан үзгүлтүккө учуроо кызматы иштейт.
  • Бул тартип кийинки кезекте кайсы катар көрсөтүлөрүн чечет.
  • Кийинки саптын маалыматы буферден каралат жана мамычанын драйверине которулат (бул маалымат "бекитилген эмес", ошондуктан ал азырынча көрсөтүлө элек).
  • Катардын айдоочусу өчүрүлгөн, учурда эч кандай светодиод күйгөн эмес.
  • Мамычанын айдоочусу, биз көрсөтө турган учурдагы маалыматты эки кадам мурун жылдырган маалыматка "жабылган".
  • Катар айдоочу биз көрсөткөн жаңы сапка ток берет.
  • Үзгүлтүккө учуроо кызматы үзгүлтүккө учурап, программа кийинки үзгүлтүккө чейин кадимки агымга кайтат.

Бул абдан тез болот. Үзгүлтүк ар бир 1 секундага ыргытылат. Бул 8 мсек секундда бир жолу бүтүндөй дисплейди жаңыртып жатканыбызды билдирет. Бул болжол менен 125 Гц дисплей ылдамдыгын билдирет. Жарыктыкка байланыштуу кандайдыр бир кооптонуу бар, анткени биз диоддорду 1/8 кызмат циклинде иштетип жатабыз (алар 7/8 иштебейт). Менин учурда, мен жаркыраган дисплейге ээ болом, ал толугу менен LED дисплейи массивде чагылдырылган. Үзгүлтүктөрдүн ортосунда массив өзгөртүлүшү мүмкүн (атомдук жөнүндө эстен чыгарбаңыз) жана кийинки үзгүлтүк учурунда дисплейде пайда болот. бул насаат. Мен баштапкы кодду (C менен жазылган жана AVR-GCC менен түзүлгөн), ошондой эле hex файлды түз программалоого кошконмун. Мен коддун бардыгын комментарийледим, ошондуктан сиз муну менен нөөмөт реестрине маалыматтарды кантип алуу жана саптарды жаңыртуу кандай иштеп жаткандыгы боюнча суроолорду чечүү үчүн колдоно алышыңыз керек. ks0108 универсалдуу С китепканасы. Бул китепкананы бул жерден тапса болот:

Shift реестрлери: кантип

Мен сменалык регистрлер менен кантип программалоо керектигин кошууну чечтим. Мен муну алар менен иштебегендер үчүн тазалайт деп үмүттөнөм. Алар эмне Shift реестрине бир зымдан сигнал алып, ошол маалыматты ар кандай казыктарга чыгарышат. Бул учурда, маалыматтарды кабыл алган бир маалымат зымы жана кандай маалыматтар алынганына жараша көзөмөлдөнүүчү 8 казык бар. Жакшыртуу үчүн, башка нөөмөт регистринин кирүү пинине туташтырыла турган ар бир сменалык регистр үчүн бир шкаф бар. Бул каскаддык деп аталат жана кеңейтүү потенциалын дээрлик чексиз келечекке айландырат.

  • Бекитүүчү - Бул пин жаңы которулган маалыматка өтүү убактысы келгенде нөөмөт реестрин билдирет
  • Маалыматтар - 1 жана 0 коммутаторлору бул пинге кандай пинтер кабыл алынарын айтышат.
  • Саат - Бул микроконтроллерден жөнөтүлгөн импульс, ал нөөмөт реестрине маалыматтарды окуп, байланыш процессинин кийинки баскычына өтүүсүн айтат.
  • Чыгууну иштетүү - Бул күйгүзүү/өчүрүү, Жогорку = Күйгүзүү, Төмөн = Өчүрүү

Муну өзүңүздүн сунушуңузга айландыруу: Бул жерде жогоруда көрсөтүлгөн көзөмөл казыктарынын иштөө курсу: 1 -кадам: Latch, Data жана Саатты төмөн коюу

Latch'ти төмөн коюу, биз ага жазганы жаткан нөөмөт реестрин билдирет

2 -кадам: Shift реестрине жөнөткүңүз келген логикалык мааниге маалыматтар пинин коюңуз 3 -кадам: Shift реестрине учурдагы маалыматтар пиндин маанисинде окууну айтып, саат пинин бийик коюңуз.

Учурда Shift реестриндеги бардык башка баалуулуктар 1 орунга жылат, бул маалымат пининин учурдагы логикалык маанисине орун берет

4 -кадам: Саат пинин төмөн коюңуз жана бардык маалыматтар нөөмөт реестрине жөнөтүлгөнгө чейин 2 жана 3 -кадамдарды кайталаңыз.

Кийинки Дата маанисине өтүүдөн мурун саат пини төмөн коюлушу керек. Бул пинди жогорку менен төмөндүн ортосунда алмаштыруу, "сааттын импульсун" жаратат, бул нөөмөттүн регистри процесстин кийинки баскычына качан өтөөрүн билиши керек

5 -кадам: Latchти жогору коюңуз

Бул сменалык реестрге которулган бардык маалыматтарды алып, аны чыгаруу чыккычтарын иштетүү үчүн колдонууну айтат. Бул маалыматтарды алмаштырып жаткан учурда көрбөй турганыңызды билдирет; Latch жогору коюлмайынча, чыгуучу пиндерде эч кандай өзгөрүү болбойт

6 -кадам: Чыгууну иштетүүнү орнотуңуз

  • Башка үч контролдук казык менен эмне болуп жатканына карабастан, Enable Output жогорку деңгээлге коюлмайынча, пин чыгаруу болбойт.
  • Кааласаңыз, бул пин дайыма бийик калтырылышы мүмкүн

Каскаддоо үчүн колдоно турган эки казык бар, Os жана Os1. Os тез көтөрүлүүчү сааттар үчүн жана Os1 жай көтөрүлүүчү сааттар үчүн. Бул пинди кийинки нөөмөт реестринин маалымат пинине илип коюңуз жана бул чиптен ашып кетүү кийинкиге киргизилет.

Дисплейге кайрылуу

Мисал программасында мен row_buffer деп аталган 8 байттын массивин түздүм. Ар бир байт 8x8 дисплейдин бир катарына туура келет, 0 -катар асты жана 7 -сап жогорку. Ар бир саптын эң кичине мааниси оңдо, эң маанилүүсү битте. Дисплейди өзгөртүү бул маалымат массивине жаңы маанини жазуу сыяктуу оңой, үзгүлтүккө учуроо кызматы дисплейди жаңыртууга кам көрөт.

Программалоо

Бул жерде программалоо майда -чүйдөсүнө чейин талкууланбайт. Мен сизге DAPA программалоо кабелин колдонбоңуз деп эскертип койгом, анткени чип 12 МГцте иштеп баштаганда, аны программалай албайсыз деп ишенем. Бардык башка стандарттык программисттер иштеши керек (STK500, MKII, Dragon, Parallel/Serial programmers, etc.).

Иш -аракетте

Чипти программалагандан кийин дисплей "Hello World!" Жылдызын жылдырышы керек. Бул жерде иш -аракеттердеги LED матрицасынын видеосу. Видеонун сапаты абдан төмөн, анткени мен муну туура видео же веб -камера эмес, санарип камерамдын видео өзгөчөлүгү менен жасадым.

5 -кадам: Модулдук түшүнүктөр

Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр
Модулдук түшүнүктөр

Бул долбоор масштабдуу. Жалгыз чыныгы чектөөчү фактор - бул сиздин электр менен камсыздооңуз канчалык ток бере алат. (Башка чындык - сизде канча LED жана реестрди алмаштыруу бар).

Математика

Мен светодиоддорду болжол менен 15mA (5V-1.8vDrop/220ohms = 14.5mA) айдап жатам. Бул mic2981 драйвери менен (500мА/15мА = 33.3) 33 колоннага чейин айдай алам дегенди билдирет. 8ге бөлүнгөндө, бул 4 сменалык регистрди бириктирүүгө мүмкүндүк берерин көрө алабыз. Ошондой эле бардык 32 мамычанын солдон оңго созулушунун кереги жок экенин эске алыңыз. Сиз анын ордуна 8x32 массивине окшош зымдалган 16x16 массивин түзө аласыз. Бул 4 байтка жылдыруу аркылуу чечилет …. биринчи экөө 9 -катардагы леддерге өтүшмөк, экинчи эки байт биринчи катарга өтүшмөк. Эки катар тең сап айдоочунун бир пини менен алынмак.

Каскаддык Shift реестрлери

Колдонулган сменалык регистрлер каскаддык сменалык регистр. Бул сиз маалыматтарды которгондо, толуп кетүү Os пининде пайда болот дегенди билдирет. Ар бир жаңы чип менен 8 мамычаны кошуп, маалымат пинине Os pinин бири -бирине туташтырууга болот, анткени бул абдан пайдалуу болуп калат. Бардык сменалык регистрлер ошол эле Latch, Clock жана Enable Output pins менен туташат. микроконтроллер. "Каскаддык" эффект биринчи сменанын регистринин Ос экинчисинин Маалымат пинине туташканда түзүлөт. Мамычалардын көбөйгөн санын чагылдыруу үчүн программалоону өзгөртүү керек болот. Маалыматты сактаган буфер да, ар бир мамычанын маалыматын алмаштыруучу функция да мамычалардын чыныгы санын чагылдыруу үчүн жаңыртылышы керек. Мунун схемасы мисал катары төмөндө келтирилген.

Бир нече катар айдоочулар

Катардын драйвери (mic2981) 32 мамычаны айдай турган жетиштүү токту ала алат. Эгер сиз 32 тилкеден көбүрөөк кааласаңызчы? Бул дагы микроконтроллерди колдонбостон, бир нече катар драйверлерди колдонууга мүмкүн болушу керек. Эгерде сиз бир убакта жарык берүү мүмкүн болгон тилкелерди колдонуп жатсаңыз, кошумча айдоочулар керектүү токту бере алышат. Микроконтроллердин ошол эле киргизүү пиндери колдонулат, андыктан саптарды сканерлөөнү өзгөртүүнүн кажети жок. Башкача айтканда, ар бир айдоочу 8x32 блогунун катарларын көзөмөлдөйт. 64 колонкада ФИЗИКАЛЫК катар жайгашуусу болушу мүмкүн болсо да, биз катар автобустарын экиге бөлөбүз, биринчи 32 тилкенин 8 катарына бир драйверди, экинчи 32 тилкенин 8 катарына экинчи айдоочуну ж.б. Мунун схемасы мисал катары төмөндө келтирилген. Потенциалдуу адашуулар: 1. Бирдей мамычалуу бир нече катар драйверлерди колдонбоңуз. Бул ар бир сменалык регистрдин пини бир убакта бирден ашык LEDди айдап кетет дегенди билдирет. Сизде ар бир катар айдоочу үчүн 8 резистордун (3к3) топтому болушу керек, бир нече катардагы драйверлер үчүн бир комплект иштебейт, анткени ал дарбазаны алмаштыруу үчүн керектүү токту бербейт.

Мисалы

Мен мурда курган матрицамды кеңейтүүнү чечтим. Мен дагы 15 катарга дагы 7 катар коштум, анткени мен бул протоберге туура келем. Мен дагы Instructables "Let It Glow" деп атаган конкурс жөнүндө билдим. Бул жерде менин бул боюнча алган видео. Дагы бир жолу, мен видеого тартып жүргөн санарип камера адилеттүүлүккө жатпайт. Бул адамдын көзүнө абдан жакшы көрүнөт, айрыкча бардык светодиоддор жарк эткен жерде, бирок видеодо анча жакшы көрүнбөйт. Ырахат: Бул чоңураак дисплейдин баштапкы коду төмөндө камтылган.

6 -кадам: Жыйынтык

Мүмкүн болгон толуктоолор

I2CI бул дизайнда колдонулбаган Two Wire Interface (I2C) казыктарын калтырды. Бул эки казыкты колдоно турган бир нече кызыктуу келечек бар. I2C EEPROMдун кошулушу алда канча чоң билдирүүлөрдү сактоого мүмкүндүк берет. Mega8ди I2C менен шайкеш дисплей драйверине айлантуу үчүн программалоону иштеп чыгуу келечеги дагы бар. Бул I2C bus. Input аркылуу өтүү менен LED массивинде маалыматтарды көрсөтүү үчүн USB иштетүүчү түзүлүшкө ээ болуу мүмкүнчүлүгүн ачат. Баскычтар же IR кабыл алгыч үчүн колдонула турган көптөгөн казыктар калды. Бул билдирүүлөрдү меню системасы аркылуу программалоого мүмкүндүк берет. Бири дисплейге тамга жазат, экинчиси дисплейге белгилерди жылдырат. Эстен чыгарбоо керек болгон нерсе, жарыкта көргөн нерселериңиздин маалымат массивинде чагылдырылышы. Эгерде сиз маалымат массивин өзгөртүүнүн акылдуу жолдорун ойлоп тапсаңыз, анда жарыктар дагы ушундай эле түрдө өзгөрөт. Бул стерео менен сигнал анализатору катары колдонулушу мүмкүн. Жылдыруу өйдөдөн ылдыйга, ал тургай солдон оңго чейин ишке ашырылышы мүмкүн. Ийгилик, көңүл ачыңыз!

7 -кадам: ээрчүү

Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү
Аягына жеткирүү

Контроллердин схемасын бир нече ай бою нан тактасына отургузууга уруксат бергенден кийин, мен бул прототипти бириктирүү үчүн бир нече схемаларды тактап иштеп чыктым. Баары сонун болду, мен башкача кылмакмын деп ойлобойм.

Circuit Board өзгөчөлүктөрү

  • Shift реестрлери дисплейдин чоңдугун жогорулатуу үчүн чынжырланып байланган өзүнчө такталарда.
  • Контроллер тактасында өзүнүн кубат жөнгө салуучусу бар, андыктан аны 7v-30v (9v батарея же 12v отургуч менен камсыздоочу бардык булактар) иштете алат, экөө тең мен үчүн жакшы иштейт).
  • 6 пин провайдердин баш аталышы камтылган, андыктан микроконтроллерди тактан чыгарбастан кайра программалоого болот.
  • I2C автобусун келечекте колдонуу үчүн жеткиликтүү 4-пин баш. Бул eeprom үчүн көбүрөөк билдирүүлөрдү сактоо үчүн же аны башка микроконтроллер көзөмөлдөгөн кулдук түзмөк кылуу үчүн колдонулушу мүмкүн (RSS кимди белгилейт?)
  • 3 ирмемдик баскычтар дизайнга киргизилген. Мен келечекте бул баскычтарды колдонууну камтыган камтылган программаны өзгөртө алам.

Ассамблея

Мага плексигласс, бурчтук кашаалар, 6х32 машинанын бурамаларын, гайкаларды жана шайбаларды, ошондой эле тешиктерге жип орнотулган крандан бериңиз, мен каалаган нерсени жасай алам.

Экинчи сыйлык "Жаркырай берсин!"

Сунушталууда: