LED матрицаас өөрөө хийх туяа. Хаягтай LED матрицууд

Заримдаа долоон сегментийн индикаторууд эсвэл LED матрицыг микроконтроллерт холбох шаардлагатай байдаг бол мэдээллийг харуулахын тулд динамик үзүүлэлтийг ашигладаг. Динамик заалтын мөн чанар нь индикаторуудын мэдээллийг дараалан харуулах явдал юм. Доорх диаграмм нь динамик заалтыг хэрэгжүүлэхийн тулд хэд хэдэн долоон сегментийн үзүүлэлтүүдийг (жишээлбэл, нийтлэг катодтой) холбох жишээг харуулж байна, ерөнхийдөө цэгийг харгалзан үзэхэд 8 сегментийг олж авсан боловч хуучин хэв маягаар тэдгээр нь байна. ингэж дуудсан. Ижил нэртэй сегментүүдийн бүх дүгнэлт (анод) нь резистороор дамжуулан микроконтроллерт холбогдсон нийт 8 шугамтай холбогдсон байна. Индикатор бүрийн нийтлэг катод нь микроконтроллерт транзистороор холбогддог.


Заагч алгоритм нь дараах байдалтай байна: нэгдүгээрт, бид эхний индикатор дээр аль сегментийг асаах ёстойгоос (зүүнээс баруун тийш заагч) шаардлагатай логик түвшнийг шугаман дээр тавьдаг. сегментийг унтраа. Дараа нь бид VT1 транзисторын суурь дээр өндөр логик түвшинг ашигладаг бөгөөд ингэснээр эхний индикаторын нийтлэг катод нь нийтлэг утсанд холбогдсон бөгөөд энэ мөчид тэдгээр сегментүүд асч, анод дээр логик нэгж байрладаг. дамжуулан тодорхой хугацаа(түр зогсолт) транзисторын сууринд бага логик түвшинг тавьж индикаторыг унтрааж, дараа нь хоёр дахь индикаторт зориулагдсан гаралтын мэдээллийн дагуу шугам дээрх логик түвшинг дахин өөрчилж, асаах дохиог өгнө. транзистор VT2. Тиймээс дугуй мөчлөгийн дарааллаар бид бүх үзүүлэлтүүдийг сольж өгдөг, энэ нь бүхэл бүтэн динамик үзүүлэлт юм.

Анивчихгүйгээр хатуу дүрсийг авахын тулд сэлгэн залгалтыг өндөр хурдтайгаар хийх ёстой бөгөөд LED-ийг анивчихаас сэргийлж, сэргээх хурдыг 70 Гц ба түүнээс дээш давтамжтайгаар тохируулах ёстой, би үүнийг ихэвчлэн 100 Гц болгон тохируулдаг. Дээрх барилгын хувьд түр зогсолтыг дараах байдлаар тооцоолно: 100 Гц давтамжийн хувьд хугацаа нь 10 мс, зөвхөн 4 үзүүлэлт байдаг бөгөөд тус бүрийн гэрэлтүүлгийн хугацааг 10/4 = 2.5 мс-ээр тогтооно. Нэг орон сууцанд олон оронтой долоон сегментийн үзүүлэлтүүд байдаг бөгөөд тэдгээрт ижил нэртэй сегментүүд нь орон сууцны дотор холбогдсон байдаг бөгөөд мэдээжийн хэрэг тэдгээрийг ашиглахын тулд динамик үзүүлэлтийг ашиглах шаардлагатай байдаг.

Динамик заалтыг хэрэгжүүлэхийн тулд таймеруудын аль нэгийг халах үед тасалдлыг ашиглах шаардлагатай. TMR0 таймер ашиглан кодыг доор харуулав.

;Долоон сегментийн 4 үзүүлэлтийн динамик заалтыг хэрэгжүүлэх;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; swapf БАЙДАЛ,W ; clrf БАЙДАЛ; movwf STATUS_TEMP ; ; bcf ind1 ;1-р заагчийг унтраах bcf ind2 ;2-р үзүүлэлтийг унтраах bcf ind3 ;3-р үзүүлэлтийг унтраах bcf ind4 ;4-р үзүүлэлтийг унтраах; incf shet,F ;increment register shet movlw .5 ;регистрийн агуулгыг шалгах shet xorwf shet,W ;5 btfss STATUS,Z-тэй тэнцүү эсэхийг шалгах; goto met1 ;шэт регистр дэх тоо 5 movlw-тэй тэнцүү биш .1 ;шэт регистрийн тоо 5: 1-ийн movwf shet ;шэт регистрд бичих; met1 movlw .1 ;регистрийн агуулгыг шалгах shet xorwf shet,W ;1 тоотой тэнцүү btfss БАЙДАЛ,Z ; goto met2 ;shet регистр дэх тоо 1-тэй тэнцүү биш: met2 руу шилжих movf datind1,W ;shet регистрийн тоо 1-тэй тэнцүү: movwf PORTB ;datind1 регистрийн агуулгыг PORTB регистр рүү хуулах bsf ind1 ;1-р үзүүлэлтийг асаана met2 movlw .2 ;регистрийн агуулгыг шалгах shet xorwf shet,W ;2 btfss STATUS,Z-тэй тэнцүү; goto met3 ;shet регистр дэх тоо 2-той тэнцүү биш: met3 руу шилжих movf datind2,W ;shet регистр дэх тоо 2: movwf PORTB-г хуулах ;datind2 регистрийн агуулгыг PORTB регистр рүү bsf ind2 ;2-р заагчийг асаах goto exxit ;үсрэх label exxit met3 movlw .3 ; бүртгэлийн агуулгыг шалгах shet xorwf shet,W ;3 btfss STATUS,Z-тэй тэнцүү; goto met4 ;shet регистрийн тоо 3-тай тэнцүү биш: met4 руу шилжих movf datind3,W ;shet регистр дэх тоо 3: movwf PORTB-г хуулах ;datind3 регистрийн агуулгыг PORTB регистр рүү bsf ind3 ;3 дахь заагчийг асаах goto exxit ;үсрэх label exxit met4 movf datind4,W ;datind3 регистрийн агуулгыг хуулах movwf PORTB ;PORTB регистр bsf ind4 руу ;4-р заагчийг асаана; movlw .100 ;таймерын регистрт 156 гэж бичнэ TMR0 movwf TMR0 ; ; movwf БАЙДАЛ; swapf W_TEMP,F ; swapf W_TEMP,W; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Үндсэн програм ................. movlw b"11010011" ; OPTION_REG, үүгээрээ дотоод тохиргоог хийнэ; урьдчилсан масштабын харьцааг 1:16 тохируулна; clrf shet ; эхлэхээс өмнө бүртгэлийн хуудсыг дахин тохируулах; TMR0 халих үед тасалдсан, гүйцэтгэсэн; clrf datind1 ;clrf datind2 руу мэдээлэл гаргах регистрүүдийг цэвэрлэх ;заагч, энэ нь clrf datind3 ;заагчийг нийтлэг clrf datind4 ;катод; bcf INTCON,T0IF ; TMR0 халих тасалдлыг арилгах bsf INTCON,T0IE ; TMR0 халих тасалдлыг идэвхжүүлэх bsf INTCON,GIE ; глобал тасалдлыг идэвхжүүлэх; movlw b"00000110" ; 13.52 гаралтын жишээ movwf datind1 ; movlw b"11001111" ; movwf огноотой2 ; movlw b"01101101" ; movwf огноо3 ; movlwb"01011011" ; movwf огноо4 ; ; . ................; ...................; ...................; ; төгсгөл ; бүх хөтөлбөрийн төгсгөл;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Долоон сегментийн 4 үзүүлэлтийн динамик заалтыг хэрэгжүүлэх

;Жишээ нь цагийн давтамж 4 МГц, машины цикл 1 мкс

org 0000h ;програмын гүйцэтгэлийг 0000h хаягаар эхлүүлнэ

Эхлэх рүү оч; Эхлэх шошго руу оч

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Тасалдлын горим

org 0004h ;дэд программыг 0004h хаягаар эхлүүлнэ

movwf W_TEMP ;түлхүүр бүртгэлийн утгыг хадгалах

swapf БАЙДАЛ,W ;

movwf STATUS_TEMP ;

bcf ind1 ;1-р үзүүлэлтийг унтраа

bcf ind2 ;2 дахь заагчийг унтраа

bcf ind3 ;3 дахь заагчийг унтраа

bcf ind4 ;4 дэх үзүүлэлтийг унтраа

incf shet,F ;retirment shet-ийг нэмэгдүүлэх

movlw .5 ; бүртгэлийн хуудасны агуулгыг шалгана уу

xorwf shet,W ; 5-тай тэнцүү

btfss БАЙДАЛ,Z ;

goto met1 ;регистр дэх тоо 5-тай тэнцүү биш байна

movlw .1 ;шэт регистр дэх тоо 5: 1-ийг бичнэ

movwf shet ;шэт бүртгүүлэх

met1 movlw .1 ; shet регистрийн агуулгыг шалгана уу

xorwf shet,W; 1-ийн тоотой тэнцүү

btfss БАЙДАЛ,Z ;

goto met2 ;шэт регистр дэх тоо 1-тэй тэнцүү биш: met2 руу үсрэх

movf datind1,W ;шэт регистр дэх дугаар нь 1: хуулбар

movwf PORTB ; datind1-ийн агуулгыг PORTB бүртгэлд бүртгэнэ

bsf ind1 ;1-р заагчийг асаана уу

goto exxit; гарах шошго руу оч

met2 movlw .2 ; shet регистрийн агуулгыг шалгана уу

xorwf shet,W ; 2-той тэнцүү

btfss БАЙДАЛ,Z ;

goto met3 ;шэт регистр дэх тоо 2-той тэнцүү биш: met3 руу үсрэх

movf datind2,W ;шэт регистр дэх дугаар нь 2: хуулбар

movwf PORTB ; datind2-ийн агуулгыг PORTB бүртгэлд бүртгэнэ

bsf ind2 ;2 дахь заагчийг асаана уу

goto exxit; гарах шошго руу оч

met3 movlw .3 ; shet регистрийн агуулгыг шалгана уу

xorwf shet,W ; 3 тоотой тэнцүү

btfss БАЙДАЛ,Z ;

goto met4 ;шэт регистр дэх тоо 3-тай тэнцүү биш: met4 руу үсрэх

movf datind3,W ;шэт регистрийн дугаар 3: хуулбар

movwf PORTB ; datind3 регистрийн агуулгыг PORTB бүртгэлд оруулна

bsf ind3 ;3 дахь заагчийг асаана уу

goto exxit; гарах шошго руу оч

met4 movf datind4,W; datind3 бүртгэлийн агуулгыг хуулах

movwf PORTB; PORTB бүртгэл рүү

bsf ind4 ;4 дэх индикаторыг асаана уу

exxit bcf INTCON,T0IF ;TMR0 халих тасалдлын далбааг дахин тохируулах

movlw .100 ;TMR0 таймер регистрт 156 дугаар бичнэ

swapf STATUS_TEMP,W ; түлхүүр регистрүүдийн агуулгыг сэргээх

swapf W_TEMP,F ;

swapf W_TEMP,W;

retfie ; тасалдлын горимоос гарах

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Үндсэн програм

Эхлэх ................. ; анхны тохиргообүртгэлүүд

................. ;тусгай зориулалтын

