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

Нэг MCU зүүгээр олон унтраалгыг хэрхэн унших вэ: 4 алхам
Нэг MCU зүүгээр олон унтраалгыг хэрхэн унших вэ: 4 алхам

Видео: Нэг MCU зүүгээр олон унтраалгыг хэрхэн унших вэ: 4 алхам

Видео: Нэг MCU зүүгээр олон унтраалгыг хэрхэн унших вэ: 4 алхам
Видео: Хатуу дискний жижиг зүлгүүр. HDD-г бүү хая!!! 2024, Оны зургадугаар сарын
Anonim
Олон унтраалгыг нэг MCU зүүгээр хэрхэн унших вэ
Олон унтраалгыг нэг MCU зүүгээр хэрхэн унших вэ

Та хэзээ нэгэн цагт ямар нэгэн төсөл хэрэгжүүлж байсан ч төсөл улам бүр өсөн нэмэгдэж байгаа бөгөөд үүнд та илүү их зүйлийг нэмж өгч байна (бид үүнийг Feaping Creaturism гэж нэрлэдэг)? Саяхны төсөл дээр би давтамж хэмжигч барьж, таван функцтэй дохио үүсгэгч/давтамжийн синтезатор нэмсэн. Би удалгүй надад байгаа зүү үлдсэнээс илүү олон унтраалгаар шархдууллаа, тэгээд яах ёстой залуу вэ?

Гэсэн хэдий ч удалгүй би Funbox дээрээ өөр долоон унтраалгатай болсон (тийм ээ, би үүнийг функциональ генератор гэж нэрлэдэг байсан … Надад бүтээлч чадвар байхгүй гэдгийг би мэднэ). Энэ нь ээлжийн бүртгэл эсвэл тодорхой IC -ийг шаарддаггүй. Үнэн хэрэгтээ, хэрэв салангид хагас дамжуулагч нь өнхрөх юм бол микроконтроллер шаардлагагүй болно. Та AVR (эсвэл бусад микроконтроллер дээр ганц товчлуур ашиглан олон унтраалгыг уншиж/удирдах боломжтой) AVR -ээс өөр микроконтроллер байдаг гэж би сонссон, гэхдээ би төсөөлж чадахгүй байна …).:)

Алхам 1: Үндсэн зүйлүүд (үнэндээ биш)

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

Хэрэв та хүсвэл хүчдэлийн хяналттай осциллятор ашиглан үүнийг анивчсан гэрлээр эсвэл өөр дуу чимээгээр илэрхийлж болно. Энэхүү номонд би AVR ашиглаж байгаа юм шиг дүр үзүүлэх гэж байна, гэхдээ таны ертөнцөд та аз жаргалтай болгодог бүх зүйлийг дүр эсгэх боломжтой. Би Боб Россыг санаж байна.

Алхам 2: Хүчдэл хуваагч

Хүчдэл хуваагч
Хүчдэл хуваагч
Хүчдэл хуваагч
Хүчдэл хуваагч

Үндсэндээ үүнийг хийх арга бол хүчдэл хуваагч гэж нэрлэгддэг техник, хэлхээг ашиглах явдал юм. Хүчдэл хуваагч нь таны таамаглаж байсанчлан V,, in,, хүчдэлийг таны тодорхойлсон утгаар хуваадаг. Та хүчдэлийг конденсатор ба индуктор гэх мэт хэд хэдэн бүрэлдэхүүн хэсгээр хувааж болно, гэхдээ би үүнийг сайн резистороор хийх болно. Бидний хийж буй санаа бол хоёр бүрэлдэхүүн хэсгийг дараалан байрлуулах явдал бөгөөд энэ нь тус бүр дээр тус тусдаа хүчдэл буурахад хүргэдэг. Хэрэв утга учиргүй бол эхний зургийг хараарай. Төмөр замаас төмөр зам хүртэлх 9V -ийн боломжит ялгаа бий. 9V ба 0V хооронд хоёр эсэргүүцэл цуваа байдаг. Эдгээр нь эсэргүүцэлээс хамаарч хүчдэлийн уналтыг мэдрэх болно. Хэрэв та хоёр резисторын хооронд хүчдэлийн хэмжилт хийвэл эхний эсэргүүцэл дээр хэр их хүчдэл унасан, 0V -ээс өмнө 2 -р резистор дээр хэр их унах үлдэж байгаагаас шалтгаалан 9V ба 0V хооронд тодорхой утгыг авах болно. Ийм нөхцөлд резистор дээрх хүчдэлийн уналтыг тооцоолох энгийн томъёо байдаг бөгөөд иймэрхүү харагдаж байна. Резистор 1 (R1) дээрх хүчдэлийг V1, эсэргүүцлийн хоёр (R2) дээрх хүчдэлийг V2 гэж үзье. Би форматлахаа больсон тул томъёог доорх 2 -р зурагнаас үзнэ үү. Тиймээс эсэргүүцэл хуваах хэсэгт Vout -ийн хүчдэлийг бидний V2 томъёогоор тодорхойлж болно (учир нь бид GND -ийг 0V -т хамааруулах болно). Энэ нь нэг түлхүүрээс олон тооны унтраалга илрүүлэхтэй ямар холбоотой вэ? За, хуудсыг эргүүлээрэй, би танд үзүүлэх болно!

Алхам 3: Хүчдэл хуваагч шат

Хүчдэл хуваагч шат
Хүчдэл хуваагч шат

Одоо бид бүх унтраалга, магадгүй зургаа, найм эсвэл арван зургаа нь бүгд резистороор холбогдсон гэж үзье. Тэд тус бүр нь хүчдэл хуваагчийн үүргийг гүйцэтгэдэг бөгөөд ингэснээр унтраалгын зүүний байдал өөрчлөгдөхөд хүчдэлийг уншин, хүчдэлийн түвшинд үндэслэн бид уншдаг. аль унтраалга дөнгөж идэвхжсэнийг мэдэх боломжтой. Доороос үзнэ үү. Доорх зурган дээр би хоёр блок унтраалгыг холбосон. Хамгийн дээд блок нь хоёр унтраалгатай, хамгийн доод талын блок нь таван унтраалгатай. Та тусдаа шилжүүлэгч, түр зуурын, хүрэлцэх гэх мэт унтраалгуудыг ижил аргаар холбож болно. Анхаарах хамгийн чухал зүйл бол таны унтраалга холбогдсон резистор юм. Миний жишээн дээр би хүчдэлийн цоорхойг бий болгохын тулд дараагийн эсэргүүцлийн эсэргүүцлийг бараг хоёр дахин нэмэгдүүлж, унтраалгын өмнө болон дараа алдаагүй болно. Хэрэв та өмнө нь анзаараагүй бол дахин хараад, бид хуучин найздаа эсэргүүцлийн хүчдэл хуваагч руу буцаж ирснийг ойлгоорой. Эхний эсэргүүцэл 10 к ом нь 5V ба 2 -р эсэргүүцэлтэй холбогдсон - V -ийг тодорхойлох эсэргүүцэл.гадагш SWITCH_ADC зүүний хувьд унтраалга бүрт холбогдсон байдаг тул унтраалга бүр нь тодорхой Vout хүчдэлтэй холбоотой байдаг бөгөөд үүнийг SWITCH_ADC дээр холбогдсон ADC зүүгээс уншиж болно. Дараа нь шилжүүлэгч тус бүрээс хүлээгдэж буй Vout -ийг тодорхойл

Vout = Vin * (R2 / (R1 + R2))

нэг шилжүүлэгчийн хувьд:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V эсвэл 240 мВ

хоёр шилжүүлэгчийн хувьд:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V эсвэл ~ 900mV

гэх мэт.. Хэрэв танд зөвхөн тодорхой резистор байгаа бол R2 -ийг өөрийн үнэ цэнээр орлуулж болно … Энд гол зүйл бол унтраалгын хоорондох хүчдэлийн зөрүүг хангалттай байлгах бөгөөд ингэснээр ADC дээрх алдааны зөрүүг ялна. t таныг хөрш зэргэлдээх унтраалгаас хүлээгдэж буй хүчдэлд оруулах болно. Хуваах шатыг барьж, ADC зүү дээр мултиметр/вольтметр тавьж, зүү бүрийг дарж, ямар утгыг олж авахыг харах нь хамгийн хялбар зүйл юм. Тэд таны тооцоолж буй зүйлд маш сайн анхаарал хандуулах ёстой. Тодорхой резистор ашиглан унтраалга тус бүрээс хүлээгдэж буй хүчдэлийн утгыг олж авсны дараа та MCU -г ADC зүүг уншуулж, аль утгыг дарсан болохыг тодорхойлохын тулд үүнийг мэддэг утгуудтайгаа харьцуулж болно. Жишээлбэл, та ADC зүү дээр өөрчлөлт гарсан тохиолдолд дуудлага хийх тасалдлын үйлчилгээний горимыг бүртгүүлсэн гэж хэлээрэй. ISR дотор та ADC -ийг уншиж, энэ утгыг шилжүүлэгч хүснэгттэйгээ харьцуулж болно. Хэрэв та 8 битийн ADC утгыг ашиглаж байгаа бол таны хүчдэлийг 0-ээс 255 хүртэлх тоо болгон хөрвүүлэх бөгөөд энэ нь 0V ба 5V-ийн хоорондох хүчдэлтэй тэнцэх болно. Энэ нь таны ADC -ийг ингэж тохируулсан гэж үзэж байна.

Алхам 4: Дүгнэлт

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

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