Агуулгын хүснэгт:

RGB LED матриц: 5 алхам
RGB LED матриц: 5 алхам

Видео: RGB LED матриц: 5 алхам

Видео: RGB LED матриц: 5 алхам
Видео: RGB Led Strip Driver with IceZUM Alhambra FPGA 2024, Арваннэгдүгээр
Anonim
Image
Image
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн

Instructable хайлт хийснээр та олон тооны LED матрицын төслүүдийг олох боломжтой. Тэдгээрийн аль нь ч миний хүссэн зүйл биш байсан, ямар нэгэн зүйл үйлдвэрлэхийн тулд техник хангамж, програм хангамжийн дизайны харилцан үйлчлэлийг судалж, эцсийн бүтээгдэхүүнийг драйвертай цэвэрхэн ПХБ-д үйлдвэрлэж, өндөр түвшний тусламжтайгаар "LED дэлгэц" рүү зурцгаая. бүтэц (жишээ нь, тодорхой пикселийг тохируулахын эсрэг шугам зурах). LED матрицын драйверуудын ихэнх нь нүцгэн яснууд бөгөөд зураг, анимацыг программаар бүтээхэд тийм ч их тус болдоггүй тул энэ хэсэг надад чухал байсан. Энэ нь та бусад драйверуудтай зураг, анимац үүсгэх боломжгүй гэсэн үг биш, төслөөс төсөл хүртэл илүү олон удаа давтагдах ажлыг хийх шаардлагатай болно.

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

Би Arduino -г жолоочийн платформ болгон сонгосон, учир нь энэ нь өргөн тархсан бөгөөд онлайнаар олон лавлагаа байдаг. Ажил мэргэжлийн туршлага надад жолоочийн ажиллах хувилбарыг техник хангамжаас илүү нарийвчлалтай авах боломжийг олгосон боловч би ATMega микро хянагчийн драйверын ажиллагааг оновчтой болгож, өөрт таалагдсан програмчлалын API боловсруулж байхад олон давталт байсаар байсан.

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

Алхам 1: Тоног төхөөрөмжийн дизайн

Миний техник хангамжийн дизайны гол зорилго бол програмчилж болох RGB LED -ийн массивыг бий болгох байсан боловч би бас их мөнгө зарцуулахыг хүсээгүй. Миний шийдсэн арга бол LED -ийг хянахын тулд 74HC595 ээлжийн бүртгэлийг ашиглах явдал байв. Шаардлагатай ээлжийн бүртгэлийн тоог багасгахын тулд би RGB LED -ийг ердийн анодуудыг эгнээнд холбож, улаан, ногоон, цэнхэр катодын утсыг багананд холбосон матрицын зохион байгуулалтад оруулав. 4х4 матрицын хувьд хэлхээний диаграм нь хавсаргасан хэлхээний диаграм шиг харагдаж байв.

Матрицын хэлхээг харгалзан хүссэн бүх LED -ийг нэгэн зэрэг асаахад хийх боломжгүй LED гэрэлтүүлгийн тохиргоо байдаг гэдгийг та даруй анхаарах болно. Жишээлбэл, матриц нь хоорондоо диагональтай хоёр LED -ийг нэгэн зэрэг асааж чадахгүй, учир нь мөр багануудыг хоёуланг нь асаахад эсрэг талын хоёр LED нь хүссэн LED -ийн перпендикуляр диагональ дээр асах болно. Үүнийг шийдвэрлэхийн тулд бид мөр бүрийг сканнердахдаа мультиплекс ашиглах болно. Вэб дээр мультиплекс хийх техникийг хамарсан олон эх сурвалжууд байдаг, би тэдгээрийг энд хуулбарлахыг оролдохгүй байна.

Би ердийн анод LED ашиглаж байгаа тул мөрүүд нь эерэг хүчийг өгч, багана нь газарт унаж байна гэсэн үг юм. Сайн мэдээ бол 74HC595 ээлжийн бүртгэл нь хүчийг унтрааж, шингээж чаддаг боловч муу мэдээ бол тэд хичнээн их эрчим хүч авах эсвэл живүүлэх хязгаартай байдаг. 74HC595 -ийн бие даасан тээглүүр нь 70 мА гүйдлийн хамгийн их гүйдэлтэй боловч 20 мА -аас бага байлгах нь дээр. Манай RGB LED -ийн тус бүрийн өнгө тус бүр 20 мА -ийн зураастай байдаг. Энэ нь хэрэв би бүгдийг асаахыг хүсч байвал 74HC595 нь бүхэл бүтэн LED гэрлийг шууд асааж чадахгүй гэсэн үг юм.

74HC595 нь эгнээ шууд асаахын оронд мөр бүрт транзистор хөтлөх бөгөөд транзистор нь эгнээ тэжээж буй гүйдлийг асаах эсвэл унтраах болно. Энэхүү загвар нь нийтлэг анод LED ашигладаг тул шилжүүлэгч транзистор нь PNP байх болно. Хэрэв бид нийтлэг катодын LED ашигладаг байсан бол шилжих транзистор нь NPN байх болно. PNP транзисторыг ашиглан эгнээ жолоодоход PNP транзистор нь ялгаруулагч ба суурийн хооронд сөрөг хүчдэлийг асаах шаардлагатай болдог тул ээлжийн бүртгэлийн тохиргоог одоо идэвхжүүлдэг бөгөөд энэ нь эерэг гүйдэл дамжуулах боломжийг олгодог. эгнээ

Өөр нэг анхаарах зүйл бол ээлжийн бүртгэлийн хүссэн битийн зохион байгуулалт юм. Энэ нь матрицын аль мөр эсвэл баганыг битээр хянадаг ээлжийн бүртгэлүүдийн дунд юм. Миний илгээсэн загвар бол Daisy гинжит ээлжийн бүртгэлд илгээсэн эхний бит буюу "хамгийн чухал бит" нь LED элементийн улаан элементийн баганыг, хоёр дахь бит нь эхний баганын ногоон элементийг, гурав дахь бит нь эхний баганыг хянадаг. цэнхэр элемент, дөрөв дэх бит нь хоёр дахь баганын улаан элементийг хянадаг … энэ загварыг зүүнээс баруун тийш баганаар давтана. Дараа нь илгээсэн дараагийн бит нь сүүлчийн эсвэл доод талын мөрийг, дараагийнх нь сүүлчийн эгнээнээс хоёр дахь хүртэлх хэсгийг хянадаг … энэ нь матрицын эхний эсвэл дээд мөрийг хамгийн сүүлд илгээгдэх хүртэл "хамгийн бага бит" хүртэл давтана..

Эцэст нь би RGB LED дээрх LED тус бүрт ямар резистор ашиглахаа тодорхойлох хэрэгтэй болсон. Шаардлагатай резисторыг тооцоолохын тулд урвуу хүчдэл ба хүссэн гүйдлийг хослуулсан стандарт томъёог ашиглаж болох боловч LED тус бүрийн гүйдлийг 20 миллиамп болгож тохируулснаар улаан, ногоон, цэнхэр өнгийн бүх LED асаалттай байхад цагаан өнгөтэй болдог болохыг олж мэдсэн.. Тиймээс би үүнийг нүдээр харж эхлэв. Цагаан өнгөтэй хэт улаан байвал гүйдлийг багасгахын тулд улаан LED эсэргүүцэгч омыг нэмэгдүүлнэ гэсэн үг юм. Би өөр өөр ом резисторыг сольж, цагаан өнгөтэй болсон хослолыг олох хүртэл миний зөв гэж үзсэн. Эцсийн хослол нь улаан LED 180 Ω, ногоон LED 220 and, цэнхэр LED 100 was байв.

Алхам 2: Тоног төхөөрөмжийн барилгын талх

Тоног төхөөрөмжийн барилгын ажил - Breadboard
Тоног төхөөрөмжийн барилгын ажил - Breadboard
Тоног төхөөрөмжийн барилгын ажил - Breadboard
Тоног төхөөрөмжийн барилгын ажил - Breadboard

Тоног төхөөрөмжийн бүтээн байгуулалтын эхний үе шат бол талхны тавцан байв. Энд би RGB LED бүхий 4х4 хэмжээтэй матриц хийсэн. Энэ матрицыг хянахад 16 бит, RGB багананд 12, мөр бүрт 4 бит шаардлагатай болно. 74HC595 гэсэн хоёр ээлжийн бүртгэл бүгдийг зохицуулж чадна. Би эхлээд ажиллана гэж бодож байсан хэлхээгээ судалж, зохиож, дараа нь талхны самбар дээр хийв.

