Fotorezistrdan kelayotgan qiymatni kamayishini zisoblash yordamida Avtomat uzib ulagichdan foydalanib xonodon chiroqlarini avtomatlashtirish dasturi va loyixasini yaratish


Download 486.85 Kb.
bet8/10
Sana31.01.2023
Hajmi486.85 Kb.
#1145493
1   2   3   4   5   6   7   8   9   10
Bog'liq
21 61 (1) umirbek

2-qadam: Bloklar bilan kodlash

Fotorezistor holatini tinglash uchun kod bloklari muharriridan foydalanamiz, so'ngra sensor qanchalik yorug'lik ko'rishiga qarab LEDni nisbiy yorqinlikka o'rnatamiz. Fading LED darsida analog LED chiqishi haqidagi xotirangizni yangilashni xohlashingiz mumkin .
Kod muharririni ochish uchun "Kod" tugmasini bosing. Kulrang Notation bloklari sizning kodingiz nima qilishni rejalashtirayotganingizni qayd qilish uchun izohlardir, ammo bu matn dasturning bir qismi sifatida bajarilmaydi.
Kod muharririda "O'zgaruvchilar" toifasini bosing.
Fotorezistorning qarshilik qiymatini saqlash uchun "sensorValue" nomli o'zgaruvchini yarating.
"O'rnatish" blokini torting. Biz fotorezistorning holatini o'zgaruvchida saqlaymiz sensorValue.
"Kirish" toifasini bosing va "analog o'qish pin" blokini tortib oling va "to" so'zidan keyin "to'siq" blokiga joylashtiring.
Bizning potansiyometrimiz A0 pinidagi Arduino-ga ulanganligi sababli, ochiladigan ro'yxatni A0 ga o'zgartiring.
Chiqish toifasini bosing va "seriyali monitorga chop etish" blokini tortib chiqaring.
O'zgaruvchilar toifasiga o'ting va sensorValue o'zgaruvchingizni "seriyali monitorga chop etish" blokiga torting va ochiladigan menyu yangi qator bilan chop etish uchun o'rnatilganligiga ishonch hosil qiling. Ixtiyoriy ravishda simulyatsiyani ishga tushiring va sensorni sozlaganingizda ko'rsatkichlar kelayotganini va o'zgarishini tekshirish uchun ketma-ket monitorni oching. Analog kirish qiymatlari 0-1023 oralig'ida.
Biz LEDga 0 (o'chirilgan) va 255 (to'liq yorqinlik) o'rtasidagi raqam bilan yozishni xohlayotganimiz sababli, biz uchun o'zaro ko'paytirishni amalga oshirish uchun "xarita" blokidan foydalanamiz. Matematik toifasiga o'ting va "xarita" blokini tortib oling.
Birinchi uyaga sensorValue o'zgaruvchisi blokini torting, so'ngra diapazonni 0 dan 255 gacha o'rnating.
Chiqish toifasiga qayting, sukut bo'yicha "3-pinni 0 ga o'rnatish" deb yozilgan analog "o'rnatilgan pin" blokini tortib oling. Uni 9-pinni o'rnatish uchun sozlang.
PWM yordamida sozlangan raqamni LED piniga yozish uchun avval yaratgan xarita blokini "o'rnatilgan pin" blokining "to" maydoniga torting.
Boshqaruv toifasini bosing va kutish blokini tortib chiqaring va dasturni .1 soniyaga kechiktirish uchun uni sozlang.

Fotorezistordan kelayotgan qiymatni kamayishini xisoblash yordamida avtomat uzib ulagichdan ( reladan) foydalanib xonadon chiroqlarini avtomotlashtish dasturi va loyixasini yaratish.


Kod muharriri ochiq bo'lsa, siz kod bloklari tomonidan yaratilgan Arduino kodini ochish uchun chapdagi ochiladigan menyuni bosishingiz va "Bloklar + Matn" ni tanlashingiz mumkin. Kodni batafsil o'rganayotganimizda kuzatib boring.
int sensorValue = 0;
dan oldin setup(), biz potansiyometrdan o'qilgan joriy qiymatni saqlash uchun o'zgaruvchini yaratamiz. intBu butun son yoki istalgan butun son bo'lgani uchun chaqiriladi .
bekor o'rnatish()
{
pinMode (A0, INPUT);
pinMode (9, OUTPUT);
Serial.begin(9600);
}
pinMode()O'rnatish ichida pinlar funksiya yordamida sozlangan . Pin A0 kirish sifatida tuzilgan, shuning uchun biz potansiyometrning elektr holatini "tinglashimiz" mumkin. Pin 9 LEDni boshqarish uchun chiqish sifatida tuzilgan. Xabarlarni yuborish imkoniyatiga ega bo'lish uchun Arduino yangi ketma-ket aloqa kanalini ochadi, Serial.begin()u uzatish tezligi argumentini oladi (muloqot qilish uchun qanday tezlik), bu holda soniyada 9600 bit.
void loop()
{
// sensordan qiymatni o'qing
sensorValue = analogRead(A0);
// sensor ko'rsatkichini chop eting, shunda siz uning diapazonini bilasiz
Serial.println(sensorValue);

Chiziqlar to'plamidan keyin hamma narsa //sharh bo'lib, odamlarga dastur nima qilish uchun mo'ljallanganligini oddiy tilda tushunishga yordam beradi, lekin Arduino ishlayotgan dasturga kiritilmagan. Asosiy tsiklda funksiya analogRead();A0 pinining holatini tekshiradi (bu 0 dan 1023 gacha butun son bo'ladi) va bu qiymatni o'zgaruvchida saqlaydi sensorValue.


// sensorni o'qishni LED diapazoniga moslang
analogWrite(9, xarita(sensorValue, 0, 1023, 0, 255));
kechikish (100); // 100 millisekund kuting
}
Keyingi sharhdan keyingi qator bir vaqtning o'zida juda ko'p narsani qiladi. Esda tuting analogWrite(), ikkita argument oladi: PIN raqami (bizning holatlarimizda 9) va yoziladigan qiymat 0 dan 255 gacha bo'lishi kerak. Inline funksiya map()beshta argumentni oladi: baholanadigan raqam (doimiy o'zgaruvchan sensor o'zgaruvchisi), kutilgan minimal va kutilgan maksimal va kerakli min va maks. Shunday qilib, map()bizning holatimizda funktsiya kiruvchi sensorValue ni baholaydi va chiqishni 0-1023 dan 0-255 gacha qisqartirish uchun o'zaro ko'paytirishni amalga oshiradi. analogWrite();Natija 9-pinga ulangan LEDning yorqinligini o'rnatib, ikkinchi argumentga qaytariladi .



Download 486.85 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling