Skip to content
2-hafta · 6-dars

6-dars: Elektron sxema asosida bitta LED lampaning ishlash prinsipi va ulanishi

Elektron sxema asosida bitta LED lampaning ishlash prinsipi va ulanishi

Fan: Internet of Things (IoT — Buyumlar Interneti)
Sinf: 9-sinf
Mavzu: Arduino Uno platasi, raqamli GPIO pinlar, Om qonuni, bitta LED sxemasi va C++ dasturi (Blink)


Darsning qisqacha mazmuni ​

Ushbu darsda biz ilk bor haqiqiy dasturlanadigan mikrokontroller — Arduino Uno bilan amaliyotni boshlaymiz. Oddiy batareyadan farqli o'laroq, mikrokontroller o'z pinlaridan chiquvchi tokni dastur orqali mikrosoniyagacha aniqlikda boshqarish imkonini beradi. Dars davomida bitta LED lampani Arduino ning 9-raqamli piniga ulab, C++ tilida uni yoqib-o'chirishni (Blink) o'rganamiz.

Asosiy tushunchalar: ​

  • Arduino Uno: ATmega328P mikrokontrolleri asosidagi 16 MGts chastotali boshqaruv platasi. 14 ta raqamli kirish/chiqish pinlariga ega;
  • GPIO (General Purpose Input/Output): Umumiy maqsadli raqamli pinlar. Ular kirish (datchikdan signal olish) yoki chiqish (LED, motorga tok berish) rejimida ishlaydi;
  • LED fizikasi: Yarimo'tkazgich kristalidagi p-n o'tish orqali elektronlar va kovaklar rekombinatsiyasi paytida fotonlar (yorug'lik) nurlanishi;
  • Om qonuni hisobi: $R = (U_{manba} - U_{led}) / I_{led} = (5\text{V} - 2\text{V}) / 0.015\text{A} = 200\ \Omega \approx 220\ \Omega$;
  • void setup(): Dastur boshida faqat 1 marta bajariladigan dastlabki sozlashlar bo'limi;
  • void loop(): Dastur to'xtovsiz, cheksiz aylanadigan asosiy ishchi tsikli;
  • Asosiy buyruqlar: pinMode(pin, OUTPUT), digitalWrite(pin, HIGH/LOW), delay(millisekund).

Mustaqil bajarish uchun topshiriqlar ​

1-topshiriq oson ​

Tinkercad Circuits muhitida yangi loyiha oching va unga 9-sinf_Familiya_Dars6 deb nom bering. Ish maydoniga Arduino Uno R3 platasi, kichik Breadboard, 220 Om rezistor va qizil LED joylashtiring.

2-topshiriq oson ​

Arduino platasining korpusini ko'zdan kechiring. Undagi raqamli pinlar soni nechta ekanini (0 dan 13 gacha) va ulardan qaysilarining yonida ~ (tilda / PWM) belgisi borligini daftaringizga yozing.

3-topshiriq oson ​

Breadboard ustiga bitta LED va 220 Om rezistorni o'rnating. Rezistor rangli chiziqlari ketma-ketligi (Qizil - Qizil - Jigarrang - Oltin) to'g'ri ekanini tekshiring.

4-topshiriq oson ​

Elektron sxemani simlar orqali quyidagicha ulang:

  • Arduino ning D9 raqamli pinidan sim chiqarib, rezistorga ulang;
  • Rezistorning ikkinchi oyog'idan LED ning Anodiga (uzun oyog'iga) ulang;
  • LED ning Katodidan (qisqa oyog'idan) qora sim chiqarib, Arduino ning GND piniga ulang.

5-topshiriq o'rta ​

Yuqori paneldagi "Code" bo'limini oching va rejimni "Text" ga o'tkazing. Rasmiy darslikdagi quyidagi C++ kodini muharrirga kiriting:

cpp
int LED = 9;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, 1);
  delay(2000);
  digitalWrite(LED, 0);
  delay(1000);
}

"Start Simulation" tugmasini bosing va LED 2 soniya yonib, 1 soniya o'chayotganini kuzating.

6-topshiriq o'rta ​

delay() parametrlarini o'zgartiring: LED 500 ms (yarim soniya) yonsin va 500 ms o'chsin. Simulyatsiyani qayta ishga tushirib, miltillash tezligi qanday o'zgarganini solishtiring.

7-topshiriq o'rta ​

setup() funksiyasi ichidagi pinMode(LED, OUTPUT); qatorini izohga olib qo'ying (oldiga // qo'ying) va "Start Simulation" tugmasini bosing. Nima yuz berdi? Nega LED juda xira yonib qolganini tushuntirib bering. So'ngra kodni yana asl holiga qaytaring.

8-topshiriq o'rta ​

LED rangini qizildan Moviy (Blue) rangga o'zgartiring. Moviy LED ning ochilish kuchlanishi ~3.2V ekanini hisobga olib, Om qonuni bo'yicha unga qanday qarshilikdagi rezistor kerakligini hisoblang ($R = (5 - 3.2) / 0.015$).

9-topshiriq qiyin ​

Arduino 9-piniga ulangan LED yordamida "Yurak urishi" (Heartbeat) effektini dasturlang:

  • 1-zarba: 100 ms yoniq, 100 ms o'chiq;
  • 2-zarba: 100 ms yoniq, 700 ms o'chiq;
  • Tsikl cheksiz takrorlansin.

10-topshiriq qiyin ​

Morze alifbosi asosida xalqaro favqulodda xabar — SOS signali (... --- ...) miltillash dasturini tuzing:

  • 3 ta qisqa miltillash (har biri 200 ms yoniq, 200 ms o'chiq);
  • 3 ta uzun miltillash (har biri 800 ms yoniq, 200 ms o'chiq);
  • 3 ta qisqa miltillash (har biri 200 ms yoniq, 200 ms o'chiq);
  • To'liq signallar oralig'ida 3 soniya tanaffus.

11-topshiriq bonus ​

Sxemaga ikkinchi yashil rangli LED qo'shing va uni Arduino ning D11 piniga 220 Om rezistor orqali ulang. C++ kodida setup() va loop() funksiyalarini shunday to'ldiringki, qizil va yashil chiroqlar navbatma-navbat (biri yonganda ikkinchisi o'chib) miltillaydigan politsiya mayoqchasi (Strobe light) effekti hosil bo'lsin.