Mundarija:

Raspberry Pi GPIO sxemalari: ADC holda LDR analog sensori yordamida (analogli raqamli konvertor): 4 qadam
Raspberry Pi GPIO sxemalari: ADC holda LDR analog sensori yordamida (analogli raqamli konvertor): 4 qadam

Video: Raspberry Pi GPIO sxemalari: ADC holda LDR analog sensori yordamida (analogli raqamli konvertor): 4 qadam

Video: Raspberry Pi GPIO sxemalari: ADC holda LDR analog sensori yordamida (analogli raqamli konvertor): 4 qadam
Video: Raspberry Pi 3: GPIO (#2) – библиотека RPi.GPIO полный мануал – Часть 5.2 2024, Noyabr
Anonim
Raspberry Pi GPIO sxemalari: ADCsiz LDR analog sensori yordamida (raqamli konvertorga o'xshash)
Raspberry Pi GPIO sxemalari: ADCsiz LDR analog sensori yordamida (raqamli konvertorga o'xshash)

Oldingi ko'rsatmalarimizda biz sizga Raspberry Pi -ning GPIO pinlarini svetodiod va kalitlarga qanday ulashingiz va GPIO pinlarining baland yoki past bo'lishini ko'rsatdik. Agar siz Raspberry Pi -ni analog sensor bilan ishlatmoqchi bo'lsangiz nima bo'ladi?

Agar biz Raspberry Pi bilan o'xshash sensorlardan foydalanmoqchi bo'lsak, biz sensorning qarshiligini o'lchay olamiz. Arduino -dan farqli o'laroq, Raspberry Pi -ning GPIO pinlari qarshilikni o'lchay olmaydi va ularga berilgan kuchlanish ma'lum bir kuchlanishdan (taxminan 2 volt) yuqori bo'lsa, buni sezadi. Ushbu muammoni hal qilish uchun siz analogdan raqamli konvertorga (ADC) foydalanishingiz mumkin yoki uning o'rniga nisbatan arzon kondansatör ishlatishingiz mumkin.

Bu ko'rsatma sizga buni qanday qilish kerakligini ko'rsatib beradi.

1 -qadam: Sizga nima kerak

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

- Raspbian o'rnatilgan RaspberryPi. Shuningdek, siz monitorga, sichqoncha va klaviatura yordamida yoki masofaviy ish stoli orqali Pi -ga kirishingiz kerak bo'ladi. Siz Raspberry Pi -ning har qanday modelidan foydalanishingiz mumkin. Agar sizda Pi Zero modellaridan biri bo'lsa, siz GPIO portiga bir nechta bosh pinlarini lehimlashingiz mumkin.

- nurga bog'liq rezistor (LDR yoki fotorezistor sifatida ham tanilgan)

- 1 uF seramika kondansatkichi

- Lehimsiz prototipli jadval

- Erkak -Ayol jumper simlari

2 -qadam: O'z davrangizni yarating

O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating
O'z davrangizni yarating

Yuqoridagi sxemani o'z taxtangizga o'rnating, uning tarkibiy qismlarining hech biri tegmasligiga ishonch hosil qiling. Yorug'likka bog'liq rezistor va seramika kondansatör kutupluluğa ega emas, demak manfiy va musbat tokni simga ulash mumkin. Shunday qilib, ushbu komponentlar sizning elektron tizimingizga qanday ulanganligi haqida tashvishlanishingiz shart emas.

Tizimni tekshirganingizdan so'ng, yuqoridagi diagramaga muvofiq o'tish kabellarini Raspberry Pi -ning GPIO pinlariga ulang.

3 -qadam: Yorug'lik qarshiligini o'qish uchun Python skriptini yarating

Nurga bog'liq rezistorni o'qish uchun Python skriptini yarating
Nurga bog'liq rezistorni o'qish uchun Python skriptini yarating

Endi biz Python yordamida LDR qarshiligini o'qiy oladigan va ko'rsatadigan qisqa skript yozamiz.

Raspberry Pi -da IDLE -ni oching (Menyu> Dasturlash> Python 2 (IDLE)). Yangi loyihani oching, Fayl> Yangi fayl -ga o'ting. Keyin quyidagi kodni kiriting (yoki nusxa ko'chiring va joylashtiring):

RPi. GPIO -ni GPIOimport timempin = 17 tpin = 27 GPIO.setmode (GPIO. BCM) cap = 0.000001 adj = 2.130620985i = 0 t = 0 sifatida import qilish: True: GPIO.setup (mpin, GPIO. OUT) GPIO.setup (tpin), GPIO. OUT) GPIO.output (mpin, False) GPIO.output (tpin, False) time.sleep (0.2) GPIO.setup (mpin, GPIO. IN) time.sleep (0.2) GPIO.output (tpin, True)) starttime = time.time () endtime = time.time () while (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () o'lchov qarshiligi = endtime-starttime res = (o'lchov qarshiligi/qopqoq)* adj i = i+1 t = t+res i == 10 bo'lsa: t = t/i chop etish (t) i = 0 t = 0

Hujjatlar papkasida loyihangizni lightsensor.py (Fayl> Saqlash sifatida) sifatida saqlang.

Endi terminalni oching (Menyu> Aksessuarlar> Terminal) va quyidagi buyruqni kiriting:

python lightsensor.py

Raspberry Pi fotorezistor qarshiligini bir necha bor ko'rsatadi. Agar siz barmog'ingizni fotorezistor ustiga qo'ysangiz, qarshilik kuchayadi. Agar siz fotorezistorga yorqin nur sochsangiz, qarshilik kamayadi. Siz CTRL+Z tugmalar birikmasini bosish orqali ushbu dasturning ishlashini to'xtatishingiz mumkin.

4 -qadam: Bu qanday ishlaydi

Kondensator asta -sekin zaryad olganda, kontaktlarning zanglashiga va GPIO piniga o'tadigan kuchlanish ko'tariladi. Kondensator ma'lum bir nuqtaga zaryad olgandan so'ng, uning voltaji 2 voltdan oshadi va Raspberry Pi GPIO pin 13 yuqori ekanligini sezadi.

Agar sensorning qarshiligi oshsa, kondansatör sekinroq zaryad oladi va kontaktlarning zanglashiga 2 voltga yetishi uchun ko'proq vaqt kerak bo'ladi.

Yuqoridagi skript, asosan, 13 -gachasi pog'onani balandga burish uchun qancha vaqt ketishini ko'rsatadi va keyin bu o'lchov yordamida Fotoresistor qarshiligini hisoblab chiqadi.

Tavsiya: