Nazariy darsda oddiy raqamli datchiklar bilan ishlash bo’yicha qisqacha ma’lumotlar berilgan. Biz quyida shunday datchiklar bilan ishlashni namunaviy sketchlar yordamida ko’rib chiqamiz.
1-misol. Misol tariqasida Arduino IDE ning “Примеры/02. Digital” menyusidagi “Button” sketchidan foydalanamiz. Bunda, Arduino platasi raqamli piniga ulangan tugma raqamli datchik vazifasini bajaradi.
Tugmaning bitta kontaktini Arduino UNOning 5-piniga, 2-chisini GND piniga ulaymiz. Demak, tugma bosilsa, 5-pinda ham LOW holati hosil bo’ladi, qo’yib yuborilganda o’zgaruvchan signal hosil bo’ladi (Agar tugmaning 2-kontakti plataning 5V piniga ulansa, tugma bosilganda, 5-pinda HIGH holati, qo’yib yuborilganda, o’zgaruvchan signal hosil bo’ladi). Raqamli pin kirish rejimida bo’lganda, unda o’zgaruvchan signal yuzaga keladi. Indikator sifatida raqamli 13-pindagi ichki svetodioddan foydalanamiz.
Sxema:

“Button” sketchi:
if/else ishtirokidagi 1 ta shart (ba’zida, har doim emas!) 2 ta if operatori ishtirokidagi 2 ta alohida shartlarga ajratilishi mumkin. Bunda, if operatori kodida faqat bitta amal bajarilsa, {} belgilari qo’llanilishi shart emas:
if (knopkaHolati == HIGH) digitalWrite(svetodiodPini, HIGH); // ajratilgan 1-shart
if (knopkaHolati == LOW) digitalWrite(svetodiodPini, LOW); // ajratilgan 2-shart
Yuqoridagi 1-sketchdan, turli raqamli datchiklarning signallarini o’lchash va qayta ishlashda foydalanish mumkin. Bunday datchiklar asosan bir-biridan, ularning Arduino platasiga bog’lanish sxemasi bilan farq qiladi xolos.
Yuqoridagi sketchni tugma o’rniga kontaktli datchik (2 ta magnitli datchik bir-biridan uzoqlashganda kontaktlaridagi signal yo’qoladigan datchik) qo’llanilgan holatlar uchun ham qo’llash mumkin. Asosiy farq shundaki, tugma bosilganda raqamli pinda qarama-qarshi signal paydo bo’lsa, kontaktli datchik kontaktlari uzilganda o’sha raqamli pinda signal yo’qoladi. Shuning uchun, bunday sketchni signalizatsiya qurilmalarini yaratishda qo’llash mumkin.
Ma’lumki, oddiy raqamli datchik modullari qabul qilingan analog signalni ichki ADC konverter yordamida o’zi raqamlashtirishi va oddiy raqamli signal holatida mikrokontrollerga uzatishi mumkin. Ya’ni, mikrokontrollarga analogni signalni raqamlashtirishga hojat qolmaydi. Masalan, KY-038 mikrofon moduli shunday imkoniyatga ega.
KY-038 mikrofon moduli Arduino UNO ga quyidagi sxema asosida ulanadi (Bizning maqsadimiz faqat raqamli signalni qabul qilish va o’qish bo’lganligi uchun, modulning A0 analog chiqishidan foydalanmaymiz. Xuddi shu sxemadan foydalangan holda, analog signalni o’qish va qayta ishlash bo’yicha sketch bilan esa alohida darsda tanishamiz).

Sketch ishga tushirilgach hududdagu tovush balandligidan kelib chiqib, raqamli signallarning qiymatlari o’zgarayotganini kuzatish mumkin.
2-misol. Yuqorida ta’kidlanganidek, raqamli pinga hech qanday signal yuborilmaganda unda mavhum (o’zgaruvchan) signal holati yuzaga keladi. Mavhum holatni bartaraf etish uchun sxemada kerakli pin bilan musbat qutb orasida pinni musbat qutbga tortuvchi rezistor qo’llanilishi yoki “INPUT” rejimi o’rniga “INPUT_PULLUP” rejimini qo’llash mumkin (mikrokontrollerda bunday pinlar soni cheklangan – faqat ayrim raqamli pinlar uni qo’llab-quvvatlaydi). INPUT_PULLUP rejimi haqida batafsil ushbu dars orqali tanishish mumkin.
Agar tugma raqamli pin bilan musbat qutb (+5V) orasida qo’llanilsa, mazkur pin bilan manfiy qutb (GND) orasida (pinni manfiy qutbga tortuvchi) rezistor qo’llanilishi zarur. Dastur yordamida esa, bunday rejimni o’rnatib bo’lmaydi:

Biz navbatdagi misolda raqamli pinni “INPUT_PULLUP” rejimiga o’tkazib olamiz. Misol tariqasida esa, Arduinoning “DigitalInputPullup” namunaviy sketchidan foydalanamiz (sketchdagi inglizcha izohlarni chiqarib tashlanadi. Dasturdagi notanish elementlar o’zbek tilida izohlab ketiladi).
Yuqoridagi sketchlardan raqamli chiqishga ega bo’lgan va HIGH hamda LOW signallarini chiqarishga mo’ljallangan quyidagi oddiy raqamli datchiklar qiymatlarini o’chashda ham foydalanish mumkin:
- ttp223 sensorli tugmasi;
- SW-420 vibratsiya datchigi;
- taxodatchik;
- og’ish datchigi;
- xoll datchigi;
- turli xil gazlarni aniqlovchi datchiklar va hokazo.
(material to’ldirish jarayonida)