O‘zbekiston respublikasi mudofaa vazirligi axborot-kommunikatsiya texnologiyalari va aloqa harbiy instituti axborot texnologiyalari kafedrasi


Download 0.81 Mb.
Sana28.12.2022
Hajmi0.81 Mb.
#1021442
Bog'liq
7-mavzu arduino


O‘ZBEKISTON RESPUBLIKASI MUDOFAA VAZIRLIGI AXBOROT-KOMMUNIKATSIYA TEXNOLOGIYALARI VA ALOQA HARBIY INSTITUTI



AXBOROT TEXNOLOGIYALARI KAFEDRASI

7-mavzu: Arduinoda analog signallar bilan ishlash

Bajardi: 244-guruh K-nt-
Tekshirdi:

Toshkent 2021
Arduino analog signallarni, shuningdek raqamli signallarni kiritishi va chiqarishi mumkin.
Analog signal faqat ikkita qiymatga ega bo'lgan raqamli signaldan farqli o'laroq, istalgan miqdordagi qiymatlarni qabul qilishi mumkin: HIGH va LOW. Analog signallarning qiymatini o'lchash uchun Arduino o'rnatilgan analog-raqamli konvertorga (ADC) ega. ADC analog kuchlanishni raqamli qiymatga aylantiradi. Analog signalning qiymatini olish uchun foydalanadigan funksiya analogRead(pin). Ushbu funktsiya analog kirish pinidagi kuchlanish qiymatini o'zgartiradi va mos yozuvlar qiymatiga nisbatan 0 dan 1023 gacha raqamli qiymatni qaytaradi. Standart mos yozuvlar kuchlanishi 5 V (5 V Arduino platalari uchun) yoki 3,3 V (3,3 V Arduino platalari uchun). U bitta parametrga ega, bu PIN raqami.
Arduino-da o'rnatilgan raqamli-analogli konvertor (DAC) mavjud emas, lekin u analog chiqishning ba'zi funktsiyalariga erishish uchun raqamli signalni impuls kengligi modulyatsiyasi (PWM) qila oladi. PWM signalini chiqarish uchun ishlatiladigan funksiya analogWrite (pin, qiymat). pin - bu PWM chiqishi uchun ishlatiladigan pin raqami. qiymat signalning ish aylanishiga mutanosib sondir. Qiymat = 0 bo'lsa, signal har doim o'chirilgan. Qiymat = 255 bo'lsa, signal doimo yonib turadi. Ko'pgina Arduino platalarida PWM funksiyasi 3, 5, 6, 9, 10 va 11 pinlarda mavjud. Ko'pgina pinlarda PWM signalining chastotasi taxminan 490 Gts ni tashkil qiladi. Uno va shunga o'xshash platalarda 5 va 6-pinlar taxminan 980 Gts chastotaga ega. Leonardodagi 3 va 11-pinlar ham 980 Gts chastotada ishlaydi.
0 dan 1023 gacha bo'lgan analog kirish qiymatini 0 dan 255 gacha bo'lgan PWM chiqish signaliga xaritalash uchun siz map(qiymat, pastdan, yuqoridan, pastdan, yuqoriga) funksiyasidan foydalanishingiz mumkin. Bu funktsiya beshta parametrga ega, biri analog qiymat saqlanadigan o'zgaruvchidir, qolganlari esa mos ravishda 0, 1023, 0 va 255. 


Tajriba 1: LEDning yorqinligini nazorat qilish
Ushbu tajribada biz analog chiqish pinidagi PWM signali bilan LEDning yorqinligini nazorat qilamiz

Kerakli apparat
1 x LED
1 x rezistor
1 x Arduino UNO R3
1 x breadboard
2 x o'tkazgich simlari
Ulanish diagrammasi
Quyidagi diagrammada ko'rsatilganidek, LED Arduino-ning 2-piniga ulangan. LEDning yorqinligini o'zgartirish uchun dastur 2-pinning PWM signal chiqishining ish aylanishini o'zgartiradi.



Kod
const int pwm = 2 ; //initializing pin 2 as ‘pwm’ variable
void setup()
{
pinMode(pwm,OUTPUT) ; //Set pin 2 as output
}
void loop()
{
analogWrite(pwm,25) ; //setting pwm to 25
delay(50) ; //delay of 50 ms
analogWrite(pwm,50) ;
delay(50) ;
analogWrite(pwm,75) ;
delay(50) ;
analogWrite(pwm,100) ;
delay(50) ;
analogWrite(pwm,125) ;
delay(50) ;
analogWrite(pwm,150) ;
delay(50) ;
analogWrite(pwm,175) ;
delay(50) ;
analogWrite(pwm,200) ;
delay(50) ;
analogWrite(pwm,225) ;
delay(50) ;
analogWrite(pwm,250) ;
}


Tajriba 2: Potensiometr yordamida LED yorqinligini nazorat qilish
Ushbu tajribada biz potentsiometr yordamida LEDning yorqinligini nazorat qilamiz. Biz kuchlanishni o'qish uchun analogRead() funksiyasini va ish aylanishi analog kuchlanishga mutanosib bo'lgan PWM signalini chiqarish uchun analogWrite() funksiyasini ishlatamiz.

Kerakli apparat
1 x potansiyometr
1 x LED
1 x rezistor
1 x Arduino Uno R3
1 x non taxtasi
6 x o'tkazgich simlari

Ulanish diagrammasi
Quyida ko'rsatilgandek sxemani ulang. Potansiyometrni aylantirganda, A0 pinidagi kuchlanish o'zgaradi. Keyin dastur 2-pindagi PWM signalining ish aylanishini o'zgartirib, LEDning yorqinligini o'zgartiradi.




Kod
const int pwm = 2 ; //naming pin 2 as ‘pwm’ variable
const int adc = 0 ; //naming pin 0 of analog input side as ‘adc’
void setup()
{
pinMode(pwm,OUTPUT) ; //setting pin 2 as output
}
void loop()
{
int adc = analogRead(0) ; //reading analog voltage and storing it in an integer
adc = map(adc, 0, 1023, 0, 255);
/*
----------map funtion------------the above funtion scales the output of adc, which is 10 bit and gives values btw 0 to 1023, in values btw 0 to 255 form analogWrite funtion which only receives values btw this range
*/
analogWrite(pwm,adc) ;
}
Download 0.81 Mb.

Do'stlaringiz bilan baham:




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