Жарықдиодты матрица Shift регистрлерін қолданады: 7 қадам (суреттермен)
Жарықдиодты матрица Shift регистрлерін қолданады: 7 қадам (суреттермен)
Anonim
Жарықдиодты матрица Shift регистрлерін қолданады
Жарықдиодты матрица Shift регистрлерін қолданады
Жарықдиодты матрица Shift регистрлерін қолданады
Жарықдиодты матрица Shift регистрлерін қолданады
Жарықдиодты матрица Shift регистрлерін қолданады
Жарықдиодты матрица Shift регистрлерін қолданады

Бұл нұсқаулық интернетте қол жетімді басқаларға қарағанда толық түсіндіруге арналған. Атап айтқанда, бұл LED Marquee LED555 нұсқаулығынан гөрі аппараттық түсініктеме береді.

Мақсаттар

Бұл нұсқаулық ауысымдық регистрлер мен жоғары жүргізушілерге қатысты ұғымдарды ұсынады. Бұл түсініктерді 8х8 жарықдиодты матрицамен суреттеу арқылы мен сізге жобаның талап етілетін өлшемі мен орналасуына бейімделуге және кеңейтуге қажетті құралдарды ұсынамын деп үміттенемін.

Тәжірибе мен дағдылар

Мен бұл жобаны орташа қиындық деп бағалар едім:

  • Егер сізде микроконтроллерлерді бағдарламалау және жарық диодтармен жұмыс істеу тәжірибесі бар болса, бұл жобаны аяқтау және шамдардың үлкен массивтерін масштабтау оңай болуы керек.
  • Егер сіз микроконтроллерлерді жаңадан бастаған болсаңыз және бір немесе екі жарық диодты жарықтандырсаңыз, сіз бұл жобаны біздің досымыз google -дің көмегімен аяқтай аласыз.
  • Егер сізде микроконтроллерлермен немесе бағдарламалауда тәжірибе аз болса немесе мүлде болмаса, бұл сізге қажет нәрседен асып кетуі мүмкін. Бірнеше жаңадан бастаушы жобаларды қолданып көріңіз және микроконтроллерлерге арналған бағдарламаларды жазу тәжірибесі бар кезде оралыңыз.

Жауапкершіліктен бас тарту және несие

Біріншіден, мен инженер -электрик емеспін. Егер сіз дұрыс емес нәрсені көрсеңіз немесе ең жақсы тәжірибе болмаса, маған хабарлаңыз, мен түзетуді жасаймын. Сіз не істеп жатқаныңызды білуіңіз керек немесе сіздің компьютеріңізге, микроконтроллеріңізге және тіпті өзіңізге зиян келтіруі мүмкін. Мен интернеттен, әсіресе форумдардан көп нәрсені білдім: https://www.avrfreaks.net Мен қолданамын ks0108 әмбебап C кітапханасымен бірге келген қаріптер жиынтығы. Мына жерден қараңыз:

1 -қадам: бөлшектер

Бөлшектер тізімі

Жалпы бөліктер

Жарықдиодты 8x8 тор жасау және оларды басқару үшін сізге қажет:

  • Сіз таңдаған 64 жарық диоды
  • Светодиодтар үшін 8 резистор
  • 1 Бағандар үшін Shift регистрі
  • 1 Жолдар үшін драйвер жиыны
  • 8 Драйвер массивін ауыстыруға арналған резисторлар
  • 1 микроконтроллер
  • Микроконтроллер үшін 1 сағат көзі
  • 1 прототиптік тақта
  • 1 қуат көзі
  • Қосылатын сым

Мұнда қолданылатын арнайы бөлшектер

Бұл нұсқаулық үшін мен төмендегілерді қолдандым:

  • 64 жасыл жарық диоды (Mouser бөлігі #604-WP7113GD)
  • Жарықдиодты шамдар үшін 220 Ом 1/4 ватт резисторлар (Mouser бөлігі #660-CFS1/4CT52R221J)
  • 1 ауысымдық регистрі бар HEF4794 жарықдиодты драйвер (Mouser бөлігі #771-HEF4794BPN)
  • 1 mic2981 жоғары вольтты жоғары ток көзінің драйвері (Digikey бөлігі #576-1158-ND)
  • Драйвер массивін ауыстыруға арналған 8,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)
  • Дәнекерленбейтін тақта (Radio Shack № 276-169 бөлігі (енді жоқ, көріңіз: 276-002)
  • AVR Dragon (Mouser бөлігі #556-ATAVRDRAGON)
  • Ecros Technologies ұсынған Dragon Rider 500: Бұл нұсқаулықты қараңыз

Бөлшектерге қатысты ескертулер

Жолдар мен бағандар драйверлері: Мүмкін бұл жобаның ең қиын бөлігі - жолдар мен баған драйверлерін таңдау. Біріншіден, 74HC595 стандартты ауысым регистрі бұл жерде жақсы идея деп ойламаймын, себебі олар біз жарық диодтары арқылы жібергіміз келетін токты басқара алмайды. Сондықтан мен HEF4794 драйверін таңдадым, себебі ол барлық 8 светодиодтар бір қатарда қосылған кезде ағымдағы сыйымдылықты оңай түсіріп жіберуі мүмкін. Бізге бірнеше бағандарды біріктіру үшін жеткілікті ток беретін жол драйвері қажет. Mic2981 500 мА дейін жеткізе алады. Мен бұл тапсырманы орындайтын жалғыз бөлік UDN2981 (№ 620-1120-ND бөлімі), ол басқа өндірушіге тиесілі. Егер сіз осы қосымшада жақсы жұмыс істейтін басқа жоғары деңгейлі драйверлерді білсеңіз, маған хабарлама жіберіңіз. Үлкен жарықдиодты массив бірнеше матрицаны біріктіру арқылы құрылуы мүмкін және олар «модульдік ұғымдар» қадамында талқыланады. Егер сіз үлкен массив алғыңыз келсе, бір уақытта барлық қажетті бөлшектерге тапсырыс беріңіз. Бір ыңғайлы пакетте 8х8, 5х7 және 5х8 жарықдиодты матрицалар бар. Олар DIY матрицасын оңай ауыстыруы керек. Ebay - бұл үшін жақсы дереккөз. Mouser-де 5x7 қондырғылары бар, мысалы, № 604-TA12-11GWA бөлігі. Мен арзан жасыл светодиодтарды қолдандым, себебі мен жай ғана ойнап, көңіл көтеремін. Жарықтығы жоғары, тиімділігі жоғары жарықдиодты шамаларға көбірек жұмсау сізге керемет көрінетін дисплей шығаруға мүмкіндік береді … бұл мен үшін жеткілікті! Аппараттық құралдарды басқару: матрицаны Atmel AVR микроконтроллері басқарады. Бұл үшін сізге бағдарламашы қажет. Мен прототиптеуді жүргізгендіктен, мен Dragon Rider 500 -ді қолданамын, ол үшін мен құрастыру және пайдалану нұсқауларын жаздым. Бұл прототиптеудің қарапайым құралы, мен оны ұсынамын.

2 -қадам: матрица

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

Мен бұл жобаға 5 мм жарықдиодты және Radio Shack прототиптеу тақтасын қолдана отырып, жеке жарықдиодты матрицаны құратын боламын. Айта кету керек, 8x8 нүктелік матрицалық модульдерді бірнеше көздерден, соның ішінде ebay -ден сатып алуға болады. Олар осы нұсқаулықпен жақсы жұмыс істеуі керек.

Құрылысқа қатысты ойлар

Сәйкестендіру светодиодтары бір бағытта бір бұрышта болатындай етіп туралануы керек. Мен жарық диодты жарықтандырғыштың корпусын тақтаға қойып, оны кішкене плексиглас пен қысқышпен ұстаудың ең оңай нұсқасын таптым. Плексигласс прототиптеу тақтасына параллель екеніне көз жеткізу үшін мен жұмыс істеген қатардан бірнеше дюйм қашықтықта бірнеше светодиодты орнаттым. Жолдар мен бағандар драйверін таңдауға байланысты бізге анодты (жарық диодтың оң сымы) және катодты (светодиодтың теріс сымы) бағанға қосу керек. Басқару сымдары Бұл прототип үшін мен қатты ядролы (бір өткізгішті) қосылатын сымды қолданамын. Бұл дәнекерленген тақтаймен жұмыс жасау үшін өте оңай болады. Сіздің жобаңызға сәйкес келетін басқа қосқыш түрін қолданыңыз.

Матрицаны құру

1. Жарықдиодтардың бірінші бағанын прототиптеу тақтасына салыңыз.2. Әр жарықдиодты полярлықтың дұрыстығын екі рет тексеріңіз, егер оны кейінірек түсінсеңіз, оны түзету өте қиын болады. Жарық диодының екі сымын да тақтаға дәнекерлеңіз. Олардың дұрыс тураланғанына көз жеткізіңіз (біртүрлі бұрыштарда емес) және катод сымдарын ажыратыңыз. Анодтық сымның қысылмайтындығына көз жеткізіңіз, бұл бізге қажет болады, сондықтан оны жоғары қаратып көрсетіңіз. Қатты өзек сымнан оқшаулауды алып тастаңыз. Бұл сымды әр катодқа борт деңгейінде дәнекерлеңіз.

  • Мен мұны әр шетінен ұстадым, содан кейін қайтып оралдым және әр торапқа аздап дәнекерледім.
  • Бұл сым соңғы светодиодтың жанынан өтуі керек, біз басқару сымдарын қосқанда интерфейс жеңіл болады.

5. Барлық жарық диодты шамдар орнатылғанша және барлық бағаналық шиналар дәнекерленгенше 1-4 бөліктерін қайталаңыз. Қатар шинасын құру үшін анодтардың бірнеше жолдарын 90 градус бұрышта бүгіңіз, осылайша олар бір қатардағы басқа анодтарға жетеді.

  • Бұл туралы төменде егжей -тегжейлі суреттер бар.
  • Қысқа тұйықталуды тудыратын олардың колонналық автобустармен байланысқа түспеуін қадағалаңыз.

7. Өткізгіштерді әр түйіспеге дәнекерлеңіз және анодтың артық сымдарын алыңыз.

Соңғы анодты соңғы жарық диодына жабыстырыңыз. Бұл қатардағы драйверлерді басқару сымдарын қосу үшін қолданылады

8. Барлық қатардағы автобустар дәнекерленгенше 6 және 7 бөліктерін қайталаңыз. Басқару сымдарын бекітіңіз.

  • Мен жолдар үшін қызыл, ал бағандар үшін қара қатты сымды қолдандым.
  • Әр бағанға бір сымды және әр жолға бір сымды қосыңыз. Мұны әр автобустың соңында оңай жасауға болады.

Маңызды

Бұл жарықдиодты матрицада ток шектейтін резисторлар жоқ. Егер сіз мұны резисторсыз тексерсеңіз, онда сіз светодиодты күйдіріп алуыңыз мүмкін, және бұл жұмыстың бәрі бекер болады.

3 -қадам: басқару аппараттық құралы

Басқару аппараттық құралы
Басқару аппараттық құралы
Басқару аппараттық құралы
Басқару аппараттық құралы

Біз жарық диодты матрицаның бағандары мен жолдарын бақылауымыз керек. Матрица анодтар (жарық диодтың кернеу жағы) жолдарды құрайтын етіп құрастырылған, ал катодтар (жарық диодтың жер жағы) бағандарды құрайды. Бұл дегеніміз, біздің жол драйвері ток көзін алуы керек, ал баған драйвері оны төмендетуі керек, түйреуіштерді үнемдеу үшін бағандарды басқару үшін ауысым регистрін қолданамын. Осылайша мен төрт микроконтроллердің штыры бар бағандардың шексіз санын басқара аламын. Егер Enable Output pin тікелей кернеуге байланған болса, тек үшеуін қолдануға болады. Мен ауысым регистрі бар HEF4794 жарықдиодты драйверді таңдадым. Бұл 74HC595 стандартты нұсқасынан гөрі жақсы нұсқа, себебі ол барлық 8 жарықдиодты бір уақытта қосылған кезде ағымдағы қуатты оңай сөндіре алады. Жоғары жағында (жолдар үшін ағымдағы көз) мен mic2981 қолданамын. Схемада UDN2981 көрсетілген, менің ойымша, бұл екеуі бір -бірін алмастырады. Бұл драйвер 500 мА дейінгі токты шығара алады. Біз бір уақытта тек 1 қатар жүргізетіндіктен, бұл чип үшін 33 бағанға дейін кеңейтуге көп мүмкіндік береді (бұл туралы «модульдік ұғымдар» қадамында).

Басқару аппаратурасын құру

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

  • Mic2981 (немесе UDN2981) тақтасына салыңыз
  • 9 -істікті кернеуге қосыңыз (бұл схемада шатастырады)
  • 10 -түйреуішті жерге қосыңыз (бұл схемада шатастырады)
  • 1-8 түйреуішке қосылатын 3к3 резисторды салыңыз
  • ATmega8 (PD0-PD8) D портынан 8 резисторға қосыңыз
  • Жарықдиодты матрицаның 8 қатарлы басқару сымдарын 11-18 түйреуіштерге жалғаңыз (светодиодтардың ең төменгі қатарын 18-штырьге, ал ең жоғарғы жолды түйреуішке 11-ге қосқанымды ескеріңіз).

2. Бағана жүргізушісі

  • Hef4794 тақтасына салыңыз
  • 16 -істікті кернеуге қосыңыз
  • 8 -түйреуішті жерге қосыңыз
  • 4-7 және 11-14 түйреуіштеріне 220 Ом резисторларын қосыңыз.
  • Жарық диодты матрицадан 8 бағаналы басқару сымдарын жаңа қосылған 8 резисторға қосыңыз.
  • Pin1 (ысырманы) ATmega8 PC0 -ге қосыңыз
  • Pin2 (Деректер) ATmega8 PC1 -ге қосыңыз
  • Pin3 (сағатты) ATmega8 PC2 -ге қосыңыз
  • Pin15 (шығуды қосу) ATmega8 PC3 -ке қосыңыз

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

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

4. Интернет провайдері

Схемада көрсетілгендей бағдарламалау тақырыбын қосыңыз

5. Сүзгі конденсаторы мен тартылатын резистор

  • ATmega8 -ге берілген кернеуді сүзгілеу жақсы. ATmega8 7 және 8 түйреуіштері арасындағы 0,1 уф конденсаторды қолданыңыз
  • Қалпына келтіру түйреуішін өзгермелі күйде қалдыруға болмайды, себебі ол кездейсоқ қалпына келтіруге әкелуі мүмкін. Оны кернеуге қосу үшін резисторды қолданыңыз, шамамен 1k шамасында бәрі жақсы болуы керек. Мен схемада 10 к резисторды қолдандым.

6. +5в реттелетін қуатты пайдаланғаныңызға көз жеткізіңіз. Реттегішті құрастыру сізге байланысты.

4 -қадам: Бағдарламалық қамтамасыз ету

Айла

Иә, бәрі сияқты, айла бар. Айла -шарғы - бір уақытта 8 жарық диодты жарықтандыруға болмайды. Бұл жақсы жұмыс істеуі үшін аздап бағдарламалау қажет. Мен таңдаған тұжырымдама - таймер үзілісін қолдану. Міне, дисплейдің үзілуі қарапайым ағылшын тілінде қалай жұмыс істейді:

  • Таймер белгілі бір уақытқа дейін есептеледі, үзіліс кезінде қызмет көрсету режимі іске қосылады.
  • Бұл тәртіп келесі жолдың қайсысы көрсетілетінін шешеді.
  • Келесі жолға арналған ақпарат буферден қаралады және баған драйверіне ауысады (бұл ақпарат «бекітілмеген», сондықтан ол әлі көрсетілмейді).
  • Жол жүргізушісі өшірілген, қазіргі уақытта ешқандай жарық диоды жанбайды.
  • Бағанның драйвері екі қадам бұрын жылжытылған ақпаратты көрсететін ағымдағы ақпаратты «бекітеді».
  • Жол драйвері біз көрсететін жаңа жолға ток береді.
  • Үзіліс қызмет көрсету тәртібі аяқталады және бағдарлама келесі үзіліске дейін қалыпты ағымға оралады.

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

Ауысым регистрлері: қалай

Мен ауысымдық регистрлермен қалай бағдарламалау керектігін қосуды шештім. Бұл бұрын олармен жұмыс істемегендердің жағдайын анықтайды деп үміттенемін Shift Register бір сымнан сигнал қабылдайды және бұл ақпаратты көптеген түйреуіштерге шығарады. Бұл жағдайда деректерді қабылдайтын бір деректер сымы және қандай деректер алынғанына байланысты басқарылатын 8 түйреуіш бар. Жағдайды жақсарту үшін әр ауысым регистрі үшін басқа ауысымдық регистрдің кіріс түйреуішіне қосылуға болатын шығыс бар. Бұл каскадтық деп аталады және кеңейту әлеуетін шексіз перспективаға айналдырады. Control PinsShift регистрлерінде 4 басқару түйреуі бар:

  • Бекіткіш - бұл түйін ауысым регистріне жаңадан енгізілген деректерге ауысу уақыты келгенде хабарлайды
  • Деректер - 1 және 0 сандары ауысым регистріне осы түйреуіште қандай түйреуіштерді алу керектігін айтады.
  • Сағат - бұл микроконтроллерден жіберілетін импульс, ол ауысым регистріне деректерді оқуды және байланыс процесінің келесі кезеңіне өтуді айтады.
  • Шығуды қосу - бұл қосу/өшіру қосқышы, Жоғары = Қосу, Төмен = Өшіру

Бұл сіздің ұсыныстарыңызды орындауға мәжбүр етеді: Міне, жоғарыда көрсетілген басқару түйреуіштерінің жұмысындағы апаттық курс: 1 -қадам: Бекіткішті, деректерді және сағатты төмен қою

Бекіткішті төмен қою біз жазатын ауысым регистрін айтады

2 -қадам: Shift реестріне жіберілетін логикалық мәнге деректер түйреуін орнатыңыз

Қазіргі уақытта Shift реестріндегі барлық басқа мәндер 1 орынға жылжиды, бұл деректер түйреуішінің ағымдағы логикалық мәніне орын береді

4 -қадам: Сағат түйреуішін төмен орнатыңыз және барлық деректер ауысым регистріне жіберілгенше 2 және 3 -қадамдарды қайталаңыз.

Келесі Деректер мәніне ауыспас бұрын сағат штыры төмен орнатылуы керек. Бұл түйреуішті жоғары мен төменге ауыстыру - бұл «сағат импульсін» тудыратын нәрсе, бұл процестің келесі кезеңіне қашан өту керектігін білуі керек

5 -қадам: Бекіткішті жоғары орнатыңыз

Бұл ауысым регистріне барлық деректерді қабылдауға және оны шығыс түйреуіштерді іске қосу үшін пайдалануға мүмкіндік береді. Бұл деректерді ол өзгеріп жатқан кезде көрмейсіз дегенді білдіреді; ысырма жоғары орнатылмайынша шығыс түйреуіштерінде ешқандай өзгеріс болмайды

6 -қадам: Enable Output Output параметрін орнатыңыз

  • Қалған үш басқару түйреуішімен не болып жатқанына қарамастан, Enable Output параметрі жоғары күйге орнатылмайынша, түйреуіш шығысы болмайды.
  • Егер сіз қаласаңыз, бұл түйреуішті әрқашан жоғары қалдыруға болады

Каскадтау үшін пайдалануға болатын екі түйреуіш бар: Os және Os1. Os - тез көтерілетін сағаттарға, Os1 - баяу көтерілетін сағаттарға арналған. Бұл түйреуішті келесі ауысым регистрінің деректер түйреуішіне бекітіңіз және осы чиптен асып кету келесіге енгізіледі.

Дисплейге адрестеу

Мысал бағдарламасында row_buffer деп аталатын 8 байтты массив құрдым. Әр байт 8x8 дисплейінің бір қатарына сәйкес келеді, 0 -жол төменгі және 7 -жол жоғарғы. Әр қатардың ең кіші биті оң жақта, ең маңызды биті сол жақта. Дисплейді өзгерту, бұл деректер массивіне жаңа мән жазу сияқты оңай, үзіліс қызмет көрсету режимі дисплейді жаңартуға қамқорлық жасайды.

Бағдарламалау

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

Әрекетте

Чипті бағдарламалағаннан кейін дисплейде «Сәлем әлемі!» Міне, жарықдиодты матрицаның әрекеттегі бейнесі. Бейне сапасы өте төмен, өйткені мен мұны тиісті бейне немесе веб -камера емес, сандық камераның бейне мүмкіндігімен жасадым.

5 -қадам: Модульдік түсініктер

Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер
Модульдік түсініктер

Бұл жоба ауқымды. Жалғыз шынайы шектеу факторы сіздің қуат көзіңіз қанша ток бере алатындығында болады. (Басқа ақиқат - сізде қанша светодиодтар мен регистрлердің ауыстырғыштары бар).

Математика

Мен светодиодтарды шамамен 15 мА (5V-1.8vDrop/220ohms = 14.5mA) жүргіземін. Бұл mic2981 драйверімен (500мА/15мА = 33,3) 33 бағанаға дейін жүргізе алатынымды білдіреді. 8 -ге бөлінгенде бұл 4 ауысымдық регистрді біріктіруге мүмкіндік беретінін көреміз. Сондай -ақ, барлық 32 бағанның солдан оңға созылуының қажеті жоқ екенін ескеріңіз. Сіз оның орнына 8x32 массивінде болатындай 16х16 массив жасай аласыз. Бұл мәселені 4 байтқа ауыстыру арқылы шешуге болады. Алғашқы екеуі 9 -шы қатардағы светодиодқа ауысады, екінші екі байт бірінші қатарға ауысады. Екі қатар да жол жүргізушісінің бір түйреуішінен алынатын болады.

Каскадты ауысым регистрлері

Қолданылатын ауысым регистрлері каскадты ауысым регистрі болып табылады. Бұл дегеніміз, сіз деректерді ауыстырған кезде, Os түйреуішінде толып кету пайда болады. Бұл ауысу регистрлерінің жиынтығын бір -бірімен байланыстыруға болатындықтан өте пайдалы болады, осылайша Data pin -ге әрбір жаңа чиппен 8 баған қосылады. Барлық ауысым регистрлері бірдей бекіткішке, сағатқа қосылады және шығыс түйреуіштерін қосады. микроконтроллер. «Каскадты» эффект бірінші ауысым регистрінің ОС екіншісінің деректер түйреуішіне қосылған кезде жасалады. Бағандар санын көбейту үшін бағдарламалауды өзгерту қажет болады. Ақпаратты сақтайтын буфер де, әр баған үшін ақпаратты ауыстыратын функция бағандардың нақты санын көрсету үшін жаңартылуы керек.

Көп қатарлы жүргізушілер

Жол драйвері (mic2981) 32 бағанға жету үшін жеткілікті ток бере алады. Егер сіз 32 бағаннан артық алғыңыз келсе ше? Бірнеше қатарлы драйверлерді микроконтроллердің түйреуішін пайдаланбай пайдалану керек, біз жарықдиодты жарықтандыру үшін жеткілікті ток көзі болуы үшін жол драйверлерін қажет етеміз. Егер сіз бір уақытта жарықтандыруға мүмкін болатын бағандарды көбірек қолдансаңыз, қосымша жол драйверлері қажетті токты бере алады. Микроконтроллерден бірдей кіріс түйреуіштері қолданылады, сондықтан жолдарды қарап шығуды өзгерту қажет емес. Басқаша айтқанда, әрбір драйвер 8x32 блогының жолдарын басқарады. Жолдардың 64 ФИЗИКАЛЫҚ орналасуы бірдей болуы мүмкін болса да, біз бірінші 32 бағанның 8 жолына бір драйверді, ал екінші 32 бағананың 8 жолына екінші драйверді қолдана отырып, жол шиналарын екіге бөлеміз. Мысал ретінде төменде оның схемасы келтірілген. Ықтимал қателіктер: 1. Баған саны бірдей бірнеше жол драйверлерін пайдаланбаңыз. Бұлай ету әр ауысымдық тіркеу түйреуіші бір уақытта бірнеше жарықдиодты жүргізетінін білдіреді. Сізде әр қатардағы драйвер үшін 8 резистордың жиынтығы болуы керек (3к3), бірнеше қатардағы драйверлерге арналған бір жиынтық жұмыс істемейді, себебі ол қақпаларды ауыстыру үшін қажетті токты қамтамасыз етпейді.

Мысалы

Мен бұрын жасаған матрицаны кеңейтуді шештім. Мен тағы 15 қатарға тағы 7 жолды қостым, себебі мен осы протобер тақтасына сыйғыза аламын. Мен Instructables «Let It Glow» деп аталатын конкурс туралы білдім. Міне, менің бұл туралы ойымның видеосы. Тағы да, мен бұрын бейнекамераға түсірген сандық камера әділдікке жатпайды. Бұл адам көзіне керемет көрінеді, әсіресе барлық светодиодтар жыпылықтайтын жерде, бірақ бейнеде жақсы көрінбейді. Ләззат алыңыз: осы үлкен дисплейдің бастапқы коды төменде берілген.

6 -қадам: Қорытынды

Мүмкін болатын толықтырулар

I2CI екі сымды интерфейстің (I2C) түйреуіштерін осы дизайнда қолданылмай қалдырды. Бұл екі түйреуішті қолдануға болатын бірнеше қызықты перспективалар бар. I2C EEPROM қосу әлдеқайда үлкен хабарларды сақтауға мүмкіндік береді. Mega8 -ді I2C үйлесімді дисплей драйверіне айналдыру үшін бағдарламалауды жобалау мүмкіндігі де бар. Бұл I2C шинасынан өткізу арқылы жарық диодты массивте ақпаратты көрсетуге арналған USB қосатын құрылғының болуына мүмкіндік береді. Енгізу Түймешіктерге немесе инфрақызыл қабылдағышқа қолдануға болатын көптеген түйреуіштер қалды. Бұл хабарларды мәзір жүйесі арқылы бағдарламалауға мүмкіндік береді. Біреуі дисплейге таңбаларды жазады, екіншісі таңбаларды дисплейге жылжытады. Есте сақтаудың маңыздысы - жарықта көргендеріңіз деректер массивінде бейнеленген. Егер сіз деректер массивін өзгертудің ақылды әдістерін ойлап тапсаңыз, шамдар дәл осылай өзгереді, кейбір қызықты мүмкіндіктер бағандардан графикалық есептегіш құруды қамтиды. Бұл стерео сигналдық анализатор ретінде қолданылуы мүмкін. Айналдыруды жоғарыдан төменге немесе төменнен жоғарыға, тіпті солдан оңға қарай жүргізуге болады. Сәттілік, көңілді болыңыз!

7 -қадам: Бақылау

Бақылау
Бақылау
Бақылау
Бақылау
Бақылау
Бақылау
Бақылау
Бақылау

Контроллер тізбегін бірнеше ай бойы тақтаға отырғызуға рұқсат бергеннен кейін, мен бұл прототипті біріктіру үшін бірнеше схемаларды жасадым. Бәрі керемет өтті, мен басқаша жасар едім деп ойламаймын.

Электр тізбегінің ерекшеліктері

  • Ауысым регистрлері дисплейдің көлемін ұлғайту үшін тізбектеліп байлануы мүмкін бөлек тақталарда болады.
  • Контроллер тақтасында өзінің қуат реттегіші бар, сондықтан оны 7в-30в қамтамасыз ететін кез келген қуат көзі басқара алады.
  • 6 істікшелі провайдер тақырыбы енгізілген, сондықтан микроконтроллерді тақтадан шығармай қайта бағдарламалауға болады.
  • I2C шинасын болашақта қолдану үшін 4 істікшелі тақырып. Бұл eeprom үшін көбірек хабарларды сақтауға немесе оны басқа микроконтроллер басқаратын құлдық құрылғыға айналдыруға қолданылуы мүмкін (RSS кез келген адамды белгілей ме?)
  • Дизайнға 3 лездік батырмалар енгізілген. Мен болашақта микробағдарламаны осы түймелердің қолданылуын қосу үшін өзгерте аламын.

Ассамблея

Маған плексиглас, бұрыштық кронштейндер, 6х32 бұрандалар, жаңғақтар мен шайбалар, сондай -ақ тесіктерге арналған шүмек беріңіз, мен бәрін жасай аламын.

«Жарқылдасын» екінші сыйлығы!

Ұсынылған: