9785006401464
ISBN :Возрастное ограничение : 12
Дата обновления : 06.06.2024
}
void loop () {
//2 ta o`zgaruvchidan foydalanishimizni e`lon qilamiz – aylanish va yorqinlik
//o`zgaruvchilarda faqat butun sonlarni saqlaymiz (ing. «integer»)
int aylanish, yorqinlik;
//aylanish 0 dan 1023 gacha bo`lgan potentsiometr qiymatlariga teng
aylanish = analogRead (POT_PIN);
// o`zgaruvchan brightness 4 ga bo`lingan aylanishga teng bo`ladi
//yorqinlik faqat butun son bo`lishi mumkin, kasr qismi o`chiriladi
//natijada yorqinlik o`zgaruvchisi 0 dan 255 gacha bo`lgan oraliqda bo`ladi
yorqinlik = aylanish / 4;
//yorqinlik=aylanish/4 formulasi bo`yicha hisoblangan kuchlanish
analogWrite (LED_PIN, yorqinlik);
//aylanish qiymatini ketma-ket monitor portga yuboring
Serial.println (yorqinlik);
delay (500);
}
Tushuntirish: #define direktivasidan foydalanib, 9-pin raqamini LED_PIN nomi bilan almashtirdik, A0 analog kirishiga POT_PIN nomini berdik. Mahalliy o`zgaruvchi“aylanish“ kuchlanishga mutanosib va 0 dan 1023 gacha (ADC ning minimal va maksimal qiymatlari) oralig`ida bo`ladi. „yorqinlik“ o`zgaruvchisi esa 4 ga bo`lingan „aylanish”ga teng ya`ni 0 dan 255 gacha (analog kirishning minimal va maksimal qiymati).
4-bob. DASTURLASHNING TARKIBI
Arduinoda AVR mikrokontrollerlar uchun maxsus C/C++ dasturidan foydalaniladi.
4.1. setup () va loop () funksiyasi
Arduino dasturining bazaviy tarkibi ikkita majburiy qism setup () va loop () funksiyasidan iborat. setup () funksiyasidan o’zgaruvchi va kutubhonani ulash e`lon qilinadi. setup () funksiyasi bir marta ishga tushiriladi. U o’zgaruvchilarni inisializasiya qilishda, portlarni ishlash rejimini o`rnatishda va dasturning asosiy siklini tayyorlashda qo’llaniladi. U biror amalni bajarmasa ham dasturga bo`lishi kerak. loop () funksiyasi Arduinoda yozilgan buyruqni cheksiz ketma ketlikda bajaradi. Bu funksiya asosiy ishni siklik ravishda bajaradi.
Quyida sodda yozilgan dastur keltirilgan.
void setup ()
{
Serial.begin (9600);
}
void loop ()
{
Serial.println (millis ());
delay (1000);
}
4.2. Boshqaruvchi operatorlar
4.2.1. If shart operatori
Bugungi darsda If shart operatori bilan tanishamiz. Arduinoda har bir dasturlash tilida muntazam ishlatiladigan operatorlardan biri – if hisoblanadi. Aynan bu operatorsiz, biror bir mukammal dastur tuzishning umuman iloji yo`q. Shart operatori biror bir qo`yilgan shartni tekshirib, uning rost yoki yolg`onligidan kelib chiqqan holda biror bir amal yoki funksiyani bajarishiga yordam beruvchi vosita hisoblanadi.
Shart operatorining ikki xil ko`rinishi ya`ni, umumiy ko`rinishi va qisqa ko`rinishi mavjud.
Shart operatorining qisqa ko`rinishi:
if (shart) {bajariladigan operatsiya;}
Bu yerda if – agar, (shart) – tekshirilishi kerak bo`lgan yoki jarayon ishga tushishi uchun bajarilishi shart bo`lgan jarayon, {bajariladigan operatsiya;} – (shart) bajarilganda ishlashi kerak bo`lgan operatsiya.
Dastur yozayotganda shartdan so`ng; qo`yish mumkin emas. Agar shartdan so`ng qo`ysak jarayon shu yerning o`zida to`xtaydi va shartdan keyingi operatorga murojaat qilmaydi.
Operator-o`ziga yuklangan ma`lum bir shart asosida vazifani bajaruvchi vosita hisoblanadi va u dastur tuzishimizda bir qator qulayliklarga ega hisoblanadi.
Misol uchun jamiyatimizdagi insonlarni olsak, har bir insonni o`zi bajaradigan vazifasi bo`ladi. O`quvchining vazifasi o`qish bo`lsa, o`qituvchining vazifasi anashu o`quvchilarga bilim berishdan iborat.
Elektronika sohasida lampochka yoritish vazifasini bajarsa, sim ana shu lampochkani elektr ta`minotiga ulash vazifasini bajaradi.
4.2.2.O‘zlashtirish operatori – =.
O«zlashtirish operatori: = belgisidan chap tomonda turgan qiymatni = belgisidan o‘ng tomondagilarni hisoblangan qiymatiga almashtiradi. Masalan, x = a+b; ifodasi. Bu yerda“x»: a va b o‘zgaruvchining qiymatlarini qo‘shishdan hosil bo‘lgan natijani o‘zlashtiradi.
4.2.3.Tenglashtirish operatori. = =.
Tenglashtirish operatori== belgisidan o`ng tomonda turgan qiymat bilan chap tomonda turgan son qiymatini solishtirib, tenglashtirib ko`radi. Masalan, y==a+b; ifoda. Bu yerda «y»: a va b o‘zgaruvchilarnngi qiymatlarini qo‘shishdan hosil bo‘lgan natija bilan o`zining qiymatini tekshiradi. Agar tenglashtirilgan qiymat shartni qanoatlantirsa u holda operatsiyani bajaradi, agar tenglashtirilgan qiymat shartni qanoatlantirmasa shartning ichidan chiqib ketadi.
Bularga qo`shimcha tarzda <,> katta va kichik belgilaridan foydalanamiz.
Shart operatorining umumiy ko`rinishi:
if (shart) {bajariladigan operatsiya 1;}
else {bajariladigan operatsiya 2;}
bu yerda else-aks holda.
Shart 2 hil ko`rinishda boladi: rost (1) va yolg`on (0)
{bajariladigan operatsiya 1;} – Agar (shart) bajarilsa ya`ni rost (1) qiymatga ega bo`lsa bajarilishi kerak bo`lgan jarayon.
{bajariladigan operatsiya 2;} – bu jarayon else ya`ni shart bajarilmaganda yoki yolg`on (0) qiymatga ega bo`lganda bajarilishi kerak bo`lgan jarayon.
Misol: quyidagi keltirgan misolimizga qarang! U yerda aks holda to`p darvozaning yonidan o`tib ketadi deyilgan. Ana shu operatsiya shart operatorining umumiy ko`rinishiga misol bo`lishi mumkin.
if (to`pni to`g`ri tepsak) {to`p darvozaga borib tushadi;}
else {to`p darvoza yonidan o`tib ketadi;}
4.2.4.Arduinoda mantiqiy operatorlar- if va else
Arduinodagi if operatori shartni tekshiradi, agar u rost bo`lsa, jingalak qavslardagi kod bloki bajariladi. Jingalak qavslar shartli operatordan keyingi kodning faqat bitta qatori bajariladi. Har doim jingalak qavslardan foydalanishni tavsiya qilamiz. Shartlar, shartlar tartibi va Arduino taqqoslash operatorlarini quyidagi misollar bilan ko`rib chiqamiz.
Arduinoda if shartlari to`g`ri yoki noto`g`riligini tekshirish uchun taqqoslash operatorlari ishlatiladi. Jingalak qavslar mantiqiy ravishda bir nechta qatorlarni bitta blokda guruhlaydi. O`zgaruvchining qiymati berilgan raqamdan katta yoki kichikligini tekshiradigan dastur:
if (qiymat> 500) {digitalWrite (8, HIGH); digitalWrite (7, LOW);}
if (qiymat <500) {digitalWrite (8, LOW); digitalWrite (7, HIGH);}
If va else konstruksiyasi bitta if operatoridan ko`ra dasturni yaxshiroq boshqarish imkonini beradi. Bu ifoda to`g`ri bo`lgan holat uchun emas, balki qarama-qarshi holat uchun ham harakatlarni aniqlashga imkon beradi (ifoda qiymati noto`g`ri bo`lsa ham).
Arduinoga fotorezistorni ulashda if else operatoriga misol:
#define SENSOR A0
unsigned int qiymat = 0;
void setup () {
pinMode (LED, OUTPUT);
pinMode (SENSOR, INPUT);
}
void loop () {
//A0 analog kirishidagi fotorezistordan qiymatni o`qing
qiymat = analogRead (SENSOR);
//Agar A0 kirishidagi qiymat 500 dan kam bo`lsa, svetodiodni yoqing
if (qiymat <500) {digitalWrite (LED, HIGH);}
//Aks holda (agar qiymat> 500), svetodiodni o`chiring
if (qiymat> 500) {digitalWrite (LED, LOW);}
}
Arduinoda taqqoslash operatorlari:
x == y (x y ga teng)
x!= y (x y ga teng emas)
x x> y (x y dan katta) x <= y (x y dan kichik yoki teng)
Все книги на сайте предоставены для ознакомления и защищены авторским правом