Robototexnika · Mikrokontrollerlar · 7-sinf
Analog kirish va Serial monitor
Qorong‘ida o‘zi yonadigan tungi chiroq: 0–1023 sonlar qayerdan keladi va chiroq nega miltillaydi?
Vaziyat
Yo‘lakdagi tungi chiroq kech kirishi bilan o‘zi yonadi, tong otganda o‘chadi — hech kim tugma bosmaydi. Ichida fotorezistor va kichkina «miya». Arduino ham shunday chiroq bo‘la oladi: analog kirish A0 kuchlanishni emas, 0 dan 1023 gacha son beradi. Avval potensiometr bilan bu sonlar qayerdan kelishini topamiz va ularni Serial monitorda ko‘ramiz, keyin fotorezistorni ulaymiz. Stol lampasini xiralashtiramiz — chiroq yonadi… lekin g‘ira-shirada u titrab-miltillaydi. Nega? 1024 pog‘ona, `map()`, chegara va gisterezis — hammasi shu tajribada.
Mavzu
Analog kirish va Serial monitor. Potensiometr va fotorezistor: 0–1023 raqamlar qayerdan keladi, map() va Serial.println()
Asosiy tushunchalar
- analogRead, 10 bit
- Fotorezistor bo‘luvchisi
- Serial va gisterezis
Formulalar
ADC (10 bit): `analogRead(A0)` kuchlanishni 1024 pog‘onaga bo‘ladi; 5 V → 1023, 2,5 V → 512.
Bir pog‘ona — eng kichik farq, ADC ni «ko‘ra oladi»; undan mayda o‘zgarish sonni o‘zgartirmaydi.
Fotorezistor bo‘luvchisi: yorug‘da kichik — A0 da deyarli 5 V (katta son); qorong‘ida megaomlarga chiqadi — son nolga yaqin.
`map()` bir oraliqni boshqasiga butun sonlarda o‘tkazadi: 512 → 50, kasr qismi tashlanadi.
Gisterezis: yoqish va o‘chirish chegaralari har xil (450 / 550) — shovqin ikkala chegarani birdan kesib o‘ta olmaydi, chiroq miltillamaydi.
Nazariya
Analog va raqamli
`digitalRead` faqat ikki javob biladi: HIGH yoki LOW. Dunyo esa uzluksiz: yorug‘lik, harorat, dastak burchagi — istalgan qiymat. Arduino ning A0–A5 pinlari analog-raqamli o‘zgartirgich (ADC) ga ulangan: u 0–5 V kuchlanishni o‘lchab, 10 bitli son beradi — pog‘ona, 0 dan 1023 gacha. Bir pog‘ona mV. Har o‘lchov ≈ 100 mks: sekundiga ≈ 10 000 marta. `analogRead(A0)` kuchlanishni emas, sonni qaytaradi; voltga o‘zingiz aylantirasiz: .
Potensiometr A0 da
Potensiometrning chet oyoqlari 5V va GND ga, o‘rtasi A0 ga: bu kuchlanish bo‘luvchi — dastak ulushda 5 V beradi. «Potensiometr» tajribasida LED bo‘luvchini «o‘tirgizgan» edi; ADC kirishi esa deyarli tok olmaydi (≈ 100 MΩ), shuning uchun 10 kΩ potensiometr aynan V beradi: o‘rtada 2,5 V → 512, oxirida 5 V → 1023. Sonni foizga `map(N, 0, 1023, 0, 100)` o‘tkazadi — butun sonlarda, kasr tashlanadi.
Fotorezistor (LDR)
Fotorezistor — kadmiy sulfid (CdS) qatlamli disk: yorug‘likda qarshiligi keskin kamayadi. Odatiy GL5528: 10 lk da ≈ 10 kΩ, kun yorug‘ida yuzlab om, qorong‘ida ≈ 1 MΩ. ADC qarshilikni emas, kuchlanishni o‘lchaydi — shuning uchun bo‘luvchi: 5V → LDR → A0 → 10 kΩ → GND. Yorug‘da LDR kichik, A0 da deyarli 5 V (900+); qorong‘ida LDR katta, A0 nolga yaqin (10–50). 10 kΩ bejiz emas: u LDR ning «g‘ira-shira» qarshiligiga teng — chegara o‘rtada, 512 atrofida chiqadi. Qo‘l bilan yopsangiz, ikki sekundda son yuzga tushadi.
Serial monitor va Serial Plotter
`Serial.begin(9600)` USB orqali kompyuter bilan aloqani ochadi: 9600 bod ≈ sekundiga 960 belgi. `Serial.print(x)` sonni yozadi, `println` — yangi qatordan. Serial monitor matnni ko‘rsatadi; Serial Plotter esa har qatordagi sonni nuqta qilib grafik chizadi — sensorni «ko‘rishning» eng tez yo‘li. Bu tajribada grafik avtomatik: A0 va chiroq holati vaqt bo‘yicha. `float` sonlar ikki kasr bilan chiqadi: 2.50.
Chegara, miltillash va gisterezis
Tungi chiroq: `if (N < 500) yoq; else o‘chir;`. Yorug‘likda va qorong‘ida ishlaydi, lekin g‘ira-shirada — N aynan 500 atrofida — chiroq titraydi: lampa shu’lasi, soyalar, ADC shovqini sonni ±10–20 ga tebratadi va u chegarani sekundiga o‘nlab marta kesib o‘tadi. Davo — gisterezis: ikki chegara, 450 da yoqish, 550 da o‘chirish; oradagi 100 pog‘ona ichida hech narsa o‘zgarmaydi, shovqin unga yetmaydi. Termostat, ko‘cha chiroqlari, sovutgich — hammasi shu usulda. Ikkinchi yordamchi — bir nechta o‘lchovning o‘rtachasi.
Model haqida va xavf
ADC: (1023 dan oshmaydi), shovqin ±1 pog‘ona; LDR: , qorong‘ida 1 MΩ; yorug‘lik ±4 % tebranadi (lampa va soyalar); lampa 0–100 % → 1–1000 lk. Serial uzatish modelda bir zumda (haqiqatda 9600 bodda qator ≈ 5 ms). Xavf: A0 ga 5,5 V dan ko‘p berib bo‘lmaydi — bo‘luvchini 9 V batareyadan quvvatlasangiz, yorug‘da A0 da 8 V bo‘ladi: pinning himoya diodi ochiladi, bir necha mA chip orqali oqadi va ATmega328P kuyadi (xira yorug‘likda hali 4,5 V — omon qoladi, ko‘zingiz tushmaydi!).
Bilasizmi?
- ATmega328P dagi ADC har o‘lchovga ≈ 100 mikrosekund sarflaydi (125 kHz takt, 13 takt) — Arduino hujjatida «sekundiga taxminan 10 000 o‘lchov» deyiladi; shuning uchun `delay()` siz `loop()` da ham A0 sekundiga 10 mingdan ko‘p o‘qilmaydi.
- Yorug‘likda qarshiligi o‘zgaradigan moddani 1873-yilda ingliz muhandisi Uilloubi Smit (Willoughby Smith) selenda kashf etgan — fotorezistorning «bobosi»; hozirgi arzon fotorezistorlar kadmiy sulfid (CdS) dan yasaladi va ko‘cha chiroqlarining avtomatik yoqilishida ishlatiladi.
Tajribada nima bor
Haqiqiy plata qo‘lda chizilgan rasmda: uni aylantirasiz, qismlarni joylaysiz, zanjirni ulaysiz, kodni yozib yuklaysiz — tok va kuchlanish o‘sha zahoti hisoblanadi, xato ulashda qism kuyadi. Ichida topshiriqlar, nazariya, test va ekskursiya bor.
Shu bo‘limdagi boshqa tajribalar
- Arduino Uno: birinchi dastur — 7-sinf
- Tugma va raqamli kirish — 7-sinf
- PWM: yorqinlik va ovoz — 8-sinf
- millis() va ko‘p vazifa — 8-sinf