.................

bsf БАЙДАЛ,RP0 ;бүртгүүлэхийн тулд 11010011 хоёртын дугаарыг бичнэ үү.

movlw b"11010011" ;OPTION_REG, ингэснээр дотоод тохиргоог хийнэ.

movwf OPTION_REG ; TMR0-ын цагийн эх үүсвэр

bcf БАЙДАЛ,RP0 ;TMR0-ээс өмнө урьдчилан масштаблагчийг идэвхжүүлнэ

;Урьдчилан тохируулагчийн харьцааг 1:16 болгож тохируулна уу

clrf shet ; эхлэхээс өмнө хуудасны бүртгэлийг дахин тохируулна уу

;халих тасалдал TMR0, гүйцэтгэсэн

;асарсаны дараа нэг удаа

clrf datind1 ; мэдээлэл гаргах бүртгэлийг цэвэрлэх

clrf datind2 ;заагч, унтраалттай тэнцэх

clrf datind3 ;заагч, учир нь нийтлэг үзүүлэлттэй үзүүлэлтүүд

clrf datind4 ;катод

bcf INTCON,T0IF ;TMR0 халих тасалдлын тугийг дахин тохируулах

bsf INTCON,T0IE ;TMR0 халих тасалдлыг идэвхжүүлнэ

bsf INTCON,GIE ; глобал тасалдлыг идэвхжүүлнэ

movlw b"00000110" ; 13.52 гаралтын жишээ

movlw b"11001111" ;

movlw b"01101101" ;

movlwb"01011011" ;

................. ;

................. ;

................. ;

төгсгөл; бүх програмын төгсгөл

Үндсэн программ дээр бид эхлээд OPTION_REG регистрийг ашиглан таймер тохируулсан бөгөөд өмнө нь би таймер ашиглах талаар ярьж байсан. Дараа нь бид үзүүлэлт бүрийн хувьд 1-ээс 4 хүртэлх тооллогыг оруулах зориулалттай регистрийг цэвэрлэнэ. Энэ бүртгэлийг тасалдлын үйлчилгээний горимд нэмэгдүүлж, тэнд тохируулдаг (энэ нь 1-ээс 4 хүртэл тоологдох болно) тул энэ цэвэрлэгээг асаасны дараа нэг удаа хийнэ. Энэ бүртгэлд үндэслэн бид ямар үзүүлэлтийг оруулахаа тодорхойлж, түүнд тохирох өгөгдлийг гаргах болно. Дараагийн алхам бол дөрвөн үзүүлэлтэд харгалзах 4 dataind1,2,3,4 регистрийн мэдээллийг хадгалах бүртгэлийг цэвэрлэх явдал юм. Цэвэрлэх нь индикаторуудыг унтраахтай адил юм, учир нь тасалдлын үйлчилгээний горимд эдгээр регистрүүдийн агуулгыг заагч анодууд холбогдсон PORTB бүртгэлд шилжүүлдэг. Энэ нь тасалдлыг идэвхжүүлсний дараа үзүүлэлтүүд дээр хог хаягдал гарахгүйн тулд зайлшгүй шаардлагатай бөгөөд зарчмын хувьд хэрэв та шууд бичвэл үүнийг хийх боломжгүй юм. зөв мэдээлэлгаралтын хувьд. Дараа нь цаг хэмжигч халих тасалдлыг дахин тохируулж, TMR0 халих тасалдлыг идэвхжүүлж, эцэст нь глобал тасалдлыг идэвхжүүлнэ.

Тасалдлын горимд бид эхлээд бүх үзүүлэлтүүдийг унтраадаг (транзисторын суурь дээр логик түвшин бага байх замаар), учир нь аль нь асаалттай байгаа нь тодорхойгүй байна. Бид хуудасны бүртгэлийг нэмэгдүүлж, 5-ын тоотой тэнцэх эсэхийг шалгана, хэрэв ийм таарч байвал 1-ээс 4 хүртэл тоолох шаардлагатай тул бүртгэлд 1-ийн тоог бичнэ үү. Дараа нь бид хүснэгтэд аль тоо байгааг шалгана. бүртгэл, үүгээр бид PORTB-аас өгөгдлийг PORTB мэдээлэл хадгалах бүртгэлд (өгөгдлийн сан) ачаалж, харгалзах индикаторыг асаана. Үүний дараа бид TMR0 халих тасалдлын тугийг дахин тохируулж, таймер руу 100 дугаарыг бичиж (энэ утгын тооцоог доор өгөв) хугацааны хоцрогдолд оруулаад тасалдал зохицуулагчаас гарна. Эхний тасалдал дээр эхний индикатор асдаг, хоёр дахь тасалдал, хоёр дахь нь, гэх мэт дугуй циклээр асдаг. Үндсэн програмд ​​зөвхөн үзүүлэлт бүрийн мэдээлэл хадгалах бүртгэлд өгөгдлийг ачаалахад л үлддэг. Тасалдлын дэд программд түлхүүр регистрүүдийн утгыг хадгалах, сэргээхээ бүү мартаарай, би энэ тухай нийтлэлд бичсэн.

Тоо гаргахын тулд өгөгдлийн хүснэгт хэлбэрээр тэмдэгт үүсгэгчийг ашиглах нь дээр. Жишээлбэл, индикаторууд дээр 3456 дугаарыг харуулахын тулд үүнийг цифрүүдэд хуваах ёстой бөгөөд цифрүүдийн тоог (0-ээс 9 хүртэл) хадгалахын тулд тусдаа регистр ашиглах нь зүйтэй бөгөөд дараа нь эдгээр бүртгэлийг тэмдэгт үүсгэгчээр дамжуулан ажиллуулна. холбогдох сегментүүдийг асаахын тулд зөв байтыг (өгөгдлийн бүртгэлд ачаалагдсан) олж авах.

Бид цагны генераторын давтамжийг 4 МГц гэж авна, машины мөчлөг нь 1 μs байна. Шалгуур үзүүлэлт бүрийн шинэчлэлтийн хурдыг 100 Гц (T = 10 мс) гэж үзье, шаардлагатай хугацаа нь 10/4 = 2.5 мс байна. TMR0-ийн урьдчилсан хэмжилтийн коэффициентийг 1:16 гэж тохируулсан бол хамгийн их саатал нь 256x16 = 4096 мкс бөгөөд бидэнд 2.5 мс-ийн завсарлага хэрэгтэй. TMR0-д бичих тоог тооцоолъё: 256-((256x2.5)/4.096) = 256-156.25 = 99.75. Бөөрөнхийлсний дараа бид 100-ийн тоог авна.

Та PIC16F628A микроконтроллер ашиглан нийтлэг катод бүхий 4 оронтой индикатор дээр динамик үзүүлэлт бүхий Proteus програмын загвар, програм хангамж, эх кодыг татаж авах боломжтой. Жишээлбэл, индикатор дээр 0000 тоо гарч ирнэ; 0001; 0002; 13.52; 9764.

Одоо 8x8 пикселийн (LED) нарийвчлалтай матрицыг холбох талаар бодож үзээрэй. Матрицын бүтцийг ихэвчлэн мөр, баганын хувьд авч үздэг. Доорх зурган дээр багана бүрт бүх LED-ийн катодууд, мөр бүрт анодууд холбогдсон байна. Мөр (8 шугам, LED анод) нь микроконтроллер руу резистороор холбогддог. Багана бүр (LED катодууд) микроконтроллерт 8 транзистороор холбогддог. Үзүүлэлтийн алгоритм нь ижил бөгөөд эхлээд бид баганад LED гэрэл асаах шаардлагатай логик түвшингүүдийг эгнээн дээр байрлуулж, дараа нь эхний баганыг холбоно (зүүнээс баруун тийш заагч). Тодорхой завсарлага авсны дараа бид баганыг унтрааж, хоёр дахь баганыг харуулахын тулд шугам дээрх логик түвшинг өөрчилсний дараа бид хоёр дахь баганыг холбоно. Тиймээс бүх баганыг ээлжлэн солино. Доорх нь матрицыг микроконтроллерт холбох диаграмм юм.


Ийм матрицыг холбохын тулд нийтдээ 16 микроконтроллерийн зүү шаардлагатай бөгөөд энэ нь нэлээд их тул хяналтын шугамыг багасгахын тулд цуваа ээлжийн бүртгэлийг ашиглах нь дээр.

Хамгийн түгээмэл цуваа регистр нь 74HC595 микро схемийг агуулсан байдаг ээлжийн бүртгэлөгөгдөл ачаалах, гаралтын шугам руу өгөгдөл дамжуулах хадгалах регистр. Үүнд өгөгдөл ачаалах нь маш энгийн бөгөөд SH_CP цагны оролт дээр логик 0-г тохируулж, дараа нь DS өгөгдлийн оролтод шаардлагатай логик түвшинг тохируулсны дараа бид цагийн оролтыг 1 болгож, түвшний утгыг (DS оролт дээр) хадгална. ээлжийн бүртгэл дотор. Үүний зэрэгцээ өгөгдөл нэг битээр шилждэг. SH_CP гаралтыг дахин 0 болгож, DS оролт дээр шаардлагатай түвшинг тохируулж, SH_CP-ийг 1 болгож өсгөнө. Shift регистрийг бүрэн ачаалсны дараа (8 бит) ST_CP гаралтыг 1 болгож, энэ мөчид өгөгдөл дамжуулагдана. хадгалах бүртгэл ба Q0 ... Q7 гаралтын шугамд тэжээгддэг бөгөөд үүний дараа бид ST_CP-ийн гаралтыг дахин тохируулна. Дараалсан ачааллын үед өгөгдлийг Q0-аас Q7 руу шилжүүлдэг. Pin Q7' нь шилжилтийн регистрийн сүүлчийн биттэй холбогдсон бөгөөд энэ зүү нь хоёр дахь микро схемийн оролттой холбогдож болох тул та хоёр ба түүнээс дээш микро схемд нэг дор өгөгдөл ачаалах боломжтой. OE зүү нь логик 1-ийг ашиглах үед гаралтын шугамуудыг гурав дахь (өндөр эсэргүүцэл) төлөвт шилжүүлдэг.MR зүү нь шилжилтийн регистрийг дахин тохируулах, өөрөөр хэлбэл регистрийн триггерүүдийн гаралт дээр бага логик түвшинг тогтооход зориулагдсан. , энэ нь найман тэг ачаалахтай тэнцэнэ. Эхлээд тэг байсан тохиолдолд Q0 ... Q7 гаралтын шугам дээр 11010001 утгыг 74NS595 микро схемд ачаалах диаграммыг доор харуулав.


Хоёр 74HC595 ээлжийн регистр ашиглан 8×8 матрицыг PIC16F628A микроконтроллерт холбох талаар бодож үзээрэй, диаграммыг доор үзүүлэв.


Өгөгдлийг DD2 чип (мөр дээрх логик түвшний хяналт, LED анод) руу ачаалж, дараа нь Q7 зүүгээр дамжуулан DD3 (баганын удирдлага) руу шилжүүлж, эхлээд баганыг идэвхжүүлэхийн тулд байт, дараа нь байт ачаална. эгнээ дээрх логик түвшний хамт. Матрицын багануудыг сэлгэх транзисторууд (LED катодууд) нь DD3-ийн гаралтын шугамд холбогдсон. Матриц дээр зургийг харуулах програмын кодыг доор харуулав.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;8х8 нарийвчлалтай матрицын динамик заалтыг хэрэгжүүлэх ;Цагийн генераторын давтамж жишээ нь 4 МГц, машины цикл 1 μs org 0000h ;програмын гүйцэтгэлийг 0000h хаягаас эхлүүлэх goto Start ; шошго руу үсрэх Start ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Хэвийн org 0004h тасалдах ;0004h movwf W_TEMP хаягаас дэд программын гүйцэтгэлийг эхлүүлэх ;түлхүүр бүртгэлийн утгыг хадгалах swapf STATUS,W ; clrf БАЙДАЛ; movwf STATUS_TEMP ; ; movwf FSR_osn ;FSR_osn бүртгэл рүү movf FSR_prer,W ;өмнө нь хадгалсан утгыг сэргээх movwf FSR ;FSR_prer регистрээс FSR бүртгэлийн ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stolb регистрийн агуулгыг чип рүү ачаалах movf stolb,W ;stolb регистрийн агуулгыг хуулах movwf var ;register var met2 btfsc var,0 ;гаралтын ds-г btfss var,0-ын дагуу тохируулах; bcf ds; bcf sh_cp; rrf var,F ;Shift register var бэлтгэх эрх;дараагийн бит goto met2 ;scetbit тэгтэй тэнцүү биш: met2 шошго руу үсрэх;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;INDF регистрийн агуулгыг чип рүү ачаалах;74HC595 (цуваа ээлжийн бүртгэл) movf INDF,W ;INDF регистрийн агуулгыг хуулах movwf var ;var регистр movlw .8 ;ssetbit регистрт 8 гэсэн тоог бичих, movwf scetbit-ийг тоолоход ;шилжүүлсэн битүүд met1 btfsc var ,7 ;bsf ds-ийн дагуу гаралтын ds-г тохируулах ;регистрийн 7-р битийн утга var btfss var,7 ; bcf ds; bsf sh_cp ;цагны sh_cp гаралт нь өгөгдлийг түгжихийн тулд bcf sh_cp ; rlf var,F ;Shift регистрийн var нь бэлтгэхийн тулд үлдсэн;дараагийн бит decfsz scetbit,F ;регистрийн нөхцөлтэй бууруулах scetbit goto met1 ;scetbit тэгтэй тэнцүү биш: met1 шошго руу шилжих; bsf st_cp ; ачаалагдсан bcf st_cp-г 74HC595 чипийн гаралтын шугам руу байт шилжүүлэхийн тулд гаралтын st_cp цагийг тохируулна; bcf БАЙДАЛ,C ;шилжилтийн өмнө регистрийн төлөвийн С битийг дахин тохируулах rrf stolb,F ;left shift register stolb ; incf FSR,F ;FSR бүртгэлийг нэмэгдүүлэх, дараагийн бэлтгэл ;74HC595 decfsz shet,F руу өгөгдөл илгээхийн тулд бүртгүүлэх ;Register condition shet goto exxit ;Shet register 0-тэй тэнцүү биш: Exit to jump movlw data1 ;Shet registr 0-тэй тэнцүү: Write address first movwf FSR ;FSR регистрт мэдээлэл хадгалах бүртгэл movlw .8 ;Shet регистрт 8-ын тоог бичих, movwf shet хөтлөх ;Тоолох багана ; exxit bcf INTCON,T0IF ;халих тасалдлын далбааг дахин тохируулах TMR0 movlw . 124 ;TMR0 movwf TMR0 таймер регистрт 124 дугаарыг бичнэ; ; movf FSR,W ;FSR-ийн одоогийн утгыг хадгалах movwf FSR_prer ;To FSR_prer movf FSR_osn ,W ;Өмнө нь хадгалсан утгыг сэргээх movwf FSR ;FSR_osn-аас FSR ; swapf STATUS_TEMP,W ; түлхүүр регистрүүдийн агуулгыг сэргээх movwf STATUS ; swapf W_TEMP,F ; swapf W_TEMP,W; ; retfie ; тасалдлын дэд хөтөлбөрөөс гарах;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Үндсэн програм Эхлэх ................ ;Бүртгэлийн анхны тохиргоо ................. ;Тусгай зориулалтын..... ............ bsf STATUS,RP0 ;11010011 хоёртын дугаарыг movlw b"11010010" ;OPTION_REG регистрт бичиж, улмаар TMR0 bcf STATUS,RP0-ын дотоод movwf OPTION_REG ;цагны эх үүсвэрийг тохируулна; урьдчилж тохируулагчийг идэвхжүүлнэ. TMR0; урьдчилсан масштабын харьцааг 1:8 болгох; movlw .8 ;movwf shet-ийг эхлүүлэхийн өмнө shet регистрт 8-ын тоог бичнэ ;tmr0 overflow тасалдал, гүйцэтгэнэ;нэг удаа, ассаны дараа movlw b"10000000" ;movwf stolb-д хоёртын тоо 10000000 гэж бичнэ, ;stolb1st багана идэвхжүүлнэ; цахилгааныг асаасны дараа нэг удаа гүйцэтгэнэ; movlw data1 ;Эхний регистрийн хаягийг (хадгалах регистрүүд movwf FSR_prer ;мэдээлэл) FSR_prer регистрт бичих, гүйцэтгэсэн; асаалттай болсны дараа нэг удаа; movlw .8 ;мэдээллийн гаралтын 8 регистрийг цэвэрлэх movwf tmp ;матриц, movlw өгөгдлийг унтраасантай тэнцэх1 ;матриц movwf FSR ; met3 clrf INDF; incf FSR,F ; decfsz tmp,F ; goto met3; ; bcf INTCON,T0IF ; TMR0 халих тасалдлыг арилгах bsf INTCON,T0IE ; TMR0 халих тасалдлыг идэвхжүүлэх bsf INTCON,GIE ; глобал тасалдлыг идэвхжүүлэх; m1 movlw data1 ;R гаралтын жишээ movwf FSR ; movlw b"00000000" ; movwf INDF; incf FSR,F ; movlw b"01111111" ; movwf INDF; incf FSR,F ; movlwb"00001001" ; movwf INDF; incf FSR,F ; movlwb"00011001" ; movwf INDF; incf FSR,F ; movlwb"00101001" ; movwf INDF; incf FSR,F ; movlw b"01000110" ; movwf INDF; incf FSR,F ; movlw b"00000000" ; movwf INDF; incf FSR,F ; movlw b"00000000" ; movwf INDF; ; ...................; ...................; ...................; ; төгсгөл ; бүх хөтөлбөрийн төгсгөл;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;8х8 нарийвчлалтай матрицын динамик заалтыг хэрэгжүүлэх

;Жишээ нь цагийн давтамж 4 МГц, машины цикл 1 мкс

org 0000h ;програмын гүйцэтгэлийг 0000h хаягаар эхлүүлнэ

Эхлэх рүү оч; Эхлэх шошго руу оч

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Тасалдлын горим

org 0004h ;дэд программыг 0004h хаягаар эхлүүлнэ

movwf W_TEMP ;түлхүүр бүртгэлийн утгыг хадгалах

swapf БАЙДАЛ,W ;

movwf STATUS_TEMP ;

movf FSR,W ;FSR бүртгэлийн одоогийн утгыг хадгална

movwf FSR_osn; FSR_osn бүртгүүлэх

movf FSR_prer,W ; өмнө нь хадгалсан утгыг сэргээх

movwf FSR ;FSR-аас FSR_prer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (цуваа ээлжийн бүртгэл)

movf stolb,W; stolb бүртгэлийн агуулгыг хуулах

movwf var ;var бүртгүүлэх

movlw .8 ;тоолохын тулд 8-ийн тоог sketbit регистрт бичнэ

movwf scetbit ; дамжуулсан битүүд

met2 btfsc var,0 ;д заасны дагуу ds гаралтыг тохируулна

bsf ds ; регистрийн 7-р битийн утга var

bsf sh_cp ;цаг sh_cp гаралт нь өгөгдлийг түгжээ

rrf var,F ; shift register var бэлтгэх эрх

; дараагийн хэсэг

decfsz scetbit,F ;скетбит регистрийн нөхцөл бүхий бууралт

goto met2 ;scetbit тэгтэй тэнцүү биш: met2 шошго руу үсрэх

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (цуваа ээлжийн бүртгэл)

movf INDF,W; INDF регистрийн агуулгыг хуулах

movwf var ;var бүртгүүлэх

movlw .8 ;тоолохын тулд 8-ийн тоог sketbit регистрт бичнэ

movwf scetbit ; дамжуулсан битүүд

met1 btfsc var,7 ;д заасны дагуу ds гаралтыг тохируулна

bsf ds ; регистрийн 7-р битийн утга var

bsf sh_cp ;цаг sh_cp гаралт нь өгөгдлийг түгжээ

rlf var,F ;left shift var бэлтгэх

; дараагийн хэсэг

decfsz scetbit,F ;скетбит регистрийн нөхцөл бүхий бууралт

goto met1 ;scetbit 0-тэй тэнцүү биш: met1 шошго руу үсрэх

bsf st_cp ;ачлагдсаныг шилжүүлэхийн тулд st_cp-ийн гаралтыг цаг

bcf st_cp ;74HC595 гаралтын шугам тутамд байт

bcf STATUS,C ; ээлжийн өмнө төлөвийн бүртгэлийн C битийг арилгана

rrf stolb,F ;left shift register stolb

incf FSR,F ;өсгөх FSR бүртгэл, дараагийн бэлтгэ

74HC595 руу өгөгдөл илгээхийн тулд бүртгүүлнэ үү

decfsz shet,F ;регистрийн нөхцөл хуудас бүхий бууралт

goto exxit ;shet регистр 0-тэй тэнцүү биш: гарах руу үсрэх

movlw data1 ;shet регистр нь 0: эхнийх нь хаягийг бичнэ

movwf FSR ;FSR-д мэдээлэл хадгалахын тулд бүртгүүлнэ үү

movlw .8 ; лавлагаа авахын тулд shet регистрт 8-ын тоог бичнэ үү

movwf хуудас ;баганын тоо

movlw b"10000000" ;10000000 гэсэн хоёртын тоог бичнэ үү.

movwf stolb ;1-р баганыг оруулахын тулд stolb-г бүртгүүл

exxit bcf INTCON,T0IF ;TMR0 халих тасалдлын далбааг дахин тохируулах

movlw .124 ;TMR0 таймерын регистрт 124 дугаарыг бичнэ

movf FSR,W ;FSR бүртгэлийн одоогийн утгыг хадгална

movwf FSR_prer ;FSR_prer бүртгүүлэх

movf FSR_osn ,W ; өмнө нь хадгалсан утгыг сэргээх

movwf FSR ;FSR_osn-аас FSR

swapf STATUS_TEMP,W ; түлхүүр регистрүүдийн агуулгыг сэргээх

swapf W_TEMP,F ;

swapf W_TEMP,W;

retfie ; тасалдлын горимоос гарах

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Үндсэн програм

Эхлэх ................. ;регистрийн анхны тохиргоо

................. ;тусгай зориулалтын

.................

bsf БАЙДАЛ,RP0 ;бүртгүүлэхийн тулд 11010011 хоёртын дугаарыг бичнэ үү.

movlw b"11010010" ;OPTION_REG, ингэснээр дотоод

movwf OPTION_REG ; TMR0-ын цагийн эх үүсвэр

bcf БАЙДАЛ,RP0 ;TMR0-ээс өмнө урьдчилан масштаблагчийг идэвхжүүлнэ

;Урьдчилан масштабын харьцааг 1:8 болгож тохируулна уу

movlw .8 ;ажиллахын өмнө shet регистрт 8-ын тоог бичнэ

movwf shet ; TMR0 халилт тасалдсан, ажиллаж байна

;асарсаны дараа нэг удаа

movlw b"10000000" ;10000000 гэсэн хоёртын тоог бичнэ үү.

movwf stolb ;1-р баганыг оруулахын тулд stolb-г бүртгүүл

Багана бүрийн эгнээний логик түвшний мэдээлэл нь 8 мэдээллийн хадгалалтын бүртгэлд хадгалагддаг бөгөөд тэдгээрт нэвтэрдэг. Эхний регистрийн хаягийг data1 гэж нэрлэдэг. Shet болон stolb регистрийг анх бичихээс гадна FSR_prer регистрт анхны мэдээлэл хадгалах регистрийн хаягийг бичих шаардлагатай (регистр нь өгөгдөл1, FSR_prer дахь оруулга нэг удаа хийгддэг, дараа нь үүнийг тохируулна. зохицуулагч), зөвхөн үүний дараа TMR0 халих тасалдлыг зөвшөөрнө үү.

Тасалдлыг идэвхжүүлэхийн өмнө мэдээлэл хадгалах бүртгэлийг цэвэрлэх нь зүйтэй бөгөөд энэ үйлдлийг нэмэлт tmp регистр (тоолуур болгон) болон шууд бус хаяг ашиглан гүйцэтгэнэ, цэвэрлэгээ нь матрицыг унтраасантай тэнцэнэ.

Тасалдалтай ажиллах горимд бид stolb регистрийн агуулгыг DD2 чип рүү ачаалдаг (та тасалдлыг идэвхжүүлсний дараа анх удаа зохицуулагч руу ороход дээр дурдсанчлан регистрт 10000000 гэсэн тоо байдаг). Ачаалах нь stolb регистрийн доод битээс эхэлдэг бөгөөд ачаалах үед Q0-аас Q7 (DD2 чип дотор) чиглэлд шилждэг тул ачаалах алгоритмын талаар дээр дурдсан тул кодыг ойлгоход хэцүү байх болно гэж бодож байна. . Дараа нь бид INDF регистрийн агуулгыг DD2 руу ачаалдаг бөгөөд энэ нь мэдээлэл хадгалах регистрүүдийн нэг бөгөөд хаяг нь FSR-д байдаг (тасалдлыг идэвхжүүлсний дараа анх удаа зохицуулагч руу ороход FSR нь эхний хаягийг агуулна. Мэдээллийн хадгалалтын бүртгэл гэж нэрлэгддэг өгөгдөл1). Ачаалах нь INDF бүртгэлийн дээд битээс эхэлдэг. Тооцоолсон 2 байтыг ачаалсны дараа бид st_cp гаралтыг цаглаж, улмаар татаж авсан өгөгдлийг DD2, DD3 микро схемийн гаралтын шугам руу дамжуулдаг. Тиймээс, зохицуулагчийн эхний оролтод матрицын эхний багана сэлгэгддэг бөгөөд үүнд LED-үүд асдаг бөгөөд анодууд дээр логик түвшин өндөр байдаг бөгөөд энэ нь мэдээллийн 1 регистрийн агуулгад нийцдэг. анхны мэдээлэл хадгалах бүртгэл).

Дараа нь бид тасалдал зохицуулагч руу дараагийн оруулгад шилжихэд матрицын хоёр дахь баганыг бэлтгэхийн тулд stolb регистрийг баруун тийш нэг битээр шилжүүлнэ. Шилжүүлэлт нь энэ тугаар дамждаг бөгөөд шилжилтийн үед төлөв нь мэдэгдэхгүй тул STATUS регистрийн С тугийг ээлжийн өмнө цэвэрлэх шаардлагатай. Шилжилтийн дараа бид FSR бүртгэлийг нэмэгдүүлж, дараагийн хадгалах бүртгэлийг (өгөгдлийн1 бүртгэлийн дараа) хоёр дахь баганад логик эгнээний түвшинд бэлтгэдэг. Дараа нь бид shet регистрийг нөхцөлөөр багасгаж, тэгтэй тэнцүү биш бол TMR0 халих тасалдлын тугийг дахин тохируулж, таймерт дугаараа бичиж, тасалдал зохицуулагчаас гарна.

Дараагийн удаа та зохицуулагч руу ороход матрицын хоёр дахь багана идэвхжих гэх мэт. Shet регистрийг дахин тохируулах үед (8-р баганыг сольсны дараа) 8 дугаарыг дараагийн баганыг солих циклд бичнэ, үүнээс гадна stolb регистрийн утгыг, анхны мэдээлэл хадгалах бүртгэлийн хаягийг засна. өгөгдөл1) нь FSR бүртгэлд бичигдсэн.

TMR0 таймерын цаг хугацааны хоцрогдол, цагийн давтамж 4 МГц, машины мөчлөг нь 1 μs байна. LED-ийн анивчахаас зайлсхийхийн тулд багана бүрийн сэргээх хурдыг 100 Гц (T=10 мс) гэж авъя, саатал нь 10/8 = 1.25 мс байна. Бид урьдчилан хэмжигч TMR0 харьцааг 1:8 болгон тохируулсан бол хамгийн их саатал 256x8 = 2048 μs байна. 1.25 мс-ийн завсарлага авахын тулд таймер (256x1.25) / 2.048 = 156.25 удаа тоолох ёстой бөгөөд бид 156 тооллогыг авна. Үүний дагуу таймер дээр 256-156 = 100 гэсэн тоог бичих шаардлагатай.Гэхдээ энэ нь тийм ч зөв утга биш, учир нь тасалдлын горимыг гүйцэтгэхэд багагүй хугацаа шаардагдах бөгөөд энэ тохиолдолд 190 мкс шаардлагатай бөгөөд үүнийг харгалзан дахин тооцоолно. Урьдчилан масштабын коэффициентийг тооцвол бид 190/8 = 23.75 буюу 24 тоог авна. Зөв үнэ цэнэ TMR0 руу бичихэд: 100+24=124.

Үндсэн програм дээр бид матриц дээр харуулахыг хүсч буй зүйлийн дагуу 8 мэдээлэл хадгалах бүртгэлийг бичдэг. Дээрх кодын матрицын мэдээллийн гаралтыг тайлбарласан диаграммыг доор харуулав.


Шилжилтийн бүртгэлээс гадна долоон сегментийн индикатор ба LED матрицын талаархи мэдээллийг харуулах тусгай драйверууд байдаг бөгөөд энэ тохиолдолд драйвер өөрөө динамик заалтыг хэрэгжүүлдэг бөгөөд зөвхөн харуулахын тулд өгөгдөл илгээх явдал юм. Эдгээр алдартай жолооч нарын нэгийг би нийтлэлдээ авч үзсэн.

Холбоосын доор та PIC16F628A микроконтроллерийн програм хангамж, эх кодыг татаж авах боломжтой бөгөөд 74HC595 ээлжийн хоёр бүртгэлийг ашиглан 8x8 матриц дээр динамик заалтыг хэрэгжүүлэх замаар холболтын диаграммыг дээр авч үзсэн болно. R, L үсэг, 46 дугаар, инээмсэглэл, зүгээр л загалмай хэлбэртэй хэв маягийг матриц дээр ээлжлэн харуулсан бөгөөд энэхүү хөдөлгөөнт дүрсийг доорх видеонд үзүүлэв.

шошготой, . Унших.

LED матриц болон Arduino дээр суурилсан маркийг угсрах нь гэртээ ч хийж болох энгийн ажил юм. LED дэлгэц дээр үсгийг хөдөлгөхийн тулд програмист байх шаардлагагүй, электроникийн талаар гүнзгий мэдлэгтэй байх шаардлагагүй. Энэ нийтлэлд бид бэлэн LED матриц болон Arduino Nano-аас гүйлтийн шугамыг хэрхэн угсрах талаар дүн шинжилгээ хийх болно.

Юу шаардагдах вэ?

Санааг хэрэгжүүлэхийн тулд танд маш бага мэдээлэл хэрэгтэй:

  • 8-аас 8 пикселийн дөрвөн матрицаас бүрдэх хоёр LED модуль;
  • "Krona" стандарт хэмжээтэй батерейны эзэмшигч;
  • 9 вольтын зай (CR-9V, ER-9V эсвэл түүнтэй адилтгах);
  • хоёр зүү шилжүүлэгч;
  • холбох утас;
  • Arduino нано хавтан;
  • халуун цавуу.

Схем

Ашигласан LED модулийн хэвлэмэл хэлхээний самбар дээр 8-аас 8 пиксел хэмжээтэй 4 матриц байна. LED самбар бүрийг MAX7219 нэгдсэн хэлхээгээр (IC) удирддаг. Энэхүү IC нь LED дэлгэц, нийтлэг катодын матриц, дискрет LED-ийг 64 ширхэг хүртэл удирдахад зориулагдсан хянагч юм.

LED дэлгэц дээр харуулсан мэдээллийг илүү тохь тухтай ойлгохын тулд хэд хэдэн модулийг суулгахыг зөвлөж байна. Үүнийг хийхийн тулд тэдгээрийг цувралаар холбогдсон бүлгүүдэд нэгтгэдэг, өөрөөр хэлбэл эхний модулийн гаралт (гарах) нь хоёр дахь модулийн оролттой (дотор) холбогдсон байна. Энэхүү угсралт нь хоёр модулиас (16 матриц) бүрддэг бөгөөд тэдгээрийн урт нь өгүүлбэрийг бүхэлд нь уншихад хангалттай юм.

Ассемблей

Матрицын модуль нь хэвлэмэл дамжуулагч хэлбэрээр самбар дээр зүү холболт эсвэл контакттай байж болно. Энэ нь тэд хэрхэн холбогдсоноос хамаарна. Эхний тохиолдолд найдвартай цахилгаан контактыг олж авахын тулд холбогчтой бэхэлгээг ашигладаг бөгөөд хоёр дахь тохиолдолд холбогчийг суурилуулж, гагнах шаардлагатай болно.

Гэхдээ эхлээд та хоёр модулийг халуун хайлмал цавуу ашиглан нэг нэгж болгон нэгтгэх хэрэгтэй. Термопластик цавуу нь цахилгаан гүйдэл дамжуулахгүй бөгөөд энэ нь хэвлэмэл хэлхээний самбарт аюулгүй хэрэглэж болно гэсэн үг юм. Цавууг хоёр хавтангийн үзүүрээс түрхэж, дарж, хэдэн минутын турш үлдээнэ. Хатуурсны дараа эхний блокийн гаралтын контактуудыг схемийн дагуу хоёр дахь блокийн оролтын контактуудтай холбоно.

  • VCC - VCC
  • GND-GND
  • D IN – D OUT
  • CS-CS
  • CLK - CLK

