Laboratoriya ishi №11 Laboratoriya ishi №12 Xulosa


Laboratoriyaning amaliy qismi



Download 1,03 Mb.
Pdf ko'rish
bet5/6
Sana03.06.2022
Hajmi1,03 Mb.
#632240
1   2   3   4   5   6
Bog'liq
11-12

Laboratoriyaning amaliy qismi. 
Modelni yi
g‘
ish uchun bizga quyidagilar kerak: 




Arduino platasi 

uch rangli LED 

Arduino IDE dasturi, uni Arduino veb -saytidan yuklab olish mumkin. 
Modelning Arduinoga ulanish sxemasi: 
Biz RGB LED anodlarini ulaymiz & nbsp; B portining 1,2,3 satrlariga biz katodlarni minus 
bilan bog‘laymiz. Turli xil rang palitralarini olish uchun biz anodlarga ma'lum ketma -ketlikda PWM 
signalini qo‘llaymiz. Bu misolda biz maxsus PWM dasturidan foydalanamiz, garchi Atmega8 -da siz 
3 ta kanal uchun PWM apparatini osongina olishingiz mumkin. PWM dasturiy ta'minoti taymerlar / 
hisoblagichlar etishmasligi va boshqa sabablarga ko‘ra ishlatilishi mumkin. Muayyan chastotali 
PWMni yaratish uchun biz 8 bitli taymer T0 to‘lg‘azish uzilishidan foydalanamiz 
(TIMER0_OVF_vect). Prescaler ishlatilmagani uchun taymerning to‘lib ketish chastotasi 31250Hz 
ga teng bo‘ladi. Va agar "pwm_counter" o‘zgaruvchisi 163 gacha bo‘lsa, PWM chastotasi 190 Gts 
bo‘ladi. Pwm_r, pwm_g, pwm_b o‘zgaruvchilaridagi qiymatlarga asoslanib, uzilishlar ishlovchisida 
B portining pinlari almashtiriladi. Rang effektlari LED yorug‘lik vaqti o‘rnatilgan funktsiyalar 
yordamida konfiguratsiya qilinadi. Sinov dasturida birinchi navbatda qizil, yashil, ko‘k, oq ranglar 
yonadi, so‘ngra rang o‘tishlari bilan tsikl boshlanadi. 
Ushbu model uchun quyidagi dastur mos keladi: 
// RGB LEDni boshqarish. PWM uchun 
dasturiy ta'minot 
#include  
#include  
volatile char 
pwm_counter,pwm_r,pwm_g,pwm_b; 
// T0 to‘lib ketganda uzilish 
ISR (TIMER0_OVF_vect) 

if (pwm_counter++ > 163) 

PORTB = 0x00; 
pwm_counter = 0; 

if (pwm_counter > pwm_r) PORTB |= (1 << 
PB1); 
if (pwm_counter > pwm_g) PORTB |= (1 << 
PB2); 
if (pwm_counter > pwm_b) PORTB |= (1 << 
PB3); 

// Protsedurani mikrosaniyalarda kechiktirish 
void delay_us(unsigned char time_us) 
{ register unsigned char i; 
for(i = 0; i < time_us; i++) // 4 tsikl 
{ asm (" PUSH R0 "); // 2 tsikl 
asm (" POP R0 "); // 2 tsikl 


// Millisekundlarda protsedura kechikishi 
void delay_ms(unsigned int time_ms) 
{ register unsigned int i; 
for(i = 0; i < time_ms; i++) 
{ delay_us(250); 
delay_us(250); 
delay_us(250); 
delay_us(250); 


// qizil rang 
void red (unsigned int time) 

for (char a = 0; a < 165; a++) 

pwm_r = 164 - a; //oshirish 
pwm_g = 164; 
pwm_b = 164; 
delay_ms(time); 
}
for (char a = 0; a < 165; a++) 

pwm_r = a; //kamayish 
pwm_g = 164; 
pwm_b = 164; 
delay_ms(time); 


// Yashil rang 
void green (unsigned int time) 



10 
for (char a = 0; a < 165; a++) 

pwm_r = 164; 
pwm_g = 164 - a; 
pwm_b = 164; 
delay_ms(time); 
}
for (char a = 0; a < 165; a++) 

pwm_r = 164; 
pwm_g = a; 
pwm_b = 164; 
delay_ms(time); 


// Ko‘k rang 
void blue (unsigned int time) 

for (char a = 0; a < 165; a++) 

pwm_r = 164; 
pwm_g = 164; 
pwm_b = 164 - a; 
delay_ms(time); 
}
for (char a = 0; a < 165; a++) 

pwm_r = 164; 
pwm_g = 164; 
pwm_b = a; 
delay_ms(time); 


// Oq rang 
void white (unsigned int time) 

for (char a = 0; a < 165; a++) 

pwm_r = 164 - a; 
pwm_g = 164 - a; 
pwm_b = 164 - a; 
delay_ms(time); 
}
for (char a = 0; a < 165; a++) 

pwm_r = a; 
pwm_g = a; 
pwm_b = a; 
delay_ms(time); 


// Ranglar almashinuvi 
void rgb (unsigned int time) 

for (char a = 0; a < 165; a++) 

pwm_r = a; 
pwm_b = 164 - a; 
delay_ms(time); 

for (char a = 0; a < 165; a++) 

pwm_b = a; 
pwm_g = 164 - a; 
delay_ms(time); 

for (char a = 0; a < 165; a++) 

pwm_g = a; 
pwm_r = 164 - a; 
delay_ms(time); 


int main (void) 

DDRB |= (1 << PB3)|(1 << PB2)|(1 << PB1); 
// PB3,2,1 - chiqishlar 
TCCR0 |= (1 << CS00); // Oldindan 
hisoblagichsiz 
TIMSK |= (1 << TOIE0); // Haddan tashqari 
uzilish T0 ni yoqadi 
sei();// Global uzilishlarni hal qilish 
while(1) 
{
red(5); 
green(5);
blue(5); 
white(10); 
for(;;) 
{rgb(100);} 



Download 1,03 Mb.

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




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish