Mundarija:

5 simli chidamli sensorli sensor: 10 qadam
5 simli chidamli sensorli sensor: 10 qadam

Video: 5 simli chidamli sensorli sensor: 10 qadam

Video: 5 simli chidamli sensorli sensor: 10 qadam
Video: 🥰 Новые гаджеты, техника для каждого дома/ Универсальная посуда (Изобретения и идеи) #007 2024, Noyabr
Anonim
5 simli chidamli sensorli sensor
5 simli chidamli sensorli sensor

Salom salom!

Men bu saytda ishlaganimga ancha vaqt bo'ldi va ko'p narsa o'zgardi! Men nihoyat, boshqa loyiha uchun rulga o'tirishga tayyorman va menimcha, vaziyatni biroz o'zgartirish vaqti keldi!

Men 271828 yilgi "Plitalar va to'p" ga asoslangan loyihani uzoq vaqtdan beri o'ylab yurganman, lekin u tugagunga qadar sensorlar va boshqaruv nazariyasi haqida ko'p narsalarni bilib olishim kerak. Men o'yladimki, agar men bir -ikki narsani o'rganayotgan bo'lsam, sizni ham o'zim bilan olib ketaman!

Shu maqsadda, bu darsliklar oldiga qo'ygan maqsadim, men ko'proq sayqallangan darsliklarim va loyihaning o'zi uchun rekord bo'ladi. Har bir individual darslik bu safarda bir qadam bo'ladi va men ilgari aytib o'tgan tafsilotlarni o'z ichiga oladi, masalan, kodni ishlab chiqish (faqat tugallangan kod o'rniga) va men yo'lda qilgan xatolarim.

Men bu yangi loyihadan juda xursandman va men uning qanchalik yaxshi ishlashini ko'rish uchun hayajonlandim!

Bugun biz faqat DP-32 bilan ishlaydigan 5-simli sensorli panelni olamiz.

Qani boshladik!

1 -qadam: Sizga nima kerak

Sizga nima kerak bo'ladi
Sizga nima kerak bo'ladi

Chunki bu darslik bitta sensorning ishlashiga bag'ishlangan, shuning uchun sizga mikrokontroller va sensorli paneldan boshqa ko'p narsa kerak bo'lmaydi.

  • Mikrokontroller.

    Men DP32-ni o'rnatilgan non paneli bilan ishlataman, chunki bu prototipni juda oddiy qiladi

  • Turli xil simlar va kabellar.

    Men sensorli panelning lentali kabelidan foydalanishim mumkin edi, lekin agar u yirtilib ketsa, butun panel befoyda. Buning o'rniga, men o'rnatilgan simning kuchlanishini kamaytirish uchun 6 simli kabeldan foydalanaman

  • Titulyar 5 simli rezistiv sensorli panel!

    Menda 4 simli rezistiv sensorli panel bor edi, lekin uning tasmasi sindi

Va bu hammasi!

2-qadam: 5 simli chidamli sensorli panel nima?

5 simli chidamli sensorli panel nima?
5 simli chidamli sensorli panel nima?
5 simli chidamli sensorli panel nima?
5 simli chidamli sensorli panel nima?
5 simli chidamli sensorli panel nima?
5 simli chidamli sensorli panel nima?

Agar siz mening 4-simli sensorli panelli darsligimni o'qigan bo'lsangiz, siz rezistiv sensorli sensor haqida umumiy tasavvurga ega bo'lasiz, lekin 5-simli va 4-simli panellar boshqacha ishlaydi.

Menga bu panel yoqadi, chunki siz barcha sim izlarini ko'rishingiz mumkin, bu esa nima qilayotganini ko'rishni osonlashtiradi. Birinchi rasmda men har bir izni turlicha bo'yadim. Ehtimol, siz simlarning to'rttasi (pushti, sariq, to'q sariq va binafsha) har biri to'rtta burchakdan biriga o'tishini ko'rishingiz mumkin. O'rta sim (qizil) moslashuvchan sensorli panelga o'tadi.

Ikkinchi rasmda biz to'rtta simning ikkitasini (yuqori o'ng va pastki o'ng) yuqori voltli (qizil rangda ko'rsatilgan), qolgan ikkitasini (yuqori chap va pastki chap) past darajaga o'rnatdik. kuchlanish (ko'k rangda ko'rsatilgan). Bu butun panelda kuchlanish gradyanini hosil qiladi. Bunday holda, gradyan X o'qi bo'ylab o'tadi, shuning uchun yuqori kuchlanish X o'qi bo'ylab yuqori pozitsiyani ifodalaydi.

Biz barmog'imizni panelga tekkizganimizda, u X o'qi gradiyenti bo'ylab bir joyga ulanadigan, moslashuvchan sensorni bosadi. Bizning mikrokontrolderimizdagi kuchlanish sezgichlari bu kuchlanishni sezishi mumkin va barmog'ingiz X o'qining qayeriga tegayotganini aytib berishi mumkin!

Uchinchi rasmda siz Y o'qi bo'ylab sezish uchun konfiguratsiya qanday o'zgarganini ko'rishingiz mumkin. Shunday qilib, biz barmog'imiz 2 o'lchamli bo'shliqqa qayerda tegayotganini aniqlay olamiz!

3 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish

Yuqoridagi rasmlarda ko'rib turganingizdek, men to'rt burchagimni har birini o'z raqamli chiqish piniga uladim. Bu ularni alohida -alohida yuqori yoki past darajaga qo'yishga imkon beradi. Mening sensor pinim analog kirish piniga ulanadi. 4-simdan farqli o'laroq, 5 simli sensorli ekranning yaxshi tomoni shundaki, sizga faqat bitta analog pin kerak, 4 simli esa 2.

Albatta, sizning simlaringiz boshqacha bo'lishi mumkin, lekin mening simlarim quyidagicha:

Analog 0 (pin 6) Sensorga ulanadi (o'rta pin)

Raqamli 3 yuqori o'ngga ulanadi (eng yuqori pin)

Raqamli 2 yuqori chapga ulanadi (ikkinchi eng yuqori pin)

Raqamli 1 pastdan chapga ulanadi (pastdan ikkinchi pin)

Raqamli 0 pastdan o'ngga ulanadi (eng pastda joylashgan pin)

Yana bir bor ta'kidlash joizki, men mikrokontroller va panel o'rtasida o'tish uchun 6 simli kabeldan foydalanaman. Men bu kabelning yuqori pinini ulanmagan holda qoldirdim.

4 -qadam: dasturiy ta'minotni ishlab chiqish

Dasturiy ta'minotni ishlab chiqish
Dasturiy ta'minotni ishlab chiqish

Ilgari, men odatda siz to'ldirgan dasturiy ta'minot faylini tashlab yuborardim, ehtimol hamma nima qilayotgani haqida qisqacha ma'lumot. Menga bu yoqmaydi. Men ushbu seriya ishlab chiqilayotgan loyihalar haqida bo'lishini xohlayman va shu maqsadda men ushbu dasturiy ta'minotning boshidan oxirigacha haqiqiy rivojlanishini o'z ichiga olaman.

Odatdagidek, men Digilent yadroli Arduino IDE -dan foydalanaman. Har bir bo'limda kodli fayl, skrinshot, shuningdek qo'shimchalarning tavsifi va biz nimaga erishmoqchi bo'lamiz.

Hozir men, misollar papkasida topganingizdek, oddiy kechikish uslubidagi miltillash dasturidan boshlayapman. Agar siz men yozgan uzun sarlavhani o'qigan bo'lsangiz, bu jarayonning har bir bosqichi dasturni yakuniy maqsadimizga yaqinlashtirishi uchun o'zgartirilishini ko'rasiz.

5 -qadam: davlat mashinasi miltillaydi

Davlat mashinasi miltillashi
Davlat mashinasi miltillashi

Mening birinchi harakatim - miltillash funktsiyasini "delay ()" ga asoslangan holat holatiga o'zgartirish.

Ifodani o'zgartirishga odatlanmaganlar uchun u xuddi if-bayonotiga o'xshab ishlaydi. Bu (to'q sariq rangli qutida) bizning "holat" o'zgaruvchisini sinab ko'radi (u 0 dan boshlanadi). Keyin u bizning hozirgi holatimizga o'tadi. Siz ko'rasizki, 0 va 2 holatlari LEDni yoqish va o'chirish uchun javobgardir (mos ravishda), 1 va 3 -holat esa kalitlar o'rtasida kutish uchun javobgardir.

6 -qadam: Yonish tugmasi

Blink tugmasi
Blink tugmasi
Blink tugmasi
Blink tugmasi
Blink tugmasi
Blink tugmasi

Keyin men chiroqni o'chirish uchun tugma ishlatilishini xohlardim. Buni haddan tashqari murakkablashtirish o'rniga, men barcha shtatlarni bittaga pastga siljitdim (0-holat 1-holatga aylanadi va hokazo). Buni amalga oshirayotganda, chiqish holatlarini va shtatning o'zini ko'paytirishga ehtiyot bo'ling (3 -rasmga qarang).

Ikkinchi "kutish" holatini ham o'chirib tashladim. Bu shuni anglatadiki, tugma bir soniya davomida chiroqni yoqadi va siz tugmani o'chirgandan so'ng darhol yana bosishingiz mumkin.

Ta'kidlash joizki, bu tizim biz uchun tugmani avtomatik ravishda o'chirib tashlaydi, chunki biz 0 holatiga qaytishdan oldin LED o'chishini kutishimiz kerak, bu erda tugma yana tsiklni ishga solishi mumkin.

7 -qadam: ketma -ket aloqa

Serial aloqa
Serial aloqa
Serial aloqa
Serial aloqa

Bu yangilanish juda kichik. Men faqat Serial aloqani o'rnatish va xabarlar yuborishni xohlardim. Birinchi rasmda, men ketma -ketlikni setup () funktsiyasidan boshlaganimni ko'rishingiz mumkin. Bizning davlat mashinamiz ichida men kompyuterga ketma -ket oddiy xabarlar yuboradigan 1 va 3 -holatlarga qator qo'shdim.

8 -qadam: Koordinatalarni o'qish

Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish
Koordinatalarni o'qish

Oxirgi qadam oson bo'lgani ma'qul, chunki bu bema'nilik edi.

Boshlash uchun men sensorli panel uchun o'zgaruvchilarni qo'shdim, shu jumladan sensorli panel va tugma uchun ajratilgan vaqt o'zgaruvchilari. Sababini birozdan keyin ko'rasiz.

Men davlat mashinasini to'liq qayta yozdim. Kodni ko'rib chiqish biroz chalkash, shuning uchun men bajarilgan ishlarni tasvirlashi kerak bo'lgan blok -sxemani qo'shdim.

E'tibor qilish kerak bo'lgan narsalar: hozirda uchta "kutish" bosqichi bor. Sensorli panelning har bir konfiguratsiyasi uchun bittasi, o'lchovni o'tkazishdan oldin kuchlanish o'rnatilishi uchun, bittasi esa tugmachani to'g'ri o'chirish uchun vaqt beradi. Bu kutish bosqichlari, shuning uchun men tugmachani ham, sensorli panelni ham o'z vaqt o'zgaruvchilarini berishni xohladim.

Eslatma: DEBOUNCE_TIME konstantasi biroz past bo'lishi mumkin. O'zingizni erkin his qiling.

9 -qadam: tozalash

Tozalash
Tozalash
Tozalash
Tozalash
Tozalash
Tozalash

Biz ushbu loyiha kodining oxirgi versiyasiga keldik!

Boshlash uchun, o'tgan vaqtni hisoblash uchun loop_diff () funktsiyasini qo'shdim. DP32 uchun ichki soat - bu imzosiz uzun va bu juda qiyin bo'lsa -da, bu kodning ish vaqti davomida soatning aylanishi ehtimoli bor*. Bunday holda, btn_time yoki panel_time -da saqlangan vaqtdan hozirgi vaqtni olib tashlash bizga g'alati narsa beradi, shuning uchun looplar paydo bo'lganda aniqlash va shunga mos ravishda o'zini tutish uchun loop_diff () ni yozdim.

Men ham ozgina tozalash ishlarini qildim. Men hozir ishlatilmaydigan "state_time" o'zgaruvchisini olib tashladim. Men LED_BUILTIN yorlig'idan (bu Arduino standarti) PIN_LED1 yorlig'iga o'tdim (bu chipKit va DP32 uchun standart). Men Serial orqali jarayonni boshlash va tugatish haqidagi barcha xabarlarni o'chirib tashladim, bu esa Serial orqali ma'lumotlarni ancha tozalaydi.

*Men matematikani yillar oldin qilganman va o'ylaymanki, millis () funktsiyasi uchun o'zgaruvchining aylanishidan oldin bir haftalik doimiy ish vaqti kerak bo'ladi.

10 -qadam: Yakuniy fikrlar

Yakuniy fikrlar
Yakuniy fikrlar

Va bu hammasi!

Agar siz kuzatgan bo'lsangiz, endi mikrokontroleringizga ishchi sensorli panel ulangan bo'lishi kerak! Bu kichik loyiha edi, lekin bu katta loyihaning bir qismi. Men 271828 ning "Plitalar va to'p" kabi bir narsaga harakat qilyapman va bu sodir bo'lishidan oldin uzoq yo'lni bosib o'tishim kerak. Men sizni butun jarayon davomida olib borishga harakat qilaman va har bir qism o'zining kichik loyihasi bo'lishi kerak.

Bu men uchun o'quv jarayoni, shuning uchun o'z fikr va takliflaringizni quyidagi izohlarda qoldiring.

Rahmat, keyingi safar ko'rishguncha!

Tavsiya: