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

5 утастай эсэргүүцэх мэдрэгч: 10 алхам
5 утастай эсэргүүцэх мэдрэгч: 10 алхам

Видео: 5 утастай эсэргүүцэх мэдрэгч: 10 алхам

Видео: 5 утастай эсэргүүцэх мэдрэгч: 10 алхам
Видео: Хамгийн шилдэг нь???. Радио хүлээн авагч TECSUN PL680 БҮРЭН ТОЙМ!!! #tecsun 2024, Долдугаар сарын
Anonim
5 утастай эсэргүүцэх мэдрэгч
5 утастай эсэргүүцэх мэдрэгч

Сайн уу сайн уу!

Энэ сайт дээр ажиллаад багагүй хугацаа өнгөрч байгаа бөгөөд маш их зүйл өөрчлөгдсөн бололтой! Эцэст нь би өөр төслийн жолооны ард суухад бэлэн байгаа бөгөөд бүх зүйлийг өөрөө өөрчлөх цаг болсон гэж бодож байна!

Би 271828 -ийн хавтан ба бөмбөг дээр суурилсан төслийг хэсэг хугацаанд санаж байсан боловч дуусахаас өмнө мэдрэгч, хяналтын онолын талаар сурч мэдэх олон зүйл надад бий. Ганц хоёр юм сурч байгаа л бол би та нарыг дагуулаад явж магадгүй гэж бодлоо!

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

Энэхүү шинэ төсөлд би маш их баяртай байна, энэ нь хэр сайн ажиллаж байгааг харахаар сэтгэл минь хөдөлж байна!

Өнөөдөр бид зүгээр л DP-32-тэй ажилладаг 5 утастай энгийн мэдрэгчтэй самбар авах болно.

Эхэлцгээе!

Алхам 1: Танд хэрэгтэй зүйл

Танд хэрэгтэй зүйл
Танд хэрэгтэй зүйл

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

  • Микроконтроллер.

    Би DP32-ийг талхны самбартай ашиглаж байна, учир нь энэ нь загварчлах ажлыг маш энгийн болгодог

  • Төрөл бүрийн утас, кабель.

    Би мэдрэгчтэй хавтангийн тууз кабелийг ашиглаж болох байсан, гэхдээ энэ нь нулимс асгавал бүхэл бүтэн самбар ашиггүй болно. Үүний оронд би 6 утастай кабель ашиглан угсарсан кабелийн ачааллыг бууруулж байна

  • Титуляр 5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар!

    Надад 4 утастай эсэргүүцэлтэй мэдрэгчтэй самбар байсан боловч туузны кабель тасарсан

Тэгээд л боллоо!

Алхам 2: 5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?

5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?
5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?
5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?
5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?
5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?
5 утастай эсэргүүцэлтэй мэдрэгчтэй самбар гэж юу вэ?

Хэрэв та миний 4 утастай мэдрэгчтэй самбарын хичээлийг уншсан бол эсэргүүцэх мэдрэгч бүхий ерөнхий ойлголттой танилцах болно, гэхдээ 5 утастай хавтан ба 4 утастай хавтан нь арай өөрөөр ажилладаг.

Надад энэ самбар таалагдаж байна, учир нь та бүх утаснуудын ул мөрийг харж, юу хийж байгааг нь харахад хялбар болгодог. Эхний зураг дээр би мөр бүрийг өөр өөр өнгөөр будсан. Та дөрвөн утас (ягаан, шар, улбар шар, нил ягаан) тус бүр дөрвөн булангийн аль нэг рүү явдаг болохыг харж магадгүй юм. Дунд утас (улаан) нь уян хатан мэдрэгчтэй самбар руу ордог.

Хоёрдахь зурган дээр бид дөрвөн утасны хоёрыг (баруун дээд ба баруун доод) өндөр хүчдэлд (улаан өнгөөр харуулсан) тохируулсан бол нөгөө хоёрыг (зүүн дээд ба зүүн доод талд) хамгийн бага болгож тохируулсан болно. хүчдэл (хөх өнгөөр харуулав). Энэ нь бүхэл бүтэн самбар дээр хүчдэлийн градиент үүсгэдэг. Энэ тохиолдолд градиент нь X тэнхлэгийн дагуу явдаг тул илүү өндөр хүчдэл нь X тэнхлэгийн дагуух өндөр байрлалыг илэрхийлдэг.

Бид хуруугаа самбар дээр хүрэхэд уян мэдрэгчийг дарж, X тэнхлэгийн градиентийн дагуу хаа нэгтээ холбоно. Манай микроконтроллер дээрх хүчдэл мэдрэгч нь энэ хүчдэлийг мэдэрч, X тэнхлэг дээр хуруу чинь хаана хүрч байгааг хэлж чадна!

Гурав дахь зураг дээр Y тэнхлэгийн дагуу мэдрэх боломжийг олгохын тулд тохиргоо хэрхэн өөрчлөгдөж байгааг харж болно. Ингэснээр бид 2 хэмжээст орон зайд хуруугаа хаана хүрч байгааг хэлж чадна.

Алхам 3: Цахилгааны утас

Цахилгаан утас
Цахилгаан утас
Цахилгаан утас
Цахилгаан утас

Дээрх зургуудаас харж байгаа байх, би дөрвөн өнцөг булан бүрээ дижитал гаралтын зүүтэйгээ холбосон. Энэ нь тэднийг тус тусад нь өндөр эсвэл доод түвшинд тохируулах боломжийг олгоно. Миний мэдрэгчийн зүү аналог оролтын зүүтэй холбогддог. 4 утастай харьцуулахад 5 утастай мэдрэгчтэй дэлгэцийн нэг давуу тал нь танд зөвхөн нэг аналог зүү хэрэгтэй бол 4 утастай бол 2 ширхэг байх шаардлагатай.

Мэдээжийн хэрэг таны утас өөр байж болно, гэхдээ миний утас дараах байдалтай байна.

Аналог 0 (зүү 6) нь мэдрэгчтэй холбогддог (дунд зүү)

Дижитал 3 нь баруун дээд хэсэгт холбогддог (хамгийн дээд талын зүү)

Дижитал 2 нь зүүн дээд хэсэгт холбогддог (хамгийн дээд хоёр дахь зүү)

Дижитал 1 нь Доод-Зүүн тийш холбогддог (хамгийн доод хоёр дахь зүү)

Дижитал 0 нь баруун доод буланд холбогддог (хамгийн доод талын зүү)

Би 6 утастай кабель ашиглан микроконтроллер ба самбар хооронд шилжиж байгааг дахин тэмдэглэх нь зүйтэй болов уу. Би энэ кабелийн дээд зүүг холболгүй орхисон.

Алхам 4: Програм хангамж хөгжүүлэх

Програм хангамжийн хөгжил
Програм хангамжийн хөгжил

Өмнө нь би ихэвчлэн ашигладаг програмын файлыг танд зориулан хаядаг байсан, магадгүй бүх зүйл юу хийдэг талаар товч танилцуулаарай. Би үүнд дургүй. Энэ цуврал нь хөгжиж буй төслүүдийн талаар байхыг хүсч байна, үүний тулд би энэ програм хангамжийн бодит хөгжүүлэлтийг эхнээс нь дуустал оруулах болно.

Ердийнх шиг би Digilent цөмтэй Arduino IDE -ийг ашиглах болно. Хэсэг бүрт код файл, дэлгэцийн агшин, нэмэлтүүд болон бидний хүрэхийг хүсч буй зүйлийн тайлбарыг багтаасан болно.

Одоогийн байдлаар би жишээнүүдийн хавтаснаас олж мэдсэнтэй яг ижилхэн хоцрох загварын анивчих програмыг эхлүүлж байна. Хэрэв та миний бичсэн урт толгой хэсгийг уншвал энэ үйл явцын алхам бүр програмыг өөрчилж, эцсийн зорилгодоо ойртуулах болно.

Алхам 5: Төрийн машин анивчих

Улсын машин анивчих
Улсын машин анивчих

Миний анхны алхам бол анивчих функцийг "delay ()" дээр суурилсан функцээс төрийн машин болгон өөрчлөх явдал юм.

Мэдээллийг сольж ашигладаггүй хүмүүсийн хувьд энэ нь if-мэдэгдэлтэй адил ажилладаг. Энэ нь (улбар шар өнгийн хайрцагт) бидний "төлөв" хувьсагчийг (0 -ээс эхэлдэг) туршиж үздэг. Дараа нь энэ нь бидний өнөөгийн байдлыг харуулдаг. Та 0 ба 2 тохиолдолд LED -ийг асаах, унтраах үүрэгтэй (1 ба 3 -р тохиолдолд) унтраалгын хооронд хүлээх үүрэгтэй болохыг та харах болно.

Алхам 6: Товч анивчих

Blink товчлуур
Blink товчлуур
Blink товчлуур
Blink товчлуур
Blink товчлуур
Blink товчлуур

Дараа нь би гэрлийг анивчихын тулд товчлуурыг ашиглахыг хүссэн юм. Үүнийг хэтэрхий төвөгтэй болгохын оронд би бүх мужуудыг нэгээр нь доошлуулав (0 муж муж 1 болж хувирна гэх мэт). Үүнийг хийхдээ гарах төлөв болон мужийг нэмэгдүүлэхийн тулд болгоомжтой байгаарай (Зураг 3 -ыг үзнэ үү).

Би бас хоёр дахь "хүлээх" төлөвийг устгасан. Энэ нь товчлуур нь гэрлийг нэг секундын турш асаана гэсэн үг бөгөөд та унтраасны дараа товчлуурыг дахин дарж болно.

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

Алхам 7: Цуваа холбоо

Цуваа холбоо
Цуваа холбоо
Цуваа холбоо
Цуваа холбоо

Энэ шинэчлэлт маш бага байна. Миний хийхийг хүссэн зүйл бол Цуваа холболт хийж, мессеж илгээх явдал байв. Эхний зураг дээр би setup () функц дээр Serial -ийг эхлүүлж байгааг харж болно. Манай улсын машин дотор би 1 ба 3 -р мужид цувралаар компьютер руу энгийн мессеж илгээх мөрүүдийг нэмж оруулав.

Алхам 8: Координат унших

Координат унших
Координат унших
Координат унших
Координат унших
Координат унших
Координат унших
Координат унших
Координат унших

Сүүлчийн алхам амархан байсан нь сайн хэрэг, учир нь энэ бол муухай зүйл байсан.

Эхлэхийн тулд би мэдрэгчтэй самбарынхаа хувьсагчийг нэмж оруулав. Та яагаад гэдгийг хэсэг хугацааны дараа харах болно.

Би төрийн машиныг бүрэн дахин бичсэн. Кодыг харахад жаахан ойлгомжгүй байдаг тул би юу хийснийг харуулах ёстой блок диаграмыг оруулсан болно.

Анхаарах зүйл: Одоо "хүлээх" гурван алхам байна. Мэдрэгч самбарын тохиргоо тус бүрт нэг нь хэмжилт хийхээс өмнө хүчдэлийг тохируулах, нөгөө нь товчлуурыг зөв салгахад цаг өгөх болно. Эдгээр хүлээх алхмууд нь яагаад би товчлуур болон мэдрэгч самбарыг хоёуланг нь өөрийн гэсэн цагийн хувьсагч өгөхийг хүссэн юм.

Тэмдэглэл: DEBOUNCE_TIME тогтмол бага зэрэг бага байж магадгүй. Үүнийг нэмэгдүүлэхийн тулд чөлөөтэй байгаарай.

Алхам 9: Цэвэрлэх

Цэвэрлэгээ
Цэвэрлэгээ
Цэвэрлэгээ
Цэвэрлэгээ
Цэвэрлэгээ
Цэвэрлэгээ

Бид энэ төслийн кодын эцсийн хувилбарт ирлээ!

Эхлэхийн тулд би өнгөрсөн хугацааг тооцоолох loop_diff () нэртэй функцийг нэмсэн. DP32 -ийн дотоод цаг нь гарын үсэг зураагүй урт бөгөөд энэ нь магадлал багатай боловч энэ кодыг ажиллуулах явцад цаг эргэж магадгүй юм. Энэ тохиолдолд btn_time эсвэл panel_time -д хадгалсан хугацаанаас одоогийн цагийг хасах нь бидэнд ямар нэг хачин зүйл өгөх болно, тиймээс би гогцоо үүсэхийг илрүүлэхийн тулд loop_diff () гэж бичсэн бөгөөд үүний дагуу ажиллах ёстой.

Би бас бага зэрэг цэвэрлэгээ хийсэн. Би одоо ашиглагдаагүй "state_time" хувьсагчийг устгасан. Би LED_BUILTIN тагнаас (энэ нь Arduino стандарт юм) PIN_LED1 шошго руу шилжсэн (энэ нь chipKit ба DP32 -ийн стандарт юм). Би бас Serial -ээр дамжуулан процессыг эхлүүлэх, дуусгах тухай бүх мессежийг устгасан бөгөөд энэ нь бидний өгөгдлийг Цувралаар дамжуулан илүү цэвэр болгодог.

*Би хэдэн жилийн өмнө математик хийсэн бөгөөд millis () функцын хувьд хувьсагчийг эргүүлэхээс өмнө долоо хоног тогтмол ажиллах хугацаа шаардагдана гэж бодож байна.

Алхам 10: Эцсийн бодол

Эцсийн бодол
Эцсийн бодол

Тэгээд л боллоо!

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

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

Баярлалаа, дараагийн удаа уулзацгаая!

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