Kirish: Arduino 101 asoslari Eliesalame


-qadam: AnalogRead() va AnalogWrite()


Download 329 Kb.
bet5/9
Sana13.12.2022
Hajmi329 Kb.
#999315
1   2   3   4   5   6   7   8   9
Bog'liq
2-amaliyot barno

4-qadam: AnalogRead() va AnalogWrite()

Ushbu misolda men analogRead() va analogWrite() ikkita bayonotidan foydalanishni ko'rsataman. Men foydalanayotgan eskiz ReadAnalogVoltage deb ataladi, uni File/Examples/01.Basics dan yuklash mumkin va analogwrite() ni namoyish qilish uchun bir necha qator qo‘shdim.
Sizga Arduino, potansiyometr, LED va bir nechta o'tish simlari kerak bo'ladi. Potansiyometrning o'rta pinini Arduino-dagi A0 (analog 0) piniga, so'ngra + ve-ni Arduino-dagi 5v ga va -ve-ni Arduino-dagi GND ga ulang. Va LEDning + va simini Arduino-dagi D5 ga va -ve simini GND ga ulang.
Ushbu Sketchda A0 pinining qiymati ketma-ket monitorda chop etiladi va bir vaqtning o'zida biz potansiyometrni aylantirganimizda LEDning yorqinligi o'zgaradi.
Eskiz :
int LEDpin = 5; //raqamli pin 5 ga LED ulangan
bekor o'rnatish() {
Serial.begin(9600); // sekundiga 9600 bit tezlikda ketma-ket aloqani ishga tushiring
pinMode (LEDpin, OUTPUT); // 5-pindagi pin rejimini OUTPUT ga o'rnating
}
void loop() {
int sensorValue = analogRead(A0); // 0 analog pinidagi kirishni o'qing
float kuchlanish = sensorValue * (5.0 / 1023.0); // Analog ko'rsatkichni o'zgartiring (0 - 1023 gacha)
kuchlanishga (0 - 5V)
analogWrite (LEDpin, kuchlanish); //Kuchlanish qiymatini LED piniga qo'llang
Serial.println(kuchlanish); // o'qigan qiymatni chop eting:
}
Keling, eskizni ajratamiz:
int LEDpin = 5;
Bu LEDpin deb nomlangan int tipidagi o'zgaruvchi bo'lib, Arduino-da 5-pinda LED mavjudligini bildiradi.
bekor o'rnatish() {
Serial.begin(9600);
pinMode (LEDpin, OUTPUT);
}
Serial.begin(9600): Seriyali monitorni soniyasiga 9600 bod tezlikda ishga tushiradi
pinMode(LEDpin, OUTPUT): Arduino-dagi 5-pinning pin rejimini OUTPUT ga o'rnatadi.
void loop() {
int sensorValue = analogRead(A0);
float kuchlanish = sensorValue * (5.0 / 1023.0);
analogWrite (LEDpin, kuchlanish);
Serial.println(kuchlanish);
}
analogRead(): Birinchi qator int tipidagi sensorValue deb nomlangan yangi mahalliy o'zgaruvchini e'lon qiladi va biz Arduino'da A0 analog pinidan o'qigan qiymatga tayinlanadi. Raqamli pinlar 1 va 0 ni o'qishi va yozishi mumkin, ammo Arduino'dagi analog pinlar 0 dan 1023 gacha bo'lgan qiymatlarni o'qishi va yozishi mumkin.
Ikkinchi qatorda kuchlanish deb ataladigan float turidagi yangi o'zgaruvchi (o'nli kasrlar bilan) kiritiladi, bu yangi mahalliy o'zgaruvchining qiymati sensorValue*(5.0/1023.0). Endi biz o'zgaruvchining qiymatini matematik tenglama yordamida manipulyatsiya qilish mumkinligini ko'rishimiz mumkin. Analog pinlar 0 dan 1023 gacha natijalar berganligi sababli, biz bu qiymatni 0 dan 5 voltgacha bo'lgan voltga aylantirmoqchimiz. Shunday qilib, biz sensorValue-da olgan qiymatni olamiz va uni 5.0/1023.0 ga ko'paytiramiz, bu bizga 0 dan 5 voltgacha bo'lgan qiymatni beradi.
Misol: Agar biz potensiometrni yarmiga aylantirsak, analog ko'rsatkich 512 bo'ladi. Keyin bu qiymatni sensorValue ga 512 belgilaymiz.
Kodga ko'ra float kuchlanish = sensorvalue*(5.0/1023.0) keyin kuchlanish = 512* (5.0/1023.0) = 2.50 volt
analogWrite(): ushbu iboradan foydalanib, yuqoridagi misoldan foydalanib, pinga yangi qiymat yozishimiz mumkin, LEDpin qiymati kuchlanishini belgilash, agar kuchlanish yetarli bo'lsa, LEDni quvvatlantiradi.
Serial.println(): bu ketma-ket monitordagi kuchlanish qiymatini chop etadi.
Men ishlatgan LED kuchlanish 1,3 voltga yetganda zaif yonadi
Maslahat qo'shishSavol beringIzohYuklab oling

Download 329 Kb.

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




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