ADC nima? Analog signal har qanday miqdordagi qiymatlarni qabul qilishi mumkin. Raqamli signal esa faqat ikkita qiymatga ega: HIGH va LOW. Arduinoda analog signallarning qiymatini o`lchash uchun o`rnatilgan analog-raqamli konvertor (ADC) mavjud. ADC analog kuchlanishni raqamli qiymatga aylantiradi. Analog signalning qiymatini olish uchun ishlatiladigan funksiya analogRead (pin) dir. Ushbu funksiya analog kirish pinining kuchlanish qiymatini o`zgartiradi va mos yozuvlar qiymatiga nisbatan 0 dan 1023 gacha raqamli qiymatni qaytaradi. Aksariyat Arduino UNOda A5gacha, Arduino Mega-da A15gacha va Arduino Mini va Nanoda A7 gacha pinlar mavjud. Pin raqami uning yagona parametridir.
PWM signalini chiqarish uchun analogWrite (pin, qiymat) funksiyasidan foydalaniladi. Qiymat =0 bo`lsa, signal har doim o`chirilgan bo`ladi. Qachonki qiymat=255 bo`lsa, signal har doim yoqilgan bo`ladi. PWM funksiyasi ko`plab Arduino platalarida 3, 5, 6, 9, 10 va 11-pinlarda ishlaydi. Ko`pgina pinlarda PWM signalining chastotasi taxminan 490 Gers ni tashkil qiladi. UNO va shunga o`xshash platalarda 5 va 6-pinlar taxminan 980 Gers chastotaga ega. Analog kirish qiymatini kerakli qurilmalar qiymatlariga moslashtirish uchun quyidagi funktsiyadan foydalanishingiz mumkin: map (qiymat, pastdan, yuqoridan, pastga, yuqoriga). Bu 0 dan 1023 gacha bo`lgan PWM chiqish signaligacha yani 0—255 oralig`ida bo`ladi. Bu funksiya beshta parametrga ega, birinchisi analog qiymat o`zgaruvchisidir, qolganlari esa mos ravishda 0, 1023, 0 va 255.
3.3.Arduino UNOda PWM, analog, raqamli pinlar
PWM (PWM) pinlarlari (Analog chiqish) 3, 5, 6, 9, 10, 11.
Analog pinlarlari (Analog kirish/chiqish) A0, A1, A2, A3, A4, A5.
Raqamli pinlarlari (Raqamli kirish/chiqish) 0 dan 13 gacha barcha portlar, foydalanish mumkin:
A0 – A5 gacha Analog pinlarlari raqamli pin sifatida ishlatiladi, agar umumiy maqsadli portlar yetarli bo`lmasa, masalan, plataga 15 ta svetodiodni ulashni xohlasangiz. Bundan tashqari, Arduino UNO va Nano platalarida A4 va A5 portlari I2C protokoli (SDA va SCL pinlari) uchun ishlatiladi – ular A4 va A5 pinlari bilan parallel ishlaydi.
Agar chiqish kuchlanishini tartibga solmoqchi bo`lsangiz, "~" belgisi bilan belgilangan pinlarni ishlatishingiz kerak. Arduino UNO uchun bular 3, 5, 6, 9, 10, 11. Analog portlar yordamida 0 dan 5 voltgacha bo`lgan har qanday kuchlanishni chiqarish mumkin va raqamli chiqishlarni faqat yoqish va o`chirish mumkin. Analog portlar PWM (pulse-width modulation), o`zbek tilida IKM (impuls kengligi modulyatsiyasi), rus tilida (широтно-импульсная модуляция) dan foydalanadi, bu analog signalni simulyatsiya qiladi.
Arduinoda analog pinlarni raqamli sifatida ishlatish
Ko`p qurilmalarni ulashda umumiy maqsadli pinlar etarli bo`lmasligi mumkin. Bunda dasturda analog pinlarni raqamli pinlar sifatida ishlatish mumkin.
void setup () {
pinMode (A3, OUTPUT); //A3 pinini raqamli chiqish sifatida e`lon qilish
}
Raqamli signal va analog signal o`rtasidagi farqni tushunish uchun, LED va rezistorli sxemani amaliyot taxtasida o`rnating. Analog chiqishni
~ 9 ga ulang. Chiqish portini Pin 9 ga ulang. Dasturni Arduino NANO yoki UNO platasiga yuklang.
Port 9 raqamli chiqish sifatida ishlashi mumkin. Agar digitalWrite funksiyasi analogWrite ga o`zgartirilsa, HIGH (1) va LOW (0) qiymatlari o`rniga 0 dan 255 gacha bo`lgan istalgan qiymatni qabul qiladi. Aynan shu oraliqda analog chiqishlardagi kuchlanish o`zgartiriladi. LEDni yoqish va o`chirish uchun dasturni yuklab oling. Ushbu dasturning ishlashining batafsil tavsifi quyida kodda berilgan.