2. LABORATORIYA
Diоdli lampani o`chirib-yoqish dasturlarini tuzish va sоzlash.
Ishdan maqsad: Laboratoriya mashg’ulotda axborot texnologiyalari bilan
jihozlangan auditoriyada har bir akademik guruhda alohida o’tiladi. Mashg’ulotlar
faol va interfaol usullar dialogik yondashuv, muammoli ta’lim, aqliy xujum, yangi
zamonaviy pedagogik texnologiyalar qo’llaniladi.
Talabalarga Diodli lampani
boshqarish dasturlarini tuzish va sozlash xaqida umumiy tushuncha beriladi va bilim
ko’nikma hosil qilish.
1-keys.
Mayoqni bir maromda yoqib-o‘chiradigan mikrokontrollerni dasturlash
muammosini hal qiling.
Ushbu masalani hal qilishni uni tahlil qilishdan boshlaymiz.
Mikrokontroller nuqtai-nazaridan mayoqni bir maromda yoqib-o‘chirish
degani – bu lampaga elektr energiyasini berish, bir oz vaqt yoniq holatda ushlab
turish, keyin energiyani o‘chirish, bir oz vaqt o‘chiq
holatda ushlab turish va bu
siklni doimiy ravishda takrorlash degani. Demak ushbu jarayonni biz quyidagi
algoritm ko‘rinishda tasvirlashimiz mumkin:
1. Kerakli ma’lumotlarni olish.
2. Elektr toki yuboriladigan kanalni tanlash.
3. Tanlangan kanal orqali lampaga tok (signal) yuborish. Bunda mayoq lampasi
yonadi.
4. Ma’lum vaqt kutib turish.
5. Tanlangan kanal orqali lampaga ketayotgan tokni uzish.
Bunda mayoq
lampasi o‘chadi.
6. YAna ma’lum vaqt kutib turish.
7. 3-vazifaga qaytish.
Ushbu algoritmdan anglash mumkinki, 3 dan 7 gacha bo‘lgan vazifalar hech
qanday shartlarsiz doimiy ravishda takrorlanib turaveradi. Bu jarayon faqat
mikrokontroller energiya manbaidan uzilgan taqdirdagina to‘xtaydi.
YUqoridagi algoritmning dastur kodini yozishdan
avval Arduino tipidagi
mikrokontrollerning C++ tilidagi boshqaruv dasturining strukturasini o‘rganib
olamiz. U quyidagi strukturaga ega bo‘lishi kerak.
#include
Global o‘zgaruvchilar tavsifi.
void setup()
{
Funksiya tanasi.
}
void loop()
{
Funksiya tanasi.
}
Struktura bo‘limlari vazifalari bilan batafsil tanishamiz.
#include
Bu erda boshqaruv jarayonida foydalaniladigan qurilmalar (sensorlar,
dvigatellar va xokozo) uchun yaratilgan funksiyalar kutubxonalari dasturga ulab
olinadi.
Bizning joriy masalamizda faqat lampadan foydalanilayotganligi
sababli
dasturda ushbu bo‘limning qatnashishi shart emas. CHunki, lampaga elektr toki
yuborilsa bas, u maxsus topshiriqsiz yonaveradi.
Global o‘zgaruvchilar tavsifi.
Bu erda dastur tanasida foydalanilishi mumkin bo‘lgan
farcha bir funksiya
ichida qayta tavsiflash kerak emas.
void setup()
{
Funksiya tanasi.
}
Bu mikrokontrollerning bir ish seansi (u energiya manbaiga ulangandan
boshlab, toki o‘chirilmagunga qadar) davomida faqat
bir marta bajariladigan
funksiya bo‘lib, u asosan mikrokontrollerni ishga tayyorlash uchun xizmat qiladi.
Masalan, bizning joriy masalamizda mikrokontrollerning birorta kanalini (kelgusida
uni “pin” deb ataymiz) signal chiqish kanali deb belgilab olamiz.
void loop()
{
Funksiya tanasi.
}
Bu funksiya asosiy boshqaruv funksiyasi bo‘lib, uning tanasi doimiy ravishda
takror va takror bajarilib turadi. Ushbu funksiya ichidan tashqariga chiqib,
ortga
qaytish mumkin emas. Uning ishlash jarayonini vaqtincha tuxtatib turish (pauza)
yoki batamom to‘xtatish mumkin. Oxirgi holatda mikrokontroller hech kanday
vazifa bajarmay qo‘yadi va befoyda yonib turadi xolos.
Endi
ushbu strukturadan foydalanib, yuqorida keltirilgan algoritm dasturi
kodini yozamiz.
// Global o‘zgaruvchilarni tavsiflaymiz
// Lampaga “led” o‘zgaruvchi nomini beramiz va
// uni mikrokontrollerning 2-piniga ulaymiz.