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

Arduino -ийн 6 товчлуурт 1 аналог оролтыг ашиглана уу: 6 алхам
Arduino -ийн 6 товчлуурт 1 аналог оролтыг ашиглана уу: 6 алхам

Видео: Arduino -ийн 6 товчлуурт 1 аналог оролтыг ашиглана уу: 6 алхам

Видео: Arduino -ийн 6 товчлуурт 1 аналог оролтыг ашиглана уу: 6 алхам
Видео: 6 Поворотный энкодер FLProg и ЖК-дисплей I2C |ESP32 NodeMCU |Визуальное программирование для Arduino 2024, Арваннэгдүгээр
Anonim
Arduino -д зориулсан 6 товчлуурт 1 аналог оролт ашиглана уу
Arduino -д зориулсан 6 товчлуурт 1 аналог оролт ашиглана уу

Би Arduino -дээ хэрхэн илүү Дижитал оролт авах вэ гэж байнга боддог байсан. Олон тооны дижитал оролт оруулахын тулд би аналог оролтын аль нэгийг ашиглах боломжтой байх ёстой гэж саяхан надад санагдсан. Би хурдан хайлт хийж, хүмүүс хаана үүнийг хийж чаддаг болохыг олж мэдсэн боловч эдгээр нь зөвхөн нэг товчлуурыг дарах боломжийг олгодог. Би товчлууруудын хослолыг ижилхэн дарах боломжтой байхыг хүсч байна. Тиймээс TINKERCAD CIRCUITS -ийн тусламжтайгаар би үүнийг хэрэгжүүлэхээр зорьсон.

Яагаад би товчлуурыг нэгэн зэрэг дарахыг хүсч байна вэ? TinkerCad Circuits -ийн загварт харуулснаар үүнийг програмын янз бүрийн горимыг сонгохын тулд DIP шилжүүлэгч оролтод ашиглаж болно.

Миний бүтээсэн схем нь Arduino -аас авах боломжтой 5V эх үүсвэрийг ашигладаг бөгөөд 7 резистор, 6 товчлуур эсвэл унтраалга ашигладаг.

Алхам 1: Хэлхээ

Хэлхээ
Хэлхээ

Arduino нь 0V -аас 5V хүртэлх оролтыг хүлээн авдаг аналог оролттой. Энэ оролт нь 10 битийн нягтралтай бөгөөд энэ нь дохиог 2^10 сегмент буюу 1024 тоололт болгон хуваасан гэсэн үг юм. Үүн дээр үндэслэн аналог оролтонд оруулах хамгийн их боломжтой зүйл бол нэгэн зэрэг дарахад 10 товчлуураас 1 аналог оролт байх болно. Гэхдээ энэ бол төгс ертөнц биш юм. Цахилгаан дамжуулагчийн эсэргүүцэл, гадны эх үүсвэрээс гарах дуу чимээ, төгс бус хүч чадал байдаг. Тиймээс, өөртөө маш их уян хатан байдлыг өгөхийн тулд би үүнийг 6 товчлуурт зориулж хийхээр төлөвлөж байсан. Үүнд TinkerCAD Circuits нь 6-Switch DIP Switch объекттой байсан нь туршилтыг хөнгөвчлөхөд нөлөөлсөн юм.

Миний дизайны эхний алхам бол товчлуур тус бүрийг дарахад өвөрмөц хүчдэл өгөх эсэхийг шалгах явдал байв. Энэ нь бүх эсэргүүцэл нь ижил утгатай болохыг үгүйсгэв. Дараагийн алхам бол эсэргүүцлийн утгыг зэрэгцээ нэмэхэд ямар ч эсэргүүцлийн утгатай ижил эсэргүүцэлтэй байж чадахгүй байх явдал байв. Резисторыг зэрэгцээ холбосон тохиолдолд үүссэн эсэргүүцлийг Rx = 1/[(1/R1)+(1/R2)] -ээр тооцоолж болно. Тиймээс, хэрэв R1 = 2000 ба R2 = 1000 бол Rx = 667 байна. Резистор бүрийн хэмжээг хоёр дахин нэмэгдүүлснээр би ямар ч хослолын хувьд ижил эсэргүүцлийг олж харахгүй гэж би таамаглаж байсан.

Тиймээс миний одоогийн хэлхээнд 6 унтраалгатай, тус бүр өөрийн гэсэн эсэргүүцэлтэй байх ёстой байсан. Гэхдээ энэ хэлхээг дуусгахын тулд өөр нэг эсэргүүцэл шаардлагатай болно.

Сүүлийн эсэргүүцэл нь 3 зорилготой. Нэгдүгээрт, энэ нь доош татах эсэргүүцлийн үүрэг гүйцэтгэдэг. Резисторгүй бол ямар ч товчлуур дарахгүй бол хэлхээ бүрэн бус байна. Энэ нь Arduino -ийн аналог оролт дээрх хүчдэлийг ямар ч хүчдэлийн потенциал руу шилжих боломжийг олгоно. Татах эсэргүүцэл нь хүчдэлийг 0 В хүртэл бууруулдаг Хоёрдахь зорилго нь энэ хэлхээний гүйдлийг хязгаарлах явдал юм. Ом -ийн хуульд V = IR буюу Хүчдэл = Гүйдлийг эсэргүүцэлээр үржүүлсэн гэж заасан байдаг. Өгөгдсөн хүчдэлийн эх үүсвэрийн хувьд резистор том байх тусам гүйдэл бага байх болно гэсэн үг юм. Тиймээс хэрэв 500 Ом эсэргүүцэлтэй 5V дохио өгсөн бол бидний харж болох хамгийн том гүйдэл нь 0.01А буюу 10мА байх болно. Гурав дахь зорилго нь дохионы хүчдэлийг хангах явдал юм. Сүүлийн эсэргүүцэлээр дамжих нийт гүйдэл нь: i = 5V/Rtotal, энд Rtotal = Rlast+{1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+байх болно. (1/R5)+(1/R6)]}. Гэсэн хэдий ч харгалзах товчлуур дарагдсан резистор бүрт зөвхөн 1/Rx оруулна уу. Нийт гүйдэлээс аналог оролтод нийлүүлсэн хүчдэл i*Rlast буюу i*500 байх болно.

Алхам 2: Баталгаажуулалт - Excel

Баталгаажуулалт - Excel
Баталгаажуулалт - Excel

Би өвөрмөц эсэргүүцэл олж авах болно гэдгийг батлах хамгийн хурдан бөгөөд хялбар арга бол энэ хэлхээний өвөрмөц хүчдэл бол Excel -ийн чадварыг ашиглах явдал байв.

Би шилжүүлэгч оролтын боломжит бүх хослолыг тохируулж, дараалсан хоёртын хэв маягийг дараалан зохион байгуулав. "1" гэсэн утга нь унтраалга асаалттай, хоосон бол унтраалттай байгааг илтгэнэ. Хүснэгтийн дээд талд би унтраалга тус бүрийн эсэргүүцлийн утгыг оруулаад доош татах эсэргүүцлийг оруулсан болно. Дараа нь эдгээр эсэргүүцэлүүд нь тэжээлийн эх үүсвэргүй бол ямар ч нөлөө үзүүлэхгүй тул бүх эсэргүүцэл унтраасан байхаас бусад тохиолдолд хослол бүрийн эквивалент эсэргүүцлийг тооцоолсон. Тооцооллыг хялбарчлахын тулд хослол бүрт хуулж, буулгахын тулд шилжүүлэгч бүрийн утга (0 эсвэл 1) -ийг урвуу эсэргүүцлийн утгаар үржүүлэх замаар бүх хослолыг тооцоололд оруулсан болно. Ингэснээр унтраалга унтарсан тохиолдолд түүний эсэргүүцлийг тооцооллоос хассан болно. Үүссэн тэгшитгэлийг хүснэгтийн зурган дээрээс харж болно, гэхдээ Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6). Itotal = 5V / Req ашиглан хэлхээгээр дамжих нийт гүйдлийг тодорхойлно. Энэ бол доош татах резистороор дамждаг бөгөөд бидний аналог оролтонд хүчдэл өгдөг. Үүнийг Vin = Itotal x Rx гэж тооцно. Req өгөгдөл болон Вин өгөгдлийг хоёуланг нь судалж үзэхэд бид үнэхээр өвөрмөц үнэт зүйлтэй болохыг харж болно.

Энэ үед манай тойрог ажиллах болно. Одоо Arduino -г хэрхэн програмчлах талаар олж мэдье.

Алхам 3: Arduino програмчлал

Arduino програмчлал
Arduino програмчлал
Arduino програмчлал
Arduino програмчлал
Arduino програмчлал
Arduino програмчлал

Би Arduino -г хэрхэн програмчлах талаар бодож эхлэхдээ эхлээд унтраалга асаалттай эсвэл унтраасан эсэхийг тодорхойлохын тулд бие даасан хүчдэлийн хязгаарыг тохируулахаар төлөвлөж байсан. Гэхдээ нэг шөнө орондоо хэвтэж байхдаа би үүнийг хийх тэгшитгэлийг олох ёстой гэж бодсон. Яаж? EXCEL. Excel нь хүснэгтэд өгөгдлийг хамгийн сайн тохируулахын тулд тэгшитгэлийг тооцоолох чадвартай. Үүнийг хийхийн тулд би унтраалгын бүхэл тоон утгын (хоёртын) тэгшитгэлийг хүсч байгаа хүчдэлийн оролттой байхыг хүсч байна. Би Excel -ийн ажлын дэвтэртээ бүхэл тоон утгыг хүснэгтийн зүүн талд байрлуулсан. Одоо миний тэгшитгэлийг тодорхойлох болно.

Энд Excel -ийн шугамын тэгшитгэлийг хэрхэн яаж тодорхойлох талаар хурдан заавар байна.

1) Мэдээлэл агуулаагүй нүдийг сонгоно уу. Хэрэв танд өгөгдөл агуулсан нүд байгаа бол Excel нь таны чиглүүлэх гэж буй зүйлээ таахыг оролдох болно. Энэ нь чиг хандлагыг бий болгоход илүү төвөгтэй болгодог, учир нь Excel нь зөв таамаглах нь ховор байдаг.

2) "Insert" табыг сонгоод "Scatter" диаграмыг сонгоно уу.

3) График талбар дээр хулганы баруун товчийг дараад "Өгөгдлийг сонгох …" дээр дарна уу. Энэ нь "Өгөгдлийн эх сурвалжийг сонгох" цонх гарч ирнэ. Өгөгдлийг үргэлжлүүлэн сонгохын тулд Нэмэх товчийг дарна уу.

4) Цувралын нэрийг өгнө үү (заавал биш). X тэнхлэгийн хүрээг сонгохын тулд дээш сумыг дарж хүчдэлийн өгөгдлийг сонгоно уу. Y тэнхлэгийн хүрээг сонгохын тулд дээш сумыг дарж бүхэл өгөгдлийг (0-63) сонгоно уу.

5) Өгөгдлийн цэгүүд дээр хулганы баруун товчийг дараад "Trendline -ийг нэмэх …" -г сонгоно уу. Чиг хандлагыг харахад 2 -р зэрэглэл нь хоорондоо таарахгүй байгааг бид харж байна. Би 3 -ийн захиалгыг сонгосон бөгөөд энэ нь илүү үнэн зөв болохыг мэдэрсэн. "График дээр тэгшитгэлийг харуулах" сонголтыг сонгоно уу. Эцсийн тэгшитгэлийг одоо диаграм дээр харуулав.

6) Дууссан.

БОЛЖ БАЙНА УУ. Arduino програм руу буцах. Одоо бид тэгшитгэлтэй болсноор Arduino програмчлахад хялбар боллоо. Шилжүүлэгчийн байрлалыг илэрхийлсэн бүхэл тоог 1 мөр кодоор тооцоолно. "Bitread" функцийг ашигласнаар бид бит тус бүрийн утгыг авч, товчлуур бүрийн төлөв байдлыг мэдэх боломжтой болно. (ЗУРАГ ХАРАХ)

Алхам 4: TinkerCAD хэлхээ

TinkerCAD хэлхээ
TinkerCAD хэлхээ

Хэрэв та TinkerCAD хэлхээг шалгаж үзээгүй бол яг одоо хийгээрэй. ХҮЛЭЭ !!!! Миний зааврыг уншиж дуусгаад дараа нь үзээрэй. TinkerCAD Circuits нь Arduino хэлхээг туршихад маш хялбар болгодог. Үүнд хэд хэдэн цахилгаан объект, Arduino багтдаг бөгөөд Arduino -г турших програмчлах боломжийг олгодог.

Миний хэлхээг шалгахын тулд би DIP унтраалга ашиглан 6 унтраалгыг тохируулж, резистортой холбосон. Миний Excel хүснэгтийн хүчдэлийн утга зөв болохыг батлахын тулд би Arduino -ийн оролт дээр вольтметрийг үзүүлэв. Энэ бүхэн хүлээгдэж байсны дагуу ажилласан.

Arduino програмчлал ажилласан гэдгийг батлахын тулд би Arduino дижитал гаралтыг ашиглан LED -ийн унтраалгын төлөвийг гаргав.

Дараа нь би унтраалга бүрийг боломжтой бүх хослолоор сольж, "IT WORKS" гэж бахархаж байна !!!

Алхам 5: "Маш урт, бүх загасанд баярлалаа." (ref.1)

Би одоогоор ажил хийхээр явж байгаа тул үүнийг бодит тоног төхөөрөмж ашиглан туршиж үзээгүй байна. Гэхдээ үүнийг TinkerCAD Circuits ашиглан нотолсны дараа энэ нь ажиллах болно гэдэгт би итгэж байна. Асуудал нь миний тодорхойлсон резисторуудын утга нь резисторын стандарт утга биш юм. Үүнийг даван туулахын тулд би шаардлагатай утгыг олж авахын тулд потенциометр ба резисторын хослолыг ашиглахаар төлөвлөж байна.

Миний зааврыг уншсанд баярлалаа. Энэ нь таны төслүүдэд тусална гэж найдаж байна.

Хэрэв та энэ саад бэрхшээлийг даван туулах гэж оролдсон бол түүнийг хэрхэн шийдсэн талаар сэтгэгдлээ үлдээнэ үү. Үүнийг хийх илүү олон арга замыг сурахыг хүсч байна.

Алхам 6: Ашигласан материал

Та эх сурвалжийг нь лавлагаа өгөхгүйгээр үнийн санал өгнө гэж бодоогүй биз дээ?

реф 1: Адамс, Дуглас. Маш урт, бүх загасанд баярлалаа. (Автомашины галактикийн гарын авлагын 4 -р ном "гурвал")

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