Mikrokontroller asosiy funktsiyalari haqida umumiy tushunchalar
Arduino MKning asosiy funksiyalari deganda qaysi funksiyalar bo’lishi kerakligini, ularsiz yozgan dasturimiz ishga tushmaydi. Bu funksiyalarga void setup(); va void loop(); funksiyalari kiradi. Bu funksiyalar orqali MKning qaysi portlarini ishga tushirishimiz haqida e’lonlarni kiritamiz. Asosiy kiritiladigan elonlar (ya’ni ko’p hollarda qo’llaniladigan e’lon funksiyalari) tarkibiga quyidagilari funksiyalar kiradi.
pinMode();
digitalWrite();
analogWrite();
delay();
Funksiyalarga tariflash mumkin.
pinMode(); funksiyasi void setup(); tanasidagi e’lon qilinadigan bo’lib, MKning ishlash portlarini keltrib o’tadi. Portlarni signallarni(ma’lumot) kiruvchi yoki chiquvchi ekanligini ham void setup(); tanasida pinMode() orqlielon qilinadi. Signalni chiqarish uchun pinMode(); funksiyada MKning ma’lumbir porti OUTPUT yoki INPUT shartlari orqali e’lon qilinadi. Buni quydagicha ifodalashimiz mumkin:
void setup() {
pinMode( 7,OUTPUT);
}
Bu bo’limda 7 MKning 7portidan signal chiqarishimiz haqidagi e’lonni kritdik. Signalni kritish uchun esa void setup(); tanasida quydagicha e’lon kritiladi:
void setup(){
pinMode(A0,INPUT) // A0 analog ssignallarni kiritishporti bo’lib hisoblanadi
}
digitalWrite(); funksiyasi void loop(); tanasida e’lon qilinadigan bo’lib, void setup(); tanasida e’lon qilingan portlarni ishga tushirish haqidagi elonlarni kritadi. digitalWrite(); funksiyasi bu e’lonlarni HIGH (ishga tushirish) va LOW(to’xtatish) e’lonlari orqali amalga oshiriladi. Buni quydagicha ifodalashimiz mumkin:
void loop(){
digitalWrite(7,HIGH);
}
MKning 7 raqamli portidan signal chqarishni boshlasin, sodda qilib aytadigan bo’lsak ishga tushsin buyrug’idir. Ma’lum vaqtdan so’ng MKning 7 portini ishlashini to’xtatish uchun esa quydagicha ifodalash mumkin:
void loop(){
digitalWrite(7,HIGH);
delay(2000);
digitalWrite(7,LOW);
delay(2000);
}
Bu yerdagi delay(); funksiyasi vaqtni ifodalash uchun ishlatiladigan funksiya hisoblanadi. Keltrilgan kamandada vaqtlar millisekundlarda ifodalangan, ya’ni 2000 millisekund 2 sekundga teng hisoblanadi.
analogWrite(); funksiyasi hamxuddi digitalWrite(); kabi ish tartibini belgilaydi. analogWrite()ni digitalWrite()dan farqi, HIGH va LOW ni o’rniga raqamlardan foydalaniladi. 0 dan 255gacha bo’lgan raqamlardan. 0 dan 255 gachabo’lgan raqamlarning qo’llanilishining asosiy sabablaridan biri bu keraklicha elektr signalini MKning potidan chiqarish hisoblanadi. 255 raqami MK porti orqali 5 V elektr signali oqimini taminlaydi. 0 V elektr signal oqimini to’xtatishni ifodalaydi. Shu tariqa 0 va 255 raqmlari o’rtaligida 5V bo’lgan elektr signalini oshirish va kamayish tartida yozishimiz mumkin.
analogWrite() funksiyasining qo’llanilishi quydagicha ifodalash mumkin:
void loop(){
analogWrite(6, 255);
BOB. AMALIY QISM
Do'stlaringiz bilan baham: |