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

3-утастай HD44780 LCD нь 1 доллараас бага: 5 алхам
3-утастай HD44780 LCD нь 1 доллараас бага: 5 алхам

Видео: 3-утастай HD44780 LCD нь 1 доллараас бага: 5 алхам

Видео: 3-утастай HD44780 LCD нь 1 доллараас бага: 5 алхам
Видео: 🤫☎️❤️Суурин утастай дурсамжууд❤️☎️🤫 2024, Долдугаар сарын
Anonim
1 утаснаас бага үнэтэй 3 утастай HD44780 LCD
1 утаснаас бага үнэтэй 3 утастай HD44780 LCD

Энэхүү зааварчилгаанд бид HD44780 чипсет дээр суурилсан LCD -ийг SPI автобусанд холбож, 1 доллараас бага үнээр ердөө 3 утастай жолоодох талаар сурах болно. Энэхүү гарын авлагад би HD44780 үсэг тоон дэлгэц дээр анхаарлаа хандуулах болно, гэхдээ ижил зарчим нь 8 битийн зэрэгцээ өгөгдлийн автобус ашигладаг бусад LCD -тэй адилхан ажиллах болно, үүнийг 16 битийн өгөгдлийн автобус бүхий дэлгэцэнд тохируулах боломжтой.. HD44780 (ба нийцтэй) дээр суурилсан үсэг тоон дэлгэцийг ихэвчлэн 16х2 хэмжээтэй (16 тэмдэгтээс бүрдсэн 2 мөр) болон 20х4 хэмжээтэй байдаг боловч өөр олон хэлбэрээр олж болно. Хамгийн "төвөгтэй" дэлгэц нь 40х4 хэмжээтэй дэлгэц байх болно, энэ дэлгэц нь хоёр HD44780 хянагчтай бөгөөд нэг нь дээд хоёр эгнээ, нэг нь доод хоёр эгнээнд зориулагдсан болно. Зарим график LCD дэлгэц нь хоёр хянагчтай байдаг. HD44780 LCD дэлгэц нь гайхалтай, маш хямд, уншихад хялбар, ажиллахад тун хялбар. Гэхдээ тэдгээр нь бас зарим сул талуудтай бөгөөд эдгээр дэлгэцүүд нь Arduino -тэй холбогдсон үед маш их оролт/гаралтын зүү эзэлдэг. Энгийн төслүүдийн хувьд энэ нь санаа зовох зүйл биш боловч төслүүд том хэмжээтэй, их хэмжээний IO -тэй болох эсвэл аналог унших, ХОУХ гэх мэт зүйлд тодорхой зүү шаардагдах тохиолдолд эдгээр LCD дэлгэцэнд дор хаяж 6 зүү шаардлагатай байдаг. асуудал Гэхдээ бид энэ асуудлыг хямд, сонирхолтой аргаар шийдэж чадна.

Алхам 1: Бүрэлдэхүүн хэсгүүдийг авах

Би энэ төсөлд ашигласан ихэнх бүрэлдэхүүн хэсгүүдэд TaydaElectronics -ийг ашигласан. Та эдгээр эд ангиудыг ebay дээрээс авах боломжтой боловч ашиглахад хялбар болгох үүднээс би таныг Tayda дэлгүүрийн жагсаалт 2 - 74HC595 багц DIP161 - ерөнхий эрэгтэй толгой - 2 голтой холбож өгөх болно. Үүнийг хийх шаардлагагүй, би үүнийг арын гэрлийг бүрмөсөн унтраах арга болгон ашигласан. 3 - Керамик конденсатор - багтаамж 0.1μF; хүчдэл 50V1 - Электролитийн конденсатор - багтаамж 10µF; хүчдэл 35V1 - Керамик конденсатор - багтаамж 220pF; хүчдэл 50V1 - NPN -Транзистор - хэсэг # PN2222A* 1 - 1к Ω Резистор1 - Триммерийн потенциометр - хамгийн их эсэргүүцэл 5kΩ1 - 470 Ω Эсэргүүцэл* NPN транзистортой бол арын гэрэл нь програм хангамж асаах хүртэл унтраах болно. Хэрэв та арын гэрлийг анхдагчаар асаахыг хүсвэл PNP төрлийн транзистор ашиглана уу. Номын сангийн кодод өөрчлөлт оруулах шаардлагатай болно. Энэ жагсаалтын нийт дүн 0.744 доллар байна. Зүү толгой нь бас шаардлагагүй тул та тэндээс 15 цент хэмнэх боломжтой бөгөөд нийт дүн нь 0.6 доллар болно.

Алхам 2: Тоног төхөөрөмжөө мэдэх #1

Тоног төхөөрөмжөө мэдэх #1
Тоног төхөөрөмжөө мэдэх #1

HD44780 LCD -ийн стандарт зүү нь зарим график LCD -тэй маш төстэй юм. HD44780 нь хоёр горимд ажиллах боломжтой: 1. 4 битийн горим, LCD рүү илгээсэн байт бүр 4 4 битийн хэсгээс бүрдэнэ. 2. Бид анхаарлаа төвлөрүүлэх 8 битийн горим. LCD нь нийт 16 зүү, 3 хяналтын зүү, 8 өгөгдлийн зүүтэй: RS - Бид LCD рүү тушаал эсвэл өгөгдөл илгээхийг хүсч буй эсэхийг хянадаг. "Өндөр" гэдэг нь өгөгдөл (тэмдэгт), "бага" гэдэг нь байт гэсэн үг юм. R/W - HD44780 хянагч нь RAM -ээс унших боломжийг олгодог. Энэ зүү "өндөр" байх үед бид түүний өгөгдлийн хавчаараас өгөгдлийг унших боломжтой. "Бага" үед бид өгөгдлийг LCD дээр бичиж болно. LCD дэлгэцээс унших сонголт нь зарим тохиолдолд ашигтай байж болох ч бид энэ хичээл дээр үүнийг авч үзэхгүй бөгөөд үргэлж бичих горимд байгаа эсэхийг шалгахын тулд энэ зүүг газардуулах болно., энэ зүүг өгөгдлийг RAM -д бичиж, эцэст нь дэлгэцэн дээр харуулахын тулд 'өндөр', 'бага' болгож солино. 4 битийн горимд бид зөвхөн 4 өндөр битийн DB4 -DB7 -ийг ашигладаг бөгөөд 8 битийн горимд бүгдийг нь ашигладаг. VSS - Энэ бол газардуулгын зүү юм., Бид үүнийг Arduino + 5v зүүгээр тэжээх боломжтой. Vo - Энэ нь дэлгэцийн тодосгогч түвшинг тогтоох боломжийг олгодог зүү бөгөөд энэ нь потенциометрийг шаарддаг бөгөөд ихэвчлэн 5K Ом сав хэрэглэдэг. LED + - Энэ бол арын гэрэлтүүлгийн тэжээлийн эх үүсвэр. Зарим LCD дэлгэц нь арын гэрэлтэй байдаггүй бөгөөд зөвхөн 14 зүүтэй байдаг. Ихэнх тохиолдолд энэ зүү нь +5V холболттой байхыг шаарддаг. -Дараа тохиолдолд энэ тохиолдолд LED+ дээр хүч хэрэглэж, LED-д газ тавихад л хангалттай. Гэхдээ хэрэв таны LCD дэлгэц нь арын гэрлийг суурилуулсан эсэргүүцэлгүй бол үүнийг нэмэх нь чухал юм, эс тэгвээс арын гэрэл маш их хүч зарцуулж, эцэст нь шатах болно. Ихэнх тохиолдолд энэ LCD дэлгэцийг Arduino руу холбох арга нь 4 битийн горимд ашиглах, R/W зүүг газардуулах явдал юм. Ингэснээр бид RS, E, DB4-DB7 зүү ашигладаг. 4 битийн горимд ажиллах нь бас нэг жижиг сул талтай бөгөөд өгөгдлийг дэлгэц дээр бичихэд 8 битийн тохиргоонд шаардагдахаас хоёр дахин их хугацаа шаардагддаг. LCD нь 37 микрекундын "шийдвэрлэх" хугацаатай байдаг бөгөөд энэ нь дараагийн тушаал эсвэл өгөгдлийн байтыг LCD дэлгэц рүү илгээхээс өмнө 37 микрекунд хүлээх ёстой гэсэн үг юм. 4 битийн горимд бид байт тус бүрт хоёр удаа өгөгдөл илгээх ёстой байдаг тул нэг байт бичих нийт хугацаа 74 микроносекунд хүртэл үргэлжилдэг. Энэ нь хангалттай хурдан хэвээр байгаа ч би дизайныг хамгийн сайн үр дүнд хүргэхийг хүссэн юм. Ашигласан тээглүүрийн тоотой холбоотой бидний асуудлыг шийдэх шийдэл нь цуваа ба параллель хөрвүүлэгч дээр байна …

Алхам 3: Тоног төхөөрөмжөө мэдэх #2

Тоног төхөөрөмжөө мэдэх #2
Тоног төхөөрөмжөө мэдэх #2

Бидний хийх зүйл бол Arduino -ээс цуваа төрлийн холболтыг авдаг адаптер бүтээх бөгөөд өгөгдлийг параллель гаралт болгон хөрвүүлэх бөгөөд үүнийг манай LCD дэлгэц рүү оруулах боломжтой болно. 74HC595 чип ирдэг. Энэ бол маш хямд бөгөөд ажиллахад хялбар ээлжийн бүртгэл юм. Үндсэндээ юу хийдэг вэ гэвэл дотоод 8 битийн буферийг "цагдсан" сүүлийн 8 битээр дүүргэхэд ашигладаг цаг, өгөгдлийн дохиог авах шаардлагатай. 'Latch' (ST_CP) зүүг "өндөр" болгож авсны дараа эдгээр битүүдийг 8 гаралт руу нь шилжүүлнэ. 595 нь маш гоё онцлогтой, цуваа өгөгдлийн зүүтэй (Q7 ') бөгөөд энэ зүүг 2 ба түүнээс дээш 595 -ийн гинжин хэлхээнд ашиглаж 16 ба түүнээс дээш битийн өргөнтэй параллель адаптер үүсгэж болно. Энэ төслийн хувьд бидэнд эдгээр 2 чип хэрэгтэй болно. Схемийг мөн 4 битийн горимд нэг 595-тэй ажиллахаар өөрчилж болох боловч үүнийг энэ зааварт хамруулахгүй.

Алхам 4: Бүгдийг нь холбоно уу

Бүгдийг холбож байна
Бүгдийг холбож байна

Тоног төхөөрөмж хэрхэн ажилладагийг бид одоо мэдэж байгаа болохоор бүгдийг нь холбож болно. Схемийн дагуу бид 16 битийн зэрэгцээ гаралт үүсгэхийн тулд гинжлэгдсэн 2 595 чипийг харж байна. Доод талын чип нь үндсэндээ дээд хэсэг бөгөөд дээд хэсэг нь түүнд гинжлэгдсэн байдаг. Энд бидний харж байгаа зүйл бол доод талын 595 нь LCD өгөгдлийн зүүг 8 битийн тохиргоонд хөтөлж байгаа бөгөөд дээд чип нь RS дохио болон арын гэрлийг транзисторыг асаах, унтраах замаар удирддаг. LCD арын гэрлийн тухай *тэмдэглэлийг санаарай Тоног төхөөрөмжийнхөө дугаарыг мэдэх №1 хуудас, хэрэв таны LCD арын гэрэлтүүлгийн эсэргүүцэлгүй бол хэлхээндээ нэмж оруулахаа бүү мартаарай. Миний хувьд LCD дэлгэц нь аль хэдийн суулгагдсан резистортой ирсэн тул би энэ алхамыг алгассан. Эсрэг ялгааг 5K Ом саванд хийж, нэг зүү нь GND руу, хоёр дахь нь VCC, арчигчийг LCD дээрх Vo зүү рүү дамжуулдаг. LCD ба 595 -ийн VCC шугамд ашигладаг конденсаторууд нь хөндлөнгийн оролцоог арилгахын тулд конденсаторыг салгадаг. Хэрэв та талхны тавцан дээр ажиллаж байгаа бол эдгээр нь заавал байх албагүй боловч "лабораторийн нөхцлөөс" гадуур ашиглахын тулд энэ хэлхээний өөрийн хувилбарыг бүтээсэн тохиолдолд ашиглах ёстой. R5 ба C9 нь тодорхой дарааллаар RC хоцролтыг бий болгодог бөгөөд энэ нь 595 -ийн гаралтын өгөгдөл нь LCD дээрх идэвхжүүлэх зүүг "өндөр" болгож, өгөгдлийг уншихаас өмнө тогтворжуулах хугацаатай байдаг. Доод 595 -ийн Q7 'нь дээд талын 595 -ийн цуваа өгөгдлийн оролт руу ордог бөгөөд энэ нь 595 -ийн Daisy гинжийг үүсгэдэг бөгөөд ингэснээр 16 битийн интерфэйс юм. Arduino руу утас холбоход хялбар байдаг. Бид Arduino-ийн SPI тээглүүрийг ашиглан 3 утастай тохиргоог ашигладаг. Энэ нь маш хурдан өгөгдөл дамжуулах боломжийг олгодог бөгөөд 2 байтыг LCD дэлгэц рүү илгээхэд ихэвчлэн 8 микронекунд зарцуулдаг. Энэ нь маш хурдан бөгөөд үнэн хэрэгтээ энэ нь өгөгдлийг боловсруулахад LCD дэлгэцээс шаардагдах хугацаанаас хамаагүй хурдан байдаг тул бичих бүрийн хооронд 30 микросекунд саатах шаардлагатай болдог. SPI ашиглахын нэг том давуу тал бол D11 ба D13 тээглүүрүүдийг бусад SPI төхөөрөмжүүдтэй хуваалцах явдал юм. Энэ нь хэрэв танд SPI ашигладаг өөр нэг бүрэлдэхүүн хэсэг байгаа бол акселерометр гэх мэт энэ шийдэл нь идэвхжүүлэх дохионы хувьд зөвхөн нэг нэмэлт зүү ашиглах болно гэсэн үг юм. Дараагийн хуудсан дээр бид үр дүнг харах болно. Би цүнхний тавцан дээр үүргэвч хийсэн бөгөөд энэ нь миний хувьд маш сайн ажиллаж байна.

Алхам 5: Үр дүн + номын сан

Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан
Үр дүн + номын сан

"Зураг мянган үгний үнэтэй", би энэ мэдэгдэлтэй санал нийлж байгаа тул энэ төслийн эцсийн үр дүнгийн зарим зургийг энд оруулав. Эдгээр нь дууссан бүтээгдэхүүний зураг, Fritzing ПХБ -ийн харагдац бол миний үүргэвчийг бүтээхэд ашиглаж байсан перфрон самбар юм. Хэрэв та өөрийн гараар бүтээхийг хүсч байвал энэ нь танд ашигтай байж магадгүй юм. Энэ нь надад маш их таалагдсан тул би DipTrace ашиглан ПХБ -ийг зохион бүтээж, 10 ширхэг ПХБ -ийн багц захиалсан. Надад 2 эсвэл 3 ширхэг хэрэгтэй болно, гэхдээ үлдсэнийг нь хүлээн авахдаа бэлгэдлийн үнээр авах боломжтой болно. Тиймээс хэн нэгэн сонирхож байвал надад мэдэгдээрэй. * Засварлах: ПХБ энд байгаа бөгөөд тэд ажилладаг. Бодит ПХБ -ийг багтаасан энэхүү төслийн бүрэн зургийн галлерей энд байна. https://imgur.com/a/mUkpw#0 Мэдээжийн хэрэг би энэ хэлхээг ашиглах номын сангийн хамгийн чухал зүйлийг мартаагүй. Энэ нь Arduino IDE -д багтсан LiquidCrystal номын сантай нийцдэг тул та зургийнхаа дээд хэсэгт байгаа мэдүүлгийг хялбархан сольж болох бөгөөд ноорог дээрээ өөр зүйлийг өөрчлөх шаардлагагүй болно. Номын сан дахь функц бүр хэрхэн ажилладагийг харуулсан жишээ тойм зураг байгаа тул үүнийг үзээрэй.

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