FROM урвуу тал Arduino Nano наасан халуун цавуу бүхий ПХБ, зайны тасалгаа, унтраалга. Дэлгэрэнгүй мэдээллийг ашиглахад хялбар байхаар байрлуулсан.
Дараагийн шатанд Arduino нь эхний матрицын оролттой утсыг холбосноор LED модульд холбогдсон байна. Модулийн хувилбараас хамааран үйлдлийг салдаг холболтоор эсвэл доорх диаграммын дагуу гагнах замаар гүйцэтгэдэг.

  • VCC-5V
  • GND-GND
  • D IN - PIN 11
  • CS-PIN 10
  • CLK - PIN 13.

Угсралтын эцсийн шатанд зайны хүчийг холбох шаардлагатай. Үүнийг хийхийн тулд титэм тасалгааны сөрөг контакт (хар утас) нь Arduino-ийн GND зүүтэй холбогдсон байна. Эерэг контакт (улаан утас) нь унтраалга, дараа нь зохицуулалтгүй эх үүсвэрээс хүчдэлийг хангах зориулалттай Arduino зүү №30-д холбогдсон байна. Туршилтын горимд, өөрөө хийх кодыг компьютерээс микро USB-ээр тэжээх боломжтой.
Бэхэлгээний найдвартай байдал, цахилгааны холболтын чанарыг шалгасны дараа тэд хэргийг угсарч эхэлнэ. Хэлхээний элементүүд халдаггүй тул үүнийг хөнгөн цагаан эсвэл хуванцар профилээс хийж болно. Орон сууцны өнгө, хэмжээ, хамгаалалтын зэрэг, бэхэлгээ нь төхөөрөмжийн цаашдын ашиглалтаас хамаарна. Хамгийн энгийн тохиолдолд шилжүүлэгчийн зүсэлт бүхий барилгын хуванцар булангийн профилаар хийсэн хамгаалалтын дэлгэц тохиромжтой.

Тикер програмчлал

MAX7219-ийн удирдлаган дор Arduino болон LED модулиудын ажиллах шугам бараг бэлэн боллоо. Хөтөлбөрийн эцсийн хэсэг рүү шилжих цаг болжээ. Ашигласан Arduino-д зориулсан програм хангамж (програм хангамж) болон түүнд зориулсан драйверийг компьютер дээр суулгасан байх ёстой. Дараа нь та хоёр номын сан, ноорог (Arduino процессор ачаалж, гүйцэтгэх тусгай программ) татаж авах хэрэгтэй. Номын сангуудыг Documents - Arduino - Libraries хавтсанд хаалттай Arduino IDE суулгасан. Дараа нь тэд ноорог татаж аваад ажиллуулж, номын сан байгаа эсэх, бусад өгөгдлийн зөв эсэхийг шалгана.

Ноорог тохиргоо:

  • "хэвтээ дэлгэцийн тоо" нь шугамын тоог заана, манай тохиолдолд 1;
  • "Босоо дэлгэцийн тоо" нь матрицын тоог заана, манай тохиолдолд 8;
  • "мөр соронзон хальс" нь дэлгэц дээр харуулсан бичээсийг заана;
  • "int wait" нь гаралтын хурдыг миллисекундээр тохируулна.

Оруулсан өгөгдлийг шалгасны дараа "татаж авах" товчийг дарах хэрэгтэй. Дараа нь компьютерээс салгаад зайгаа оруулаад төхөөрөмжийг эхлүүлнэ үү.

Эцэст нь хэлэхэд, Arduino-тэй ажиллах ур чадваргүй байсан ч өөрөө хийдэг гүйлтийн шугамыг маш хурдан угсардаг гэдгийг би нэмж хэлмээр байна. Тиймээс та энэ нарийн төвөгтэй самбараас айх ёсгүй. Мөн LED матрицын тоог нэмэгдүүлэх замаар гүйлтийн шугамыг уртасгах боломжтой гэдгийг тэмдэглэх нь зүйтэй.

Мөн уншина уу

Сүүлийн жилүүдэд LED матрицууд нь гаднах сурталчилгаа, төрөл бүрийн мэдээллийн самбарт өргөн тархсан. Маш тод, динамик - тэд анхаарлыг маш сайн татаж, нартай өдөр сохордоггүй. Та бүгд хотынхоо гудамжинд тэднийг өдөр бүр хардаг.
Мэдээжийн хэрэг, хямд үнэ (хятад үйлдвэрлэгчдээс шалтгаалж), дэлгэцийг угсрах хялбар байдал нь тэдний түгээлтийг хөнгөвчилсөн.

Гэхдээ та ийм матрицыг төхөөрөмждөө микроконтроллер дээр ашиглахыг оролдвол яах вэ? Эдгээр матрицуудын солилцооны интерфейс ба гаралтын логик гэж юу вэ?
Бүгдийг нь ойлгохыг хичээцгээе.

Хятадууд өөр өөр хэмжээтэй, өөр өөр нарийвчлалтай матрицууд, мөн янз бүрийн энгийн эффект бүхий дүрсийг харуулах хянагч, шаардлагатай бүх хэрэгслүүд, холбох кабель, хүрээ зэргийг санал болгодог.
Матрицууд нь нэг өнгөтэй (цагаан, шар, улаан, ногоон, цэнхэр), 3 өнгөт (RGB) гэж олддог. Матрицын загварын тэмдэглэгээ нь ихэвчлэн Pxx эсвэл PHxx шиг харагддаг бөгөөд энд xx нь пиксел хоорондын зайг миллиметрээр илэрхийлдэг тоо юм. Миний хувьд энэ нь P10 байна. Үүнээс гадна зарим стандарт хэмжээтэй матрицууд нь зөвхөн тэгш өнцөгт төдийгүй дөрвөлжин хэлбэртэй байдаг.

Хэмжээний хэмжээсийн боломжит сонголтууд



Тиймээс бид 320x160 мм хэмжээтэй 32x16 пикселийн цагаан матрицтай бөгөөд үүний дагуу пиксел хоорондын зай 10 мм байна. Үүнийг илүү нарийвчлан авч үзье.
Урд талын харагдац:

LED нь зууван хэлбэртэй юм шиг санагдаж байсан уу? Чи бодоогүй гэж үү...


LED-ийн дээр нарны гэрлийг гэрэлтүүлэхээс сэргийлсэн жижиг хаалт хийдэг.

Хуванцар маск арилгасан урд талын зураг



Бид матрицыг эргүүлж, самбарыг харна уу:


Самбар дээр олон тооны логик чипүүд байдаг. Эдгээр бичил схемүүд юу болохыг харцгаая.
1. 1 x SM74HC245D - урвуу ороогүй буфер
2. 1 x SM74HC04 - 6 сувгийн инвертер
3. 1 x SM74HC138D - 8 битийн декодер
4. 4 x APM4953 - 2 P суваг MOSFET-ийн угсралт
5. 16 x 74HC595D түгжээтэй ээлжийн бүртгэл
Хоёр 16 зүү холбогч нь интерфэйс бөгөөд тэдгээрийн нэг нь оролт (дэлгэцийн хянагч үүнтэй холбогдсон), хоёр дахь нь гаралт (гинжин хэлхээний дараагийн матриц түүнд холбогдсон). Самбар дээрх сум нь оролтын холбогчоос гаралт руу чиглэнэ.
ТУЗ-ийн төв хэсэгт байрлах терминалуудад цахилгаан тэжээл өгдөг. Нийлүүлэлтийн хүчдэл - 5V, хамгийн их гүйдэл (бүх LED матрицууд асаалттай байх үед) - 2А (цагаан матрицын хувьд).

Дээрх бүх мэдээлэл, мөн доорх видеон дээрх матрицын үзүүлбэр. Үүн дээр 13:04-15:00 цагийн хооронд би дэлгэцийн тод байдал нь матрицын тооноос хамаарах тухай ярьж байна. Энэ нь алгоритмын алдаатай холбоотой юм. Алдааг зассан бөгөөд одоо дэлгэц унтрахаас өмнө өгөгдлийг ачааллаа.

Би ч бас тантай уулзахдаа баяртай байх болно миний youtube суваг, Би одоог хүртэл микроконтроллеруудтай олон зүйлийг холбодог.

Анхаарал тавьсан та бүхэнд баярлалаа!

Цаг хугацаа үл анзаарагдам өнгөрч, саяхан худалдаж авсан тоног төхөөрөмж нь аль хэдийн ажиллахаа больсон юм шиг санагдаж байна. Тиймээс 10,000 цаг ажилласны дараа миний дэлгэцийн чийдэн (AOC 2216Sa) удаан хугацаагаар ажиллахыг тушаажээ. Эхлээд арын гэрэл анх удаа асаагүй (мониторыг асаасны дараа хэдхэн секундын дараа арын гэрэл унтарсан), энэ нь мониторыг дахин асаах / унтраах замаар шийдэгдсэн бөгөөд цаг хугацаа өнгөрөхөд дэлгэцийг асаах шаардлагатай болсон. аль хэдийн 3 удаа унтрах / унтраах, дараа нь 5, дараа нь 10, мөн хэзээ нэгэн цагт арын гэрлийг асаах оролдлогын тооноос үл хамааран асааж чадаагүй. Бурханы гэрэлд гаргаж авсан чийдэн нь харласан ирмэгтэй болж, хууль ёсны дагуу хаягдал руу очив. Солих чийдэнг (тохиромжтой хэмжээтэй шинэ чийдэн худалдаж авсан) оруулах оролдлого амжилтгүй болсон (монитор нь арын гэрлийг хэд хэдэн удаа асаах боломжтой байсан ч хурдан асаах, унтраах горимд шилжсэн) юу байж болох талаар олж мэдсэн. мониторын электроникийн асуудал нь намайг CCFL чийдэнгийн одоо байгаа инвертерийн хэлхээг засахаас илүүтэйгээр LED дээр мониторын арын гэрлийг угсрах нь илүү хялбар байх болно гэсэн санааг төрүүлэв, ялангуяа сүлжээнд аль хэдийн харуулсан нийтлэлүүд гарсан тул ийм солих үндсэн боломж.

Бид мониторыг задалдаг

Мониторыг задлах сэдвээр олон нийтлэл аль хэдийн бичигдсэн байгаа бөгөөд бүх мониторууд хоорондоо маш төстэй тул товчхондоо:
1. Бид мониторын бэхэлгээний бэхэлгээ ба хайрцагны арын ханыг бэхэлсэн доод хэсэгт байгаа цорын ганц боолтыг тайлсан.


2. Хайрцагны доод хэсэгт урд болон арын хооронд хоёр нүх байдаг бөгөөд тэдгээрийн аль нэгэнд нь хавтгай халив хийж, дэлгэцийн бүх периметрийн эргэн тойронд түгжээнээс тагийг нь авч эхэлнэ (зөвхөн халивыг тэнхлэгээ тойрон эргүүлж, хайрцгийн тагийг өргөх). Хэт их хүчин чармайлт гаргах шаардлагагүй, гэхдээ хэргийг зөвхөн түгжээнээс нь салгахад хэцүү байдаг (засварын явцад би үүнийг олон удаа нээсэн тул цаг хугацаа өнгөрөхөд түгжээг нь салгаж эхэлсэн).
3. Бид хайрцагны урд талын дотоод металл хүрээ суурилуулах талаар харж байна.


Бид самбарыг түгжээнээс товчлуураар гаргаж, чанга яригч холбогчийг (миний хувьд) гаргаж аваад доод талын хоёр түгжээг тайлж, дотоод металл хайрцгийг гаргаж авдаг.
4. Зүүн талд та арын гэрлийг холбох 4 утсыг харж болно. Бид тэдгээрийг бага зэрэг шахаж гаргадаг, учир нь. унахаас урьдчилан сэргийлэхийн тулд холбогчийг жижиг хувцасны хавчаар хэлбэрээр хийдэг. Бид мөн матриц руу (мониторын дээд талд) холбогчийг хажуу тийш нь шахаж, өргөн кабелийг гаргаж авдаг (учир нь холбогч дээр хажуугийн түгжээ байдаг, гэхдээ энэ нь холбогч дээр анх харахад тийм ч тодорхой биш юм):


5. Одоо та матриц өөрөө болон арын гэрэлтүүлэг агуулсан "сэндвич" -ийг задлах хэрэгтэй:


Периметрийн дагуу ижил хавтгай халиваар бага зэрэг нээгддэг түгжээнүүд байдаг. Нэгдүгээрт, матрицыг барьж буй металл хүрээг салгасны дараа та гурван жижиг боолтыг тайлж болно (ердийн хөндлөн толгойтой халив нь жижиг хэмжээтэй тул ажиллахгүй, ялангуяа жижиг хэмжээтэй байх шаардлагатай). матрицын хяналтын самбар болон матрицыг салгаж болно (мониторыг даавууны матрицаар хучсан ширээ гэх мэт хатуу гадаргуу дээр тавьж, хяналтын самбарыг тайлж, ширээн дээр тавьж, төгсгөлд нь дэлгэх нь хамгийн сайн арга юм. монитор хийж, арын гэрэлтүүлэгтэй гэрийг босоогоор нь өргөөд л, матриц нь ширээн дээр хэвтэх болно. дарааллаар нь - өөрөөр хэлбэл ширээн дээр хэвтэж буй матрицыг угсарсан арын гэрэлтүүлэгтэй гэрээр таглаж, кабелийг төгсгөлд нь хяналтын самбар руу ороож, хяналтын самбарыг шураг нь угсарсан нэгжийг болгоомжтой өргөх).
Энэ нь матрицыг тусад нь харуулж байна:


Мөн арын гэрэлтүүлэгтэй блокыг тусад нь:


Арын гэрэлтүүлэгтэй блокыг ижил төстэй байдлаар задалдаг бөгөөд зөвхөн металл хүрээний оронд арын гэрлийг хуванцар хүрээгээр барьж, арын гэрлийн гэрлийг сарниулахад ашигладаг plexiglass-ийг нэгэн зэрэг байрлуулдаг. Ихэнх түгжээ нь хажуу талдаа байдаг бөгөөд матрицын төмөр хүрээтэй төстэй (хавтгай халиваар нээдэг), харин хажуу талд нь "дотогшоо" нээгддэг хэд хэдэн түгжээ байдаг (та дарах хэрэгтэй). тэдгээрийг халиваар бэхлээрэй, ингэснээр түгжээ нь хайрцаг дотор орно).
Эхэндээ би бүх салгах хэсгүүдийн байрлалыг цээжилсэн боловч дараа нь тэдгээрийг "буруу" угсрах боломжгүй болох нь тогтоогдсон бөгөөд эд ангиуд нь туйлын тэгш хэмтэй харагдаж байсан ч өөр өөр талуудын түгжээ хоорондын зай Металл хүрээ, арын гэрлийг барьж буй хуванцар хүрээний хажуу талд бэхэлсэн цухуйсан хэсгүүд нь тэдгээрийг "буруу" угсрахыг зөвшөөрөхгүй ".
Энэ бол үнэндээ бүх зүйл - бид мониторыг задалсан.

LED зурвас гэрэлтүүлэг

Эхний ээлжинд арын гэрлийг нэг метр тутамд 3528 - 120 LED бүхий цагаан LED бүхий LED туузаас хийхээр шийдсэн. Хамгийн эхний зүйл бол соронзон хальсны өргөн нь 9 мм, арын гэрлийн өргөн (мөн соронзон хальсны суудал) 7 мм (үнэндээ хоёр стандартын арын гэрэлтүүлэг байдаг - 9 мм ба 7 мм). , гэхдээ миний хувьд тэдгээр нь 7 мм байсан). Тиймээс соронзон хальсыг шалгасны дараа туузны ирмэг бүрээс 1 мм-ээр таслахаар шийдсэн, учир нь. Энэ нь соронзон хальсны урд талын дамжуулагч замд хүрч чадаагүй (мөн арын хэсэгт бүхэл бүтэн соронзон хальсны дагуу хоёр өргөн цахилгаан утас байдаг бөгөөд арын гэрэлтүүлэгт шинж чанар нь 1 мм-ээр буурсан тул шинж чанараа алдахгүй. 475 мм урт, учир нь гүйдэл бага байх болно). Хэсэг хугацааны дараа хэлсэн:


Яг л цэвэрхэн LED зурвас гэрэлбүхэл бүтэн уртын дагуу тайрсан (зураг дээр өмнө нь юу тохиолдсон, тайрсны дараа юу болсныг харуулсан жишээг харуулсан).
Бидэнд 475 мм-ийн соронзон хальсны хоёр тууз хэрэгтэй болно (нэг туузанд 3 LED-ийн 19 сегмент).
Би дэлгэцийн арын гэрэлтүүлэг ердийнхтэй адил ажиллахыг хүссэн (жишээлбэл, монитор хянагчаар асааж, унтраадаг), гэхдээ хуучин CRT мониторууд шиг гэрэлтүүлгийг "гараар" тохируулахыг хүссэн. Энэ бол байнга ашиглагддаг функц бөгөөд би хэдэн товчлуур дарах бүрт дэлгэцэн дээрх цэс рүү авирахаас залхаж байсан (миний монитор дээр баруун зүүн товчлуурууд нь дэлгэцийн горимыг тохируулдаггүй, харин суурилуулсан чанга яригчийн дууны хэмжээг тохируулдаг. , тиймээс горимуудыг цэсээр дамжуулан өөрчлөх шаардлагатай байсан). Үүний тулд сүлжээнээс миний мониторын гарын авлагыг олсон (энэ нь хэнд хэрэгтэй вэ - нийтлэлийн төгсгөлд хавсаргасан) ба + 12V, On, Dim, GND нь схемийн дагуу цахилгаан самбар бүхий хуудаснаас олдсон. Бидний сонирхож буй .


Асаалттай - хяналтын самбараас арын гэрлийг асаах дохио (+ 5V)
Бүдэг - PWM арын гэрлийн тод байдлыг хянах
+ 12V нь 12-оос хол байсан боловч арын гэрэлтүүлэггүй 16V орчим, ачаалалтай үед хаа нэгтээ 13.67V орчим байна.
Мөн арын гэрлийн тод байдалд PWM тохируулга хийхгүй, харин арын гэрлийг шууд гүйдлээр тэжээхээр шийдсэн (үүнтэй зэрэгцэн зарим мониторуудын арын гэрэлтүүлэг PWM ажиллахгүй байгаатай холбоотой асуудлыг шийдэж байна. маш өндөр давтамжтай, зарим нүд үүнээс бага зэрэг ядардаг). Миний монитор дээр "уугуул" PWM-ийн давтамж 240 Гц байв.
Цаашид самбар дээр асаалттай дохио (улаанаар тэмдэглэгдсэн) ба + 12V инвертер төхөөрөмжид (инвертерийн нэгжийг хүчдэлгүй болгохын тулд гагнуурыг тайлах шаардлагатай холбогчийг ногооноор тэмдэглэсэн) контактууд олдсон. (Тэмдэглэл харахын тулд зургийг томруулж болно):


LM2941 шугаман зохицуулагчийг хяналтын хэлхээний үндэс болгон авсан бөгөөд гол нь 1А хүртэлх гүйдлийн үед тус тусад нь асаах / унтраах хяналтын зүүтэй байсан бөгөөд үүнийг асаалттай дохиогоор арын гэрлийг асаах / унтраахад ашиглах ёстой байв. мониторын хяналтын самбараас. Үнэн бол LM2941-д энэ дохио урвуу байдаг (өөрөөр хэлбэл асаах / унтраах оролт нь тэг потенциалтай үед гаралт дээр хүчдэл байдаг), тиймээс би хяналтын самбараас шууд асаах дохиог тохируулахын тулд нэг транзистор дээр инвертер угсрах шаардлагатай болсон. болон урвуу LM2941 оролт. Схем нь бусад илүүдлийг агуулаагүй болно:


LM2941-ийн гаралтын хүчдэлийн тооцоог дараах томъёогоор гүйцэтгэнэ.

Vout = Vref * (R1+R2)/R1

Vref = 1.275V, томъёоны R1 нь хэлхээний R1-тэй, томьёоны R2 нь хэлхээний RV1 + RV2 резисторын хостой тохирч байна (гэрэлтүүлгийг жигд хянах, зохицуулалттай хүчдэлийн хүрээг багасгахын тулд хоёр резисторыг нэвтрүүлсэн. хувьсах резистор RV1).
R1-ийн хувьд би 1 кОм авсан бөгөөд R2-ийн сонголтыг дараах томъёоны дагуу явуулна.

R2=R1*(Vout/Vref-1)

Соронзон хальсанд шаардагдах хамгийн их хүчдэл нь 13 В (гэрэлтээ алдахгүйн тулд би нэрлэсэн 12 В-оос хэд дахин илүү авсан бөгөөд соронзон хальс нь ийм бага зэрэг хэт хүчдэлийг тэсвэрлэх болно). Тэдгээр. хамгийн их утга R2 = 1000*(13/1.275-1) = 9.91кОм. Соронзон хальс нь ямар нэгэн байдлаар гэрэлтэх хамгийн бага хүчдэл нь ойролцоогоор 7 вольт, өөрөөр хэлбэл. хамгийн бага утга R2 = 1000*(7/1.275-1) = 4.49кОм. Манай R2 нь хувьсах резистор RV1 ба олон эргэлттэй шүргэгч RV2-ээс бүрдэнэ. Бид RV1 эсэргүүцлийг 9,91 кОм - 4,49 кОм = 5,42 кОм (бид RV1 - 5,1 кОм-ийн хамгийн ойрын утгыг сонгох) авч, RV2-ийг ойролцоогоор 9,91-5,1 = 4,81 кОм гэж тохируулна (үнэндээ эхлээд хэлхээг угсарсан нь дээр. RV1-ийн хамгийн их эсэргүүцлийг тохируулж, LM2941 гаралтын дээрх хүчдэлийг хэмжинэ RV2 эсэргүүцлийг тохируулснаар гаралт нь хүссэн хамгийн их хүчдэлтэй байх болно (бидний тохиолдолд ойролцоогоор 13V).

LED тууз суурилуулах

Соронзон хальсыг 1 мм-ээр огтолсны дараа цахилгааны утаснууд нь соронзон хальсны төгсгөлд ил гарсан тул би соронзон хальсыг наах газарт цахилгаан соронзон хальсыг наасан (харамсалтай нь цэнхэр биш харин хар). Дээрээс нь тууз наасан (үс хатаагчаар гадаргууг дулаацуулах нь сайн, учир нь наалдамхай тууз нь дулаан гадаргуу дээр илүү сайн наалддаг):


Дараа нь арын хальс, plexiglass болон plexiglass дээр байрлах гэрлийн шүүлтүүрийг суурилуулсан. Би туузыг ирмэгийн дагуу баллуураар бэхлэв (тухайн туузан дээрх ирмэг нь салахгүйн тулд):


Үүний дараа арын гэрэлтүүлгийн төхөөрөмжийг урвуу дарааллаар угсарч, матрицыг суурилуулж, арын гэрлийн утсыг гаргаж авдаг.
Хэлхээг талхны самбар дээр угсарсан (энгийн учраас би самбарыг үржүүлэхгүй байхаар шийдсэн), мониторын металл хайрцагны арын хананд нүхээр боолтоор бэхэлсэн:




Цахилгаан хангамжийн самбараас цахилгаан ба хяналтын дохиог асааж эхэлсэн.


LM2941-д хуваарилагдсан тооцоолсон хүчийг дараахь томъёогоор тооцоолно.

Pd = (Vin-Vout)*Iout +Vin*Ignd

Миний хувьд энэ нь Pd = (13.6-13) * 0.7 + 13.6 * 0.006 = 0.5 ватт тул LM2941-ийн хамгийн жижиг радиаторыг (диэлектрик жийргэвчээр суулгасан) ашиглахаар шийдсэн. LM2941-д газардсан).
Эцсийн угсралт нь дизайны нэлээд гүйцэтгэлийг харуулсан:


Давуу талуудаас:

  • Стандарт LED туузыг ашигладаг
  • Энгийн хяналтын самбар
Алдаа дутагдлуудаас:
  • Өдрийн гэрэлд арын гэрэлтүүлэг хангалтгүй (цонхны урд талын дэлгэц)
  • Туузан дахь LED нь дэлгэцийн дээд ба доод ирмэгийн ойролцоох LED тус бүрээс жижиг конус гэрлийг харуулахад хангалттай зайтай байдаггүй.
  • Цагаан өнгийн тэнцвэр бага зэрэг унасан бөгөөд бага зэрэг ногоон өнгөтэй болж хувирдаг (ихэвчлэн энэ нь монитор эсвэл видео картын цагаан өнгийн тэнцвэрийг тохируулах замаар шийдэгддэг)
Маш сайн, энгийн бөгөөд төсвийн сонголтарын гэрэлтүүлэг засвар. Кино үзэх, мониторыг гал тогооны зурагт болгон ашиглахад нэлээд тухтай байдаг ч өдөр тутмын ажилд тохиромжгүй байх магадлалтай.

PWM ашиглан гэрэлтүүлгийн хяналт

Надаас ялгаатай нь хуучин дээрх аналог гэрэлтүүлэг, тодосгогчийг дурсаж санахгүй байгаа хакеруудын хувьд CRT мониторуудта нэмэлт хяналтыг гаднаас нь салгахгүйгээр (мониторын хайрцгийг өрөмдөхгүйгээр) дэлгэцийн хяналтын самбараас үүсгэсэн стандарт PWM-ээс удирдаж болно. Үүнийг хийхийн тулд асаах / унтраах хянагчийн оролт дээр хоёр транзистор дээр БА-БИШ хэлхээг угсарч, гаралт дээрх гэрэлтүүлгийн хяналтыг арилгахад хангалттай. гаралтын хүчдэлтогтмол 12-13V). Өөрчлөгдсөн схем:


13V хүчдэлийн RV2 шүргэх резисторын эсэргүүцэл нь ойролцоогоор 9.9 кОм байх ёстой (гэхдээ зохицуулагч асаалттай үед яг тохируулах нь дээр)

Илүү нягт LED арын гэрэлтүүлэг

Арын гэрлийн гэрэлтүүлгийн хангалтгүй (мөн нэгэн зэрэг жигд) асуудлыг шийдэхийн тулд илүү олон LED суурилуулахаар шийдсэн. LED-ийг дангаар нь худалдаж авах нь 1.5 метр соронзон хальс худалдаж аваад тэндээс гагнахаас хамаагүй үнэтэй болох нь тогтоогдсон тул илүү хэмнэлттэй сонголтыг (соронзон хальснаас LED гагнах) сонгосон.
3528 LED-ийг 6 мм өргөн, 238 мм урт 4 туузан дээр, 4 тууз тус бүр дээр 15 зэрэгцээ угсралтаар 3 LED цуврал байрлуулсан (LED-ийн утсыг хавсаргасан). LED ба утсыг гагнахын дараа дараахь зүйлийг олж авна.




Туузыг дээд ба доод хэсэгт хоёр утсыг мониторын ирмэг хүртэл төв хэсэгт нь холбосон байна.




LED дээрх нэрлэсэн хүчдэл нь 3.5V (3.2-аас 3.8V-ийн муж) тул цуврал 3 LED-ийн угсралт нь ойролцоогоор 10.5V-ээр тэжээгддэг. Тиймээс хянагчийн параметрүүдийг дахин тооцоолох шаардлагатай:


Соронзон хальсанд шаардагдах хамгийн их хүчдэл нь 10.5V байна. Тэдгээр. хамгийн их утга R2 = 1000*(10.5/1.275-1) = 7.23кОм. LED-ийн угсралт ямар нэгэн байдлаар гэрэлтдэг хамгийн бага хүчдэл нь ойролцоогоор 4.5 вольт, өөрөөр хэлбэл. хамгийн бага утга R2 = 1000*(4.5/1.275-1) = 2.53кОм. Манай R2 нь хувьсах резистор RV1 ба олон эргэлттэй шүргэгч RV2-ээс бүрдэнэ. Бид RV1 эсэргүүцлийг 7.23 кОм - 2.53 кОм = 4.7 кОм авч, RV2-ийг ойролцоогоор 7.23-4.7 = 2.53 кОм-д тохируулж, угсарсан хэлхээнд тохируулж, LM2941-ийн гаралтад RV1-ийн хамгийн их эсэргүүцэлтэй үед 10.5 В-ыг авна.
Нэг ба хагас дахин их LED нь 1.2А гүйдэл (нэрлэсэн) зарцуулдаг тул LM2941 дээрх эрчим хүчний алдагдал нь Pd = (13.6-10.5) * 1.2 + 13.6 * 0.006 = 3.8 ватттай тэнцүү байх бөгөөд энэ нь аль хэдийн илүү хатуу байхыг шаарддаг. дулааныг арилгахын тулд халаагч:


Бид цуглуулж, холбогдож, илүү сайжирч байна:


Давуу тал:
  • Хангалттай өндөр гэрэлтүүлэг (хуучин CCTL арын гэрэлтүүлэгтэй харьцуулах боломжтой, магадгүй бүр ч илүү)
  • Тусдаа LED-аас дэлгэцийн ирмэг дээр гэрлийн конус байхгүй (LED нь ихэвчлэн байрладаг бөгөөд арын гэрэлтүүлэг жигд байдаг)
  • Энгийн бөгөөд хямд хяналтын самбар хэвээр байна
Алдаа:
  • Цагаан өнгийн баланстай холбоотой асуудал ногоон өнгөтэй болсон ч ямар ч байдлаар шийдэгдээгүй
  • LM2941 нь хэдийгээр том халаагууртай боловч халаалттай бөгөөд гэр доторх бүх зүйлийг халаадаг

Удаах зохицуулагч дээр суурилсан хяналтын самбар

Халаалтын асуудлыг арилгахын тулд доош буулгах хүчдэлийн зохицуулагч дээр суурилсан бүдгэрүүлэгчийг угсрахаар шийдсэн (миний хувьд LM2576-ийг 3А хүртэлх гүйдэлтэй сонгосон). Энэ нь мөн урвуутай асаах / унтраах хяналтын оролттой тул нэг транзистор дээрх ижил инвертерийг тохируулах боломжтой.


L1 ороомог нь хөрвүүлэгчийн үр ашигт нөлөөлдөг бөгөөд ойролцоогоор 1.2-3А ачааллын гүйдлийн хувьд 100-220 μH байх ёстой. Гаралтын хүчдэлийг дараах томъёогоор тооцоолно.

Vout=Vref*(1+R2/R1)

Энд Vref = 1.23V. R1 өгөгдсөн бол та R2-ийг дараах томъёогоор авч болно.

R2=R1*(Vout/Vref-1)

Тооцооллын хувьд R1 нь хэлхээний R4-тэй, R2 нь хэлхээний RV1+RV2-тэй тэнцүү байна. Манай тохиолдолд 7.25В-аас 10.5В хүртэлх хүчдэлийг тохируулахын тулд бид R4 = 1.8 кОм, хувьсах резистор RV1 = 4.7 кОм ба 8.8 кОм-ийн анхны ойролцоогоор 10 кОм шүргэх резистор RV2 (хэлхээ угсарсны дараа) авна. LM2576-ийн гаралтын хүчдэлийг хамгийн их эсэргүүцэлтэй RV1) хэмжих замаар яг утгыг нь тохируулах нь дээр.
Энэ хянагчийн хувьд би самбар хийхээр шийдсэн (хэмжээ нь хамаагүй, учир нь монитор дээр том самбарыг суурилуулах хангалттай зай байгаа):


Хяналтын самбарын угсралт:


Дэлгэцэнд суулгасны дараа:


Бүгд энд байна:


Угсарсны дараа бүх зүйл ажиллаж байх шиг байна:


Эцсийн хувилбар:


Давуу тал:

  • Хангалттай гэрэлтүүлэг
  • Доошоо хянагч халаахгүй бөгөөд мониторыг халаахгүй
  • PWM байхгүй, энэ нь ямар ч давтамж дээр юу ч анивчдаггүй гэсэн үг юм
  • Аналог (гарын авлагын) гэрэлтүүлгийн хяналт
  • Гэрэлтүүлгийн доод хязгаар байхгүй (шөнийн цагаар ажиллах дуртай хүмүүст)
Алдаа:
  • Цагаан өнгийн тэнцвэрийг бага зэрэг ногоон өнгө рүү шилжүүлсэн (гэхдээ тийм ч их биш)
  • Гэрэл багатай (маш бага) үед параметрийн тархалтаас болж янз бүрийн угсралтын LED гэрлийн жигд бус байдал харагдаж байна.

Шинэчлэх сонголтууд:

  • Цагаан өнгийн балансыг дэлгэцийн тохиргоо болон бараг бүх видео картын тохиргоонд тохируулж болно
  • Та цагаан өнгийн тэнцвэрийг алдагдуулахгүй бусад LED-үүдийг байрлуулахыг оролдож болно
  • Гэрэл багатай үед LED-ийг жигд бус гэрэлтүүлэхээс зайлсхийхийн тулд та дараахь зүйлийг ашиглаж болно: a) PWM (хэрэв нэрлэсэн хүчдэлийг байнга нийлүүлдэг PWM ашиглан гэрэлтүүлгийг тохируулах) эсвэл б) бүх LED-үүдийг цувралаар холбож, тохируулж болох гүйдлийн эх үүсвэрээр тэжээх (хэрэв та бүх 180 LED-ийг цувралаар холбоно, танд 630 В ба 20 мА хэрэгтэй болно), дараа нь ижил гүйдэл бүх LED-ээр дамжих ёстой бөгөөд тус бүр өөрийн гэсэн хүчдэлийн уналттай байх болно, гэрэлтүүлгийг хүчдэлийг биш харин гүйдлийг өөрчлөх замаар зохицуулдаг.
  • Хэрэв та LM2576-д PWM-д суурилсан хэлхээ хийхийг хүсвэл энэ удаашруулах зохицуулагчийн асаах / унтраах оролт дээр NAND хэлхээг ашиглаж болно (LM2941-ийн дээрх хэлхээтэй төстэй), гэхдээ бүдэгрүүлэгч тавих нь дээр. логик түвшний mosfet-ээр дамжуулан LED-ийн сөрөг утасны завсарт

Та линкээс татаж авах боломжтой:

  • AOC2216Sa үйлчилгээний гарын авлага
  • LM2941 ба LM2576 мэдээллийн хуудас
  • Proteus 7 болон PDF формат дахь LM2941 зохицуулагчийн бүдүүвч
  • Sprint Layout 5.0 форматтай LED-ийн самбарын зохион байгуулалт
  • Proteus 7 болон PDF форматаар LM2576 дээрх зохицуулагчийн самбарын диаграмм ба утаснууд

Гэрэлтүүлгийн эх үүсвэрүүдийн дунд LED нь улам бүр байр сууриа эзэлж байна.
Бага эрчим хүчний хэрэглээ, тод байдал нь LED-ийг уламжлалт улайсгасан чийдэнг орлож, эрчим хүч хэмнэдэг чийдэнтэй өрсөлдөх боломжийг олгосон.
Ерөнхий чиг хандлагад нийцүүлэн би өөрийн гараар мэдэрч, LED матрицыг өөрийн нүдээр харахаар шийдсэн бөгөөд энэ нь тусдаа драйвер шаарддаггүй, харин 220 вольтын сүлжээнд шууд холбогддог. Энэ сэдвийг хэн сонирхож байгаа бол муурны доор уу.
Үүний үр дүнд би дараах жишээг сонгосон.

Хуудасны тайлбараас харахад энэ гэрлийн эх үүсвэр нь:
- LED COB технологийг ашиглан үйлдвэрлэсэн;
- тэжээлийн хүчдэл 220 вольт;
- эрчим хүчний хэрэглээ 30 ватт;
- өнгөний температур 2500-3200K;
- хөнгөн цагааны суурь (суурь) материал;
- ерөнхий хэмжээсүүд 40 * 60 мм;

Багц явж байх хооронд би онолыг судалсан.
LED COB технологи гэж юу вэ?

Ойролцоогоор 2009 он хүртэл LED бүтээгдэхүүн нь зөвхөн хөгжлийн нэг чиглэлтэй байсан - LED эсвэл Power LED-ийн хүчийг нэмэгдүүлэх. Энэхүү технологийг сайжруулснаар нэг LED-ийн хүчийг 10 ваттын түвшинд хүргэх боломжтой болсон.
Тусдаа өндөр хүчин чадалтай LED үйлдвэрлэх өндөр өртөгтэй тул хүчийг цаашид нэмэгдүүлэх нь утгагүй юм. Хөгжлийн өөр арга замыг эрэлхийлэхэд LED нь гэрлийн цэгийн эх үүсвэр болсон нь чухал үүрэг гүйцэтгэсэн бөгөөд өндөр хүчин чадлыг ашиглан том гадаргууг гэрэлтүүлэх нь тийм ч хялбар биш бөгөөд тийм ч хямд биш юм. LED. Илүү их эсвэл бага хүлээн зөвшөөрөгдсөн үр дүнд хүрэхийн тулд гэрлийг сарниулахын тулд оптик системийг ашиглах шаардлагатай байв.
Дараагийн алхам бол зөвшөөрөгдөх сарнисан гэрлийн эх үүсвэрийг бий болгохын тулд SMD LED-ийг ашиглах явдал байв - олон тооны LED-ийг нэг самбар дээр гагнасан. Сул талууд нь үйл явцын нийт хөдөлмөрийн эрчимжилт юм - бие даасан LED үйлдвэрлэх (тус бүр өөрийн керамик субстрат + хувийн фосфорын давхарга гэх мэт). Үүнээс гадна аргын сул тал нь бие даасан LED-ийн найдвартай байдал бага, ядаж нэг нь бүтэлгүйтсэн тохиолдолд засвар хийх шаардлагатай байв.
Үүний үр дүнд инженерүүд хувийн шинж чанаргүй LED үйлдвэрлэж, тэдгээрийг нэг самбар дээр байрлуулах шаардлагатай гэсэн санааг гаргаж ирэв. богино зайбие биенээсээ нийтлэг фосфорын давхарга дор, i.e. LED COB технологи. Эцсийн эцэст энэ нь гэрлийн эх үүсвэрийн зардлыг бүхэлд нь бууруулж, тусдаа LED-ууд эвдэрсэн тохиолдолд бүхэл бүтэн модулийг (матриц) өөрчлөх боломжтой болсон.

Боодол нь шар дугтуйтай, дотор нь хөөстэй боодолтой ирсэн. Матриц нь өөрөө тэнцүү хуванцар уутанд хаалттай байдаг.





Таны харж байгаагаар LED нь хоорондоо ойрхон байрладаг бөгөөд нийтлэг фосфорын давхаргаар хучигдсан бөгөөд хуванцар цавуугаар хамгаалагдсан байдаг.
Матрицын периметр болон жолоочийн хамгаалалтын хэлхээний эргэн тойрон дахь цагаан бодис нь резин эсвэл халуун цавуу шиг харагддаг - хатуу, уян хатан масс биш юм. Энэ нь үүнийг хамгийн алдартай тохиолдлуудаас салгаж, тэдгээрийн нэг нь 1000 вольтын хамгийн их тогтмол урвуу хүчдэлтэй, 0.5 амперийн шууд гүйдэл бүхий MB10S диодын гүүр болохыг тодорхойлох боломжтой болсон.
Мэдээллийн хуудас:

Хэмжээ нь тайлбарт заасан хэмжээтэй тохирч байна.



Субстратын зузаан нь 1 мм, матрицын жин нь 8 грамм байна.

Өндөр хүчин чадалтай LED-ийн хувьд матрицад бас халаагч хэрэгтэй гэдгийг хэлэх нь зүйтэй. Тиймээс процессороос халаагчийг сонгосон.


Өөрөө өөрөө түншдэг эрэг ашиглан KPT-8 дулааны оо ашиглан матрицыг радиатор руу бэхэлсэн.
Энэ үйлдлүүдийн дарааллаар алдаа гарсан - матрицыг радиатор руу залгахаас өмнө утсыг гагнах ёстой байсан - гагнуурын төмрийн дулаан нь дулаан шингээгч рүү оров. Гагнуурын үр дүн зураг дээр харагдаж байна. Гэсэн хэдий ч утаснууд нь найдвартай баригдсан бөгөөд би матрицыг арилгаж эхлээгүй.


Эхний оруулга нь мартагдашгүй сэтгэгдэл төрүүлэв - "тод" гэж хэлэх, юу ч хэлэхгүй байх. Хэдийгээр холоос матрицын хавтгайд бага зэрэг өнцгөөс харсан ч гэсэн "туулай" өгдөг. Боломжтой зүйлтэй харьцуулахад эрчим хүч хэмнэх чийдэн 2800К-ийн температурт гэрэл нь цагаан бөгөөд маш их байдаг.

Өрөө 14 кв. метр илүү гэрэлтүүлэгтэй.







20 минутын дараа температур 85 градус хүртэл нэмэгдэв. Цаашилбал, би матрицыг бат бөх байдлын хувьд туршиж үзээгүй ч хяналтын чипүүд нь хүчтэй халаалттай LED-ээр дамжуулан гүйдлийг удирдаж чаддаг.

Цаашдын туршилтыг энэ радиаторын стандарт хөргөгч, сэнсний хурдны хяналтын самбар бүхий албадан хөргөлтийг ашиглан хийсэн. Би сүүлчийнх нь хуучин компьютерийн тэжээлийн хангамжаас хассан.





Температур нь нэг цаг хагасын турш 31.5 хэмээс дээш гараагүй бөгөөд сэнс нь бага хурдтайгаар хурдасгахгүйгээр ажилласан.



Үүний дараа сэнсний хурдны хяналтын самбарыг загвараас хасч, цахилгаан тэжээлийг 9 вольтын хүчээр сольсон.

Сүлжээнд хүчдэлийн өсөлт нь зарласан эрчим хүчний хэрэглээ үнэн эсэхийг шалгах боломжтой болсон.



Хүлээгдэж байсанчлан камер нь 100 Герц давтамжтай матрицын анивчихад хариу үйлдэл үзүүлэв. Би бичлэг хийгээгүй ч дараах зүйлсийг авч чадсан

Диодын гүүрэнд конденсаторыг гагнах замаар долгионыг даван туулах боломжтой болно. Энэ нь хүчдэлийг 220 * 1.41 = 310.2 вольт хүртэл нэмэгдүүлэхэд хүргэж, BP5132H хязгаарлах резисторуудтай тоглох шаардлагатай байсан ч энэ гэрлийн эх үүсвэр нь орон сууцны зориулалттай биш гэдгийг анх мэдэж байсан тул би энэ тэмцлийг эхлүүлээгүй.
Матрицын хамрах хүрээ нь гудамжны ерөнхий гэрэлтүүлэг, хэрэглээний өрөө гэх мэт тул импульсийг үл тоомсорлож болно.
LATR-ийн тусламжтайгаар (туршилтыг ажил дээрээ хийсэн бөгөөд "Яагаад?" Гэсэн асуултанд хариулахгүйн тулд зураг аваагүй), матриц ялгаруулдаг доод босго хэвээр байгааг тогтоох боломжтой болсон. гэрэл нь 130 сондгой вольт. Би 250 вольтоос илүү хүчдэл өгөөгүй, гэхдээ энэ тохиолдолд гагнуурын маск саад болохгүй).
Энэхүү гэрлийн эх үүсвэр нь өндөр хүч чадалтай, өөрөөр хэлбэл гэрлийн нягтрал ихэссэн тул матрицын урд байрлах сарнисан дэлгэц нь хэт их байх болно.

Үүний үр дүнд сул талууд нь дараахь зүйлийг агуулдаг.
- дулаан ялгаруулалтыг нэмэгдүүлэх (технологийн зардал, гэхдээ дизайн биш) болон дулаан шингээгч ашиглах хэрэгцээ (илүү зохимжтой идэвхтэй хөргөлт);
- харьцангуй өндөр өртөгтэй.

Гэсэн хэдий ч эдгээр сул талууд нь энэхүү матрицын тод байдал, том талбайг гэрэлтүүлэх чадвар, зарласан шинж чанаруудтай нийцэхээс илүүтэйгээр нөхөгддөг.
Матрицын хэрэглээний талбай нь ОРОН СУУЦГҮЙ БАЙДАЛ биш тул анивчих нь сөрөг шинж чанартай холбоотой байж болохгүй.
Би "18-р цэгийг үзэн ядагч" тушаалыг дагаж мөрддөг хүмүүст тусад нь хандахыг хүсч байна). Найзууд аа, шүүмжлэлд оруулсан мэдээллийг, ялангуяа цуглуулах, системчлэх, танилцуулахад маш их хүчин чармайлт, цаг хугацаа зарцуулсан тул бодитой үнэлнэ үү.

Бүтээгдэхүүнийг дэлгүүрээс шүүмж бичих зорилгоор өгсөн. Сайтын дүрмийн 18-р зүйлийн дагуу тоймыг нийтэлсэн.

Би +44 худалдаж авахаар төлөвлөж байна Дуртай зүйлд нэмнэ үү Шүүмж таалагдсан +60 +111

Ачааж байна...
Топ