Талхны хавтангийн хамгийн том бэрхшээл бол бүх утсыг удирдах явдал байв. Би талхны тавцангийн зориулалттай утсан иж бүрдэл авлаа, гэхдээ энэ нь арай л эвгүй байв. Ардуиногийн самбартай холбогдох "порт" бий болгох нь надад тустай байсан заль мэх юм. Өөрөөр хэлбэл, Arduino дээрх зүүг талхны самбар дээрх янз бүрийн IC зүүтэй шууд холбохоос илүүтэйгээр талхны самбар дээрх цөөн хэдэн мөрийг Arduino -г холбох цэг болгон зориулаад дараа нь холбогдох ID зүүг тэдгээр мөрөнд холбоно уу. Энэ төслийн хувьд танд Arduino -той ердөө 5 холболт хэрэгтэй: +5V, газардуулга, өгөгдөл, цаг, түгжээ.

Талхны хавтанг хийж дууссаны дараа би үүнийг туршиж үзэх хэрэгтэй болсон. Гэсэн хэдий ч ээлжийн бүртгэлд тохирох дохиог дамжуулах ямар нэгэн драйвер байхгүй бол би тоног төхөөрөмжийн зохион байгуулалт ажиллаж байгаа эсэхийг шалгах боломжгүй байсан.

Алхам 3: Жолоочийн програм хангамжийн дизайн

Image
Image

Програм хангамж хөгжүүлэх чиглэлээр ажилласан туршлагаа харгалзан үзсэнээр энэ бол миний хийх ёстой замын талаар хамгийн тодорхой байсан хэсэг юм. Би Arduino-д суурилсан бусад LED матрицын драйверуудыг судалж үзсэн. Мэдээжийн хэрэг сайн жолооч нар байгаа боловч хэн ч миний хүссэн загварыг гаргаагүй байна. Жолоочийн миний дизайны зорилго бол:

  • Зураг, анимацийг програмчлах чадвартай болгохын тулд өндөр түвшний API-ийг хангах. Миний харсан ихэнх жолооч нар хатуу кодтой зураг дээр илүү төвлөрдөг байсан. Түүнчлэн, би C ++ програмист мэргэжилтэй тул LED матриц руу зурах үйл ажиллагааг хэрэгжүүлэх, удирдахад объектод чиглэсэн сайн загварыг ашиглахыг хүсч байсан.
  • Дэлгэц дээрх зургийг удирдахын тулд давхар буфертай аргыг ашиглана уу. Нэг буфер нь програмчилсан байдлаар татагддаг зүйл бол нөгөө нь матрицын пикселийн төлөв байдлыг ямар ч үед илэрхийлдэг. Энэхүү аргын давуу тал нь мультиплекс хийх мөчлөгийн хооронд дэлгэцийн дараагийн хүрээний шинэчлэлтийг бүрэн гаргах шаардлагагүй юм.
  • Улаан, ногоон, цэнхэр өнгийн элементүүдийн энгийн хослолоор RGB дүрслэх долоон илүү өнгийг зөвшөөрөхийн тулд ХОУХ -ийг ашиглаарай.
  • Драйверыг миний ерөнхий матрицын дизайны аргыг дагаж мөрдсөн өөр өөр хэмжээтэй RGB LED матрицтай "ажиллах" боломжтой гэж бичээрэй. Миний техник хангамжийн дизайн 74HC595 ээлжийн бүртгэлийг ашигладаг боловч миний жолооч миний тоног төхөөрөмжийн дизайнтай ижил төстэй битийн схемийг ашиглан байрлуулсан ээлжийн бүртгэлийн хэв маягийг ажиллуулахыг би хүсч байна. Жишээлбэл, миний жолооч DM13A чип ашиглан багануудыг удирдах, 74HC595 чипийг мөрүүдийг хянахад ашигладаг тоног төхөөрөмжийн дизайнтай ажиллах болно гэж би хүлээж байна.

Хэрэв та драйверын кодыг шууд харахыг хүсч байвал GitHub дээрээс эндээс олж болно.

Миний жолоочийн анхны давталт нь Arduino платформын чадавхийг сурч мэдсэн муруй байв. Хамгийн тодорхой хязгаарлалт бол Arduino Uno болон Nano -ийн хувьд 2K байт хэмжээтэй RAM юм. Ийм тохиолдолд объектуудын санах ойн хэт ачааллаас болж C ++ объектыг ашиглахыг зөвлөдөггүй. Гэсэн хэдий ч хэрэв зөв хийсэн бол C ++ дээрх объектуудын ашиг тус нь тэдний өртөгөөс давж гарсан (RAM дээр).

Хоёрдахь том сорилт бол импульсийн өргөний модуляцийг ээлжийн бүртгэлээр хэрхэн яаж хэрэгжүүлэхийг олж мэдэх явдал байв, ингэснээр би RGB LED-ийн долоон илүү өнгийг бий болгож чадна. Линукс платформ дээр олон жилийн турш програмчлагдсан тул тогтмол цаг шаарддаг процессуудыг удирдахын тулд урсгал гэх мэт бүтцийг ашиглаж байсан. Ээлжийн бүртгэлийг шинэчлэх үйл ажиллагааны хугацаа нь мультиплекс ашигладаг LED матрицын драйверийг гаргахад маш чухал ач холбогдолтой юм. Үүний шалтгаан нь мультиплекс нь маш хурдан явагдаж байгаа бөгөөд тус тусдаа LED асаж, унтрах нь таны нүдэнд харагдахгүй байгаа ч таны гэрлүүд аль ч LED асаалттай байгаа нийт хугацааны зөрүүг олж чадна. Хэрэв нэг эгнээ LED нь бусадтай харьцуулахад удаан хугацаанд тогтмол асдаг бол мультиплекс хийх явцад илүү гэрэл гэгээтэй харагдах болно. Энэ нь матрицын тэгш бус тод байдал эсвэл матрицыг бүхэлд нь үе үе цохиход хүргэдэг (энэ нь нэг шинэчлэлтийн мөчлөг бусадтай харьцуулахад илүү удаан үргэлжилдэг).

Надад ээлжийн бүртгэлийн шинэчлэлтийг зөвшөөрөхөд цаг хугацааны тогтвортой механизм хэрэгтэй байсан боловч Arduino нь утсыг албан ёсоор дэмждэггүй тул би өөрийн урсгалтай төстэй механизмыг бий болгох шаардлагатай болсон. Миний анхны давталт бол зүгээр л Arduino loop () функцээс хамаарах давталтын таймерыг бий болгох явдал байсан бөгөөд энэ үйлдлийг сүүлчийн удаа ажиллуулснаас хойш тодорхой хугацаа өнгөрөхөд үйлдэл хийх болно. Энэ бол "хоршоотой олон ажил хийх" хэлбэр юм. Энэ нь сайн сонсогдож байгаа боловч бодит байдал дээр буудлагын хурдыг микросекундээр хэмжихэд энэ нь хоорондоо зөрчилдсөн юм. Үүний шалтгаан нь хэрэв би эдгээр хоёр давталтын таймертай байсан бол тэдний нэг үйлдэл нь хангалттай удаан үргэлжилж, хоёр дахь үйлдлийг хүссэн цагаасаа хожуу галлахад хүргэдэг.

Энэ асуудлын шийдэл бол Arduino -ийн төрөлхийн цаг таслах механизмыг ашиглах явдал гэдгийг олж мэдсэн. Энэхүү механизм нь танд маш бага интервалтайгаар бага зэрэг код ажиллуулах боломжийг олгодог. Тиймээс би драйверын кодыг цагийн тасалдал ашиглан дизайны элементийн эргэн тойронд зохион бүтээсэн бөгөөд матрицын ээлжийн кодыг илгээх мультиплекс мөчлөгийн дараагийн шинэчлэлтийг бүртгэдэг. Үүнийг хийхийн тулд ээлжийн бүртгэлийг идэвхтэй хаяхад саад болохгүйн тулд дэлгэцийн дүрсийг шинэчлэхийг зөвшөөрөхийн тулд (үүнийг "уралдааны нөхцөл" гэж нэрлэдэг байсан) би ээлжийн бүртгэлийн битүүдэд ихэр буфертай байх аргыг ашигласан. бичихэд, нэгийг нь уншихад зориулав. Хэрэглэгч матрицын зургийг шинэчилж байх үед эдгээр үйлдэл нь бичих буферт тохиолддог. Эдгээр үйлдлүүд дуусмагц тасалдлыг түр зогсооно (энэ нь цагийн тасалдал асахгүй гэсэн үг) ба бичих буфер нь өмнөх уншсан буфертай солигдсон бөгөөд энэ нь шинэ унших буфер биш тул тайлбарыг дахин идэвхжүүлнэ. Дараа нь цаг тасалдах үед дараагийн битийн тохиргоог ээлжийн бүртгэлд илгээх цаг болсныг илтгэнэ. Ийнхүү цагийн тасалдлын үед одоогоор уншиж буй буферт ямар ч бичээс гарахгүй бөгөөд энэ нь ээлжийн бүртгэлд илгээсэн мэдээллийг эвдэж болзошгүй юм.

Жолоочийн үлдсэн хэсгийг зохион бүтээх нь объектод чиглэсэн дизайны хувьд харьцангуй энгийн тохиолдол байв. Жишээлбэл, би ямар ч дэлгэцийн төлөвт шилжих регистрийн битийн зургийг удирдах объект үүсгэсэн. Бит зургийн удирдлагатай холбоотой кодыг нэгтгэснээр дээр дурдсан ихэр буфер аргыг бий болгох нь өөрөө энгийн дасгал байсан юм. Гэхдээ би энэ зааврыг объектод чиглэсэн дизайны давуу талыг магтан дуулах гэж бичээгүй. Загварын бусад элементүүд нь Glyph ба RGB дүрс гэсэн ойлголтыг агуулдаг. Глиф бол төрөлхийн өнгөний мэдээлэлгүй үндсэн дүрсний бүтэц юм. Та үүнийг хар цагаан дүрс гэж ойлгож болно. Глифийг LED дэлгэц дээр зурах үед "цагаан" пикселийг хэрхэн яаж өнгө оруулахыг зааж өгөх зорилгоор өнгөний мэдээллийг өгдөг. RGB зураг бол пиксел бүр өөрийн гэсэн өнгөний мэдээлэл агуулсан дүрс юм.

RGB LED матриц дээр зураг, анимац үүсгэхийн тулд драйверийг хэрхэн ашиглах талаар мэдэхийн тулд Arduino -ийн ноорог зургийн жишээг шалгаж, жолоочийн толгойн баримт бичгийг хянахыг зөвлөж байна.

Алхам 4: LED Ghosting

LED хий үзэгдэл
LED хий үзэгдэл
LED хий үзэгдэл
LED хий үзэгдэл

LED матрицын хувьд "хий үзэгдэл" гэдэг нь матриц дахь LED нь хүсээгүй үед гэрэлтэх үзэгдэл бөгөөд ихэвчлэн маш буурсан түвшин юм. Миний анхны тоног төхөөрөмжийн загвар хий үзэгдэлд өртөмтгий байсан, ялангуяа сүүлийн эгнээнд. Үүний шалтгаан нь хоёр зүйлээс үүдэлтэй: транзисторууд нэн даруй унтрахгүй бөгөөд RGB LED -ийн паразит багтаамж.

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

Транзисторын ханалтын асуудлыг шийдэхийн тулд транзисторыг асаахад суурь руу бага зэрэг буцах гүйдэл үүсгэхийн тулд транзисторыг ханасан байхаас сэргийлж суурийн болон коллекторын хооронд транзистор дээр Schottky диодыг нэмж болно. Энэ нь эргээд сууринаас гүйдлийг зайлуулах үед транзисторыг хурдан унтраахад хүргэдэг. Энэхүү эффектийн талаар дэлгэрэнгүй тайлбарыг энэ нийтлэлээс үзнэ үү. Энэ хэсгийн зургаас харахад диодгүйгээр хий дамжуулах нь мэдэгдэхүйц боловч эгнээ бүрт диод оруулах нь хий үзэгдлийг ихээхэн арилгадаг.

RGB LED нь паразит багтаамж гэж нэрлэгддэг өөр нэг үзэгдэлд өртөмтгий байдаг. Үүний үндсэн шалтгаан нь RGB LED нэгжийн гурван өнгийн LED тус бүр өөр өөр хүчдэлтэй байдаг явдал юм. Урагшлах хүчдэлийн энэ ялгаа нь LED өнгө тус бүрийн хооронд цахилгаан багтаамжийн нөлөөллийг үүсгэж болно. Цахилгаан тэжээлийг асаах үед LED нэгжид цахилгаан цэнэг хуримтлагддаг тул тэжээлийг салгахад шимэгчийн багтаамжийг гадагшлуулах шаардлагатай болдог. Хэрэв тэр LED багана нь өөр эгнээ асаахад асаалттай байвал паразит цэнэг нь LED баганаар дамжин богино хугацаанд гэрэлтэх болно. Энэ эффектийг энэ нийтлэлд маш сайн тайлбарласан болно. Асуудлын шийдэл нь энэхүү шимэгч цэнэгийн LED -ээс өөр цэнэглэх замыг нэмж, баганыг дахин асаахаас өмнө LED -ийг цэнэглэх хугацааг өгөх явдал юм. Миний техник хангамжийн дизайнд үүнийг хүч чадлыг газартай холбосон эгнээ бүрийн цахилгаан дамжуулах шугамд резистор нэмж хийснээр хийдэг. Энэ нь эгнээг тэжээх үед илүү их гүйдэл татах болно, гэхдээ эгнээ тэжээгдээгүй үед паразитийн багтаамжийг гадагшлуулах замыг өгдөг.

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

Алхам 5: Эцсийн үйлдвэрлэл ба дараагийн алхамууд

Image
Image

Энэ төслийн эцсийн шат бол миний хувьд хэвлэмэл хэлхээний самбар (ПХБ) хийх явдал байв. Би ПХБ -ийн загварыг гаргахдаа Fritzing нээлттэй эхийн програмыг ашигласан. 100 LED -ийг 10х10 хэмжээтэй самбар дээр байрлуулахын тулд маш олон удаа давтагдах даалгаврууд байсан боловч би төслийн энэ үе шатыг үнэхээр сэтгэл хангалуун санагдлаа. Цахилгаан зам бүр хэрхэн яаж тавигдахыг олж мэдэх нь таавар шиг байсан бөгөөд энэ тааврыг шийдэх нь амжилтанд хүрэх мэдрэмжийг төрүүлэв. Би хэлхээний самбар үйлдвэрлэхээр тохируулагдаагүй байгаа тул захиалгат ПХБ -ийн жижиг гүйлгээ хийдэг олон онлайн нөөцийн нэгийг ашигласан. Миний дизайн бүх нүхний эд ангиудыг ашигласан тул эд ангийг гагнах нь нэлээд урагштай байв.

Энэхүү зааварчилгааг бичиж байх үед би RGB LED матрицын төслүүдийнхээ талаар дараахь төлөвлөгөөтэй байна.

  1. Программистын дээд түвшний функцийг идэвхжүүлэхийн тулд драйверийг API давхарга дээр үргэлжлүүлэн сайжруулж, ялангуяа текст гүйлгэх.
  2. Илүү том матрицын загварыг бий болгох, жишээлбэл 16x16 эсвэл бүр 16x32.
  3. Эгнээ шилжүүлэхийн тулд BJT -ийн оронд MOSFET -ийг ашиглах талаар судлаарай
  4. Багана солихын тулд 74HC595 -ээс илүү DM13A -ийн тогтмол гүйдлийн драйверуудыг ашиглаж үзээрэй
  5. Teensy, ODROID C2 эсвэл Raspberry Pi гэх мэт бусад микро хяналтын платформуудын драйверуудыг бий болгох.

Тоног төхөөрөмжийн дизайн болон драйвер хоёулаа GitHub репозиторт GPL v3 нээлттэй эхийн лицензийн дагуу гарсан болохыг анхаарна уу. Цаашилбал, ПХБ -ийн үйлдвэрүүд миний ПХБ -ийн загварыг "жижиг ажиллуулдаг" ч гэсэн би хувьдаа хэрэгтэй байгаагаасаа илүү ихийг олж авдаг. Тиймээс би өөрийн вэбсайтаас RGB LED матрицын янз бүрийн дизайны иж бүрдлийг (ПХБ болон түүний бүх хэсгийг багтаасан) зарж байна.

Зөвлөмж болгож буй: