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

Үндсэн марк 2 (bs2) ба Charlieplexing ашиглан 5x4 LED дэлгэцийн матриц: 7 алхам
Үндсэн марк 2 (bs2) ба Charlieplexing ашиглан 5x4 LED дэлгэцийн матриц: 7 алхам

Видео: Үндсэн марк 2 (bs2) ба Charlieplexing ашиглан 5x4 LED дэлгэцийн матриц: 7 алхам

Видео: Үндсэн марк 2 (bs2) ба Charlieplexing ашиглан 5x4 LED дэлгэцийн матриц: 7 алхам
Видео: 5 способов как сделать базовые плоскости ручным электроинструментом. Столярка без станков. 2024, Долдугаар сарын
Anonim
Үндсэн марк 2 (bs2) болон Charlieplexing ашиглан 5х4 хэмжээтэй LED дэлгэцийн матриц
Үндсэн марк 2 (bs2) болон Charlieplexing ашиглан 5х4 хэмжээтэй LED дэлгэцийн матриц

Үндсэн тамга 2 болон зарим нэмэлт LED байгаа юу? Яагаад charlieplexing гэсэн ойлголттой тоглож, зөвхөн 5 тээглүүр ашиглан гаралт үүсгэж болохгүй гэж.

Энэхүү зааварчилгааны хувьд би BS2e -ийг ашиглах болно, гэхдээ BS2 гэр бүлийн аль ч гишүүн ажиллах ёстой.

Алхам 1: Charlieplexing: Юу, яагаад, яаж

Яагаад үндсэн марк 2 ашиглан charlieplexing ашигладаг вэ? --- Үзэл баримтлалын нотолгоо: charlieplexing хэрхэн ажилладаг, BS2-ийн талаар ямар нэгэн зүйл мэдэж аваарай. Энэ нь дараа нь илүү хурдан 8-зүү чип ашиглахад надад ашигтай байж магадгүй юм (зөвхөн 5 нь л i/o байх болно.) BS2 нь анивчихгүйгээр анивчихгүй байхад харуулахад хэтэрхий удаан байдаг. Charlieplexing гэж юу вэ? Би charineplexing талаар www.instructables.com дээрээс олж мэдсэн бөгөөд та ч бас чадна: Charlieplexing LED- Онол Хэдэн микроконтроллерийн голоос хэрхэн олон тооны LED хөтлөх вэ? Мөн википедиа дээр: CharlieplexingБи 20 i led-ийг 5 i/o pin ашиглан хэрхэн жолоодох вэ? --- "Charlieplexing гэж юу вэ?" Гэсэн гурван холбоосыг уншина уу. Энэ нь миний бодож байснаас илүү сайн тайлбарлаж байна. Charlieplexing нь уламжлалт мультиплексээс ялгаатай бөгөөд мөр, багана бүрт нэг оролтын зүү хэрэгтэй (энэ нь 5/4 дэлгэцийн хувьд нийт 9 i/o зүү байх болно).

Алхам 2: Техник хангамж ба схем

Техник хангамж ба схем
Техник хангамж ба схем

Материалын жагсаалт: 1х - Үндсэн марк 220х - ижил төрлийн гэрэл ялгаруулах диод (LED) (өнгө ба хүчдэлийн уналт) 5х - резистор (эсэргүүцлийн утгын талаар доороос үзнэ үү) Туслах/Нэмэлт: BS2 -ийн товчлуурыг дахин тохируулах товчлуур болгон програмчлах арга 6v -9vТаны BS2 хувилбараас хамаарч цахилгаан хангамж (таны гарын авлагыг уншина уу) Схем: Энэхүү бүдүүвчийг механик зохион байгуулалтыг харгалзан үзнэ. Та зүүн талд LED -ийн сүлжээг харах болно, энэ бол BS2 кодыг бичсэн чиглэл юм. LED хос бүр анод нь нөгөөгийнхөө катодтой холбогдсон болохыг анхаарна уу. Дараа нь тэдгээр нь оролтын 5 зүүтэй холбогдсон байна. LED -ийн өгөгдлийн хүснэгтийг шалгана уу эсвэл дижитал мултиметр дээрх LED тохиргоог ашиглан LED -ийн хүчдэлийн уналтыг олоорой. Зарим тооцоог хийцгээе: хангамжийн хүчдэл - хүчдэлийн бууралт / хүссэн гүйдэл = эсэргүүцлийн утга одоогийн. Миний LED нь 1.6 вольтын уналттай бөгөөд 20ma.5v - 1.6v /.02amps = 155ohms дээр ажилладаг. BS2 -ийг хамгаалахын тулд тооцоолохдоо олж авсан зүйлээсээ эсэргүүцлийн дараагийн өндөр утгыг ашиглах ёстой, энэ тохиолдолд 180 ом байна гэж би бодож байна. Би 220 ом ашигладаг байсан, учир нь миний хөгжлийн самбар нь оролтын зүү тус бүрийн хувьд эсэргүүцлийн утгыг агуулдаг. ТАЙЛБАР: Зүү тус бүрт эсэргүүцэл байгаа тул энэ нь тус бүрийн эсэргүүцлийг хоёр дахин нэмэгдүүлдэг гэдэгт би итгэдэг, учир нь нэг зүү нь V+, нөгөө нь Gnd юм. Хэрэв тийм бол та резисторын утгыг хоёр дахин бууруулах хэрэгтэй. Хэт өндөр резисторийн сөрөг нөлөө нь бүдэг LED юм. Хэн нэгэн үүнийг баталгаажуулаад надад энэ мэдээллийг шинэчлэхийн тулд надад РМ эсвэл сэтгэгдэл үлдээж болох уу? Програмчлал: Би DB9 холбогчтой хөгжүүлэлтийн самбарыг ашиглан чипийг шууд самбар дээр програмчилж байсан. Би энэ чипийг гагнуургүй талхны самбар дээр ашигладаг бөгөөд хэлхээний цуваа програмчлал (ICSP) толгойг оруулсан болно. Толгой нь 5 голтой, 2-оос 5 хүртэлх зүү нь DB9 цуваа кабелийн 2-5-р зүүтэй холбогддог (1-р зүү ашиглагдаагүй). Энэхүү ICSP толгойн 6 ба 7 -р зүүг ашиглахын тулд DB9 кабелийг хооронд нь холбох ёстойг анхаарна уу. Дахин тохируулах: Түр зуур тохируулах товчлуур нь заавал биш юм. Энэ нь түлхэх үед 22 -р зүүг газарт татдаг.

Алхам 3: Breadboard хийх

Breadboard хийх
Breadboard хийх
Breadboard хийх
Breadboard хийх

Одоо матрицыг талхны самбар дээр бүтээх цаг боллоо, би нэг хос хөлийг терминал туузаар холбож, нөгөө хөлийг холбох жижиг холбогч утсыг ашигласан. Үүнийг зураг дээр дэлгэрэнгүй тайлбарласан байгаа бөгөөд энд дэлгэрэнгүй тайлбарласан болно: 1. Илүү том зурагтай таарч талхны самбараа чиглүүлээрэй2. LED 1-ийг анод (+) өөр рүүгээ, катод (-) -аас хол зайд байрлуулна. LED 2 -ийг LED 1 катодын анод (+) -тай ижил чиглэлд байрлуулна. LED 1 -ийн анодыг LED 2.5 -ийн катодтой холбохын тулд жижиг холбогч утсыг ашиглана уу. Давхар LED самбарыг самбар дээр нэмэх хүртэл давтан хийнэ үү. Зөвхөн 4 автобусны зурвас байдаг тул би P4 терминалын туузыг ашигладаг (I/O тав дахь холболт). Үүнийг доорх том зургаас харж болно. LED 1 катодын терминал туузыг P0 автобусны туузан дээр холбоно уу. Хос тус бүрт тохирох P* -г орлуулсан сондгой тоогоор LED тутамд давтана (схемийг үзнэ үү).7. LED 2 катодын терминал туузыг P1 автобусны туузан дээр холбоно уу. Хос бүрийн тохирох P* -г орлуулсан сондгой дугаартай LED тус бүрт давтана (схемийг үзнэ үү). Автобусны зурвас бүрийг BS2 (P0-P4) дээрх зохих I/O зүүтэй холбоно уу.9. Бүх холболтыг схемд нийцэж байгаа эсэхийг шалгаарай.10. ТАЙЛБАР: Хоёрдахь оролт/гаралтын зүү нь сондгой тоогоор тоологдсон LED анод дээр байгаа тул би 7-р алхамыг дагаж мөрдөөгүй байна. Тэгш тоогоор тоологдсон LED -ийн катод нь сондгой тоогоор тоологдсон LED анодтой холбогдсон байдаг тул холболт хоёр талаараа адилхан гэдгийг санаарай. Хэрэв энэ тэмдэглэл таныг төөрөлдүүлж байвал түүнийг үл тоомсорлоорой.

Алхам 4: Програмчлалын үндэс

Charlieplexing -ийг ажиллуулахын тулд та нэг удаад нэг л асаана. BS2 -тэй ажиллахын тулд бидэнд хоёр үндсэн алхам хэрэгтэй: 1. OUTS командыг ашиглан тээглүүрүүдийн гаралтын горимуудыг тохируулна уу.2. BS2 -д DIRS командыг ашиглан ямар тээглүүрийг гаралт болгон ашиглахыг хэлнэ үү. Энэ нь BS2 -д аль тээглүүрийг өндөр ба доогуур жолоодохыг хэлж болох бөгөөд энэ нь ямар зүү гаралт болохыг зааж өгөх хүртэл хүлээх болно. зүгээр л LED анивчих гэж оролдож байна 1. Хэрэв та схемийг үзвэл P0 нь LED 1-ийн катодтой (-), P1 нь ижил LED-ийн анодтой холбогдсон байгааг харж болно. Энэ нь бид P0 бага, P1 өндөр жолоодохыг хүсч байна гэсэн үг юм. Үүнийг дараах байдлаар хийж болно: "OUTS = % 11110" нь P4-P1-ийг өндөр ба P0 бага жолооддог. (% Нь хоёртын тоог дагаж мөрдөхийг заана. Хамгийн доод хоёртын оронтой тоо үргэлж баруун талд байдаг. 0 = ДОО, 1 = ДЭЭД) BS2 нь энэ мэдээллийг хадгалдаг боловч бид ямар зүүг гаралт болохыг зарлах хүртэл ажиллахгүй. Энэ алхам нь маш чухал бөгөөд учир нь зөвхөн хоёр тээглүүр нэгэн зэрэг гарах ёстой. Үлдсэн хэсэг нь оролттой байх ёстой бөгөөд энэ нь тэдгээр нь өндөр эсэргүүцлийн горимд шилжих бөгөөд ингэснээр тэд ямар ч гүйдлийг шингээхгүй болно. Бид P0 ба P1 жолоодлоготой байх ёстой бөгөөд ингэснээр бид тэдгээрийг "DIRS = % 00011" гэсэн оролтод оруулах болно. (% Нь хоёртын тоог дагаж мөрдөхийг заана. Хамгийн доод хоёртын оронтой тоо үргэлж баруун талд байна. 0 = INPUT, 1 = OUTPUT) Үүнийг хамтдаа ашигтай код болгон оруулъя: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS = %11110 'Drive P0 low and P1-P4 high DIRS = %00011' P0- тохируулна уу. P1-ийг гаралтын хэлбэрээр, P2-P4-ийг оролтын хувьд PAUSE 250 'LED-ийг DIRS-д байлгахыг түр зогсооно уу = 0' Бүх зүүг оролтод тохируулна уу. Энэ нь LED -ийг унтраах хүртэл PAUSE 250 'Pause -ийг унтраах болно

Алхам 5: Хөгжлийн мөчлөг

Одоо бид бүгд ажиллаж байгаа эсэхийг шалгахын тулд нэг зүү ажиллах цагийг харлаа. Зүү бүрийг хогийн сав асаасны дараа би "DIRS = 0" -г ашиглан бүх зүүг оролт руу буцааж оруулахыг анзаарах болно. Хэрэв та гаралтын тээглүүрийг унтраалгүй OUTS -ийг өөрчилвөл циклийн хооронд асахгүй байх ёстой лед анивчих магадлалтай "хий үзэгдэл" гарч болзошгүй. Хэрэв та энэ кодын эхэн дэх W1 хувьсагчийг "W1 = 1" болгож өөрчилвөл LED анивчих бүрийн хооронд ердөө 1 миллисекундын завсарлага байх болно. Энэ нь алсын хараа (POV) эффектийг бий болгож, бүх LED асдаг шиг харагдуулдаг. Энэ нь LED -ийг бүдэгрүүлэх нөлөөтэй боловч энэ матриц дээр тэмдэгтүүдийг хэрхэн харуулах вэ гэдгийн гол утга учир юм. LED -ийг ашиглах боломжтой загвар болгоно. Энэ файл бол миний анхны оролдлого юм. Файлын доод хэсэгт тэмдэгтүүд 5 оронтой хоёртын хоёр мөрт дөрвөн мөрт хадгалагдаж байгааг та харах болно. Мөр бүрийг уншиж, задлан шинжилж, хөтчийг асаах шаардлагатай болгонд дэд програмыг дууддаг бөгөөд энэ код нь 1-0 тоогоор эргэлддэг. Хэрэв та үүнийг ажиллуулахыг оролдвол энэ нь маш удаан шинэчлэлтийн хурдтай байгаа бөгөөд тэмдэгтүүдийг танихад бараг хэт удаан анивчдаг болохыг анзаараарай. Энэ код нь олон шалтгааны улмаас муу байна. Нэгдүгээрт, хоёр оронтой таван оронтой тоо нь бүх мэдээллийг дөрвөн битийн бүлэгт хадгалдаг тул EEPROM -д 8 оронтой хоёр оронтой тэнцэх зай эзэлдэг. Хоёрдугаарт, ямар зүү асаах шаардлагатайг шийдэхийн тулд сонгосон тохиолдолд 20 тохиолдол шаардлагатай. BS2 нь SELECT үйлдлийн хувьд 16 тохиолдолд хязгаарлагддаг. Энэ нь би IF-THEN-ELSE мэдэгдэл ашиглан энэ хязгаарлалтыг тойрч гарах ёстой гэсэн үг юм. Илүү сайн арга байх ёстой. Хэдэн цагийн турш толгойгоо маажсаны дараа би үүнийг олж мэдэв.

Алхам 6: Илүү сайн орчуулагч

Манай матрицын мөр бүр 4 LED -ээс бүрдэх бөгөөд тус бүрийг асаах, унтраах боломжтой. BS2 нь EEPROM -д мэдээллийг дөрвөн битээр бүлэглэн хадгалдаг. Энэхүү хамаарал нь бидний ажлыг ихээхэн хөнгөвчлөх ёстой бөгөөд үүнээс гадна дөрвөн бит нь 0-15 аравтын бутархай тоотой тохирч, нийт 16 боломжоор хангадаг. Энэ нь EEPROM-д хадгалагдсан 7 гэсэн тоон үзүүлэлт юм: '7 %1111, %1001, %0010, %0100, %0100, Мөр бүр аравтын бутархай 0-15 хүртэл байдаг тул бид санах ойгоос эгнээнд оруулаад SELECT CASE функц рүү шууд оруулна уу. Энэ нь тэмдэгт бүрийг (1 = асаалттай, 0 = унтраасан) хийхэд ашигладаг хүний уншдаг хоёртын матриц нь орчуулагчийн түлхүүр юм гэсэн үг юм. 5 мөр бүрт ижил SELECT CASE ашиглахын тулд би өөр сонгосон тохиолдлыг ашигласан. DIRS ба OUTS -ийг хувьсагч болгон тохируулах. Би тэмдэгтийн таван мөр бүрт ROW1-ROW5 хувьсагчийг уншсан. Үндсэн програм нь дүрсийг харуулахын тулд дэд програмыг дууддаг. Энэхүү дэд програм нь эхний мөрийг авч, OUTS-ийн боломжит дөрвөн хослолыг outp1-outp4 хувьсагч, хоёр боломжит DIRS хослолыг direc1 & direc2 гэж оноодог. LED нь анивчдаг, эгнээний тоолуур нэмэгддэг, бусад дөрвөн мөр бүрт ижил процесс явагддаг бөгөөд энэ нь анхны орчуулагч програмаас хамаагүй хурдан юм. Гэсэн хэдий ч мэдэгдэхүйц анивчсан хэвээр байна. Видео бичлэгийг үзээрэй, камер нь анивчсан байдлыг улам дордуулж байгаа ч та энэ санааг олж авах болно. Энэ ойлголтыг picMicro эсвэл AVR чип гэх мэт илүү хурдан чип рүү хөрвүүлэх нь эдгээр дүрүүдийг анивчихгүйгээр анивчих боломжийг олгоно.

Алхам 7: Эндээс хаашаа явах вэ

Надад хэлхээний самбар хийх cnc тээрэм, сийлбэр хийх хэрэгсэл байхгүй тул би энэ төслийг холбохгүй. Хэрэв танд тээрэм байгаа бөгөөд эндээс урагшлахын тулд хамтран ажиллах сонирхолтой байгаа бол надад мессеж илгээгээрэй. Энэ төсөлд зориулж бэлэн бүтээгдэхүүн харуулахын тулд материал, тээвэрлэлтийн төлбөрийг төлөхөд би баяртай байх болно.

Бусад боломжууд: 1. Үүнийг өөр чип рүү холбоно уу. Энэхүү матрицын загварыг гурван төлөвт ажиллах боломжтой 5 оролттой (ямар ч чиптэй) ашиглаж болно (өндөр, нам эсвэл оролттой байж болно (өндөр эсэргүүцэлтэй)). 2. Илүү хурдан чип (магадгүй AVR эсвэл picMicro) ашиглан масштабыг нэмэгдүүлэх боломжтой. 20 зүү бүхий чипийн тусламжтайгаар та 8 х 22 хэмжээтэй дэлгэцийг charlieplex хийхдээ 14 зүү ашиглаж, үлдсэн зүүг ашиглан компьютер эсвэл өөр хянагчаас цуваа команд авах боломжтой. 20 зүүтэй гурван чипийг нэмж ашиглаарай, та 8х88 хэмжээтэй гүйлгэх дэлгэцтэй бөгөөд нэг дор нийт 11 тэмдэгт (мэдээж тэмдэгт бүрийн өргөнөөс хамаарна) боломжтой болно. Амжилт хүсье хөгжилтэй байгаарай!

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