Miltillovchi LED


ULASHISH

Chiqish uchun GPIO dan foydalanish

Ushbu bobda biz Raspberry Pi va uning GPIO-dan foydalanamiz LED miltillashini hosil qiling.

GPIO-ni boshqarish uchun biz Node.js-dan o‘chirish moduli bilan foydalanamiz.

LED chiroqni yoqish uchun biz GPIO pinini "Chiqish" sifatida ishlatamiz va a yaratamiz uni yoqish va o‘chirish uchun skript (miltillovchi).


Bizga nima kerak?

Ushbu bobda biz qaerda oddiy misol yaratamiz biz LED chiroqni boshqaramiz.

Buning uchun sizga kerak:

Turli xil tavsiflar uchun yuqoridagi ro‘yxatdagi havolalarni bosing komponentlar.

Eslatma: Sizga kerak bo‘lgan rezistor siz foydalanadigan LED turiga qarab biz foydalanadigandan farq qilishi mumkin. Ko‘pgina kichik LEDlar faqat 200-500 ohm atrofida kichik qarshilikka muhtoj. Qaysi qiymatdan foydalanayotganingiz umuman muhim emas, lekin rezistorning qiymati qanchalik kichik bo‘lsa, LED shunchalik yorqinroq bo‘ladi. porlash.


Sxemani qurish

Endi bizning Breadboardimizda sxemani qurish vaqti keldi.

Agar siz elektronika uchun yangi bo‘lsangiz, quvvatni o‘chirishni tavsiya qilamiz Raspberry Pi. Bunga yo‘l qo‘ymaslik uchun antistatik mat yoki topraklama tasmasini ishlating unga zarar yetkazish.

Raspberry Pi-ni buyruq bilan to‘g‘ri o‘chiring:

pi@w3demopi:~ $ sudo shutdown -h now

Raspberry Pi’dagi LED’lar miltillashdan to‘xtagach, Raspberry Pi’dan quvvat vilkasini sug‘urib oling (yoki u ulangan uzatkichni o‘chiring).

To‘g‘ri o‘chirmasdan vilkadan tortib olish xotira kartasining buzilishiga olib kelishi mumkin.

Raspberry Pi 3 with Breadboard. Simple LED circuit

Yuqoridagi sxema rasmiga qarang.

  1. Raspberry Pi’da birinchi jumper simining ona (female) uchini Ground (yer) piniga ulang. Istalgan GND pinidan foydalanishingiz mumkin. Bu misolda biz 9-fizik pindan foydalandik (GND, 5-qator, chap ustun)
  2. Breadboardda birinchi o‘tish simining erkak oyog‘ini ulang o‘ngdagi Yer avtobusi ustuni. Bu butun non panelining ustuni ulangan, shuning uchun qaysi qator muhim emas. In bu misolni biz 1-qatorga biriktirdik
  3. Raspberry Pi’da ikkinchi jumper kabelining ona (female) uchini GPIO piniga ulang. Bu misolda biz 7-fizik pindan foydalandik (GPIO 4, 4-qator, chap ustun)
  4. Breadboardda ikkinchi o‘tish simining erkak oyog‘ini ulang Siz tanlagan bog‘lanish nuqtasi qatori. Ushbu misolda biz uni 5-qatorga bog‘ladik, ustun A
  5. Breadboardda rezistorning bir oyog‘ini Ground Busga ulang. o‘ng tomonda ustun. Non taxtangizning butun ustuni ulangan, shuning uchun qaysi qator muhim emas. Ushbu misolda biz biriktirdik 5-qatorga
  6. Breadboardda rezistorning boshqa oyog‘ini o‘ngga ulang yon Tie-Point qator siz tanlagan. Ushbu misolda biz 5-qatordan foydalandik, ustun J
  7. Breadboard’da LED’ning katod oyog‘ini (qisqaroq oyog‘ini) GND’dan kelgan rezistor ulangan Tie-Point qatoriga ulang. Bu misolda biz 5-qator, F ustundan foydalandik
  8. Breadboard’da LED’ning anod oyog‘ini (uzunroq oyog‘ini) GPIO pinidan kelgan jumper ulangan Tie-Point qatoriga ulang. Bu misolda biz 5-qator, E ustundan foydalandik

Sizning sxemangiz endi tugallangan bo‘lishi kerak va ulanishlaringiz ko‘rinishi kerak yuqoridagi rasmga juda o‘xshash.

Endi Raspberry Pi-ni ishga tushirish va Node.js skriptini yozish vaqti keldi u bilan o‘zaro aloqada bo‘ling.



Raspberry Pi va Node.js miltillovchi LED skripti

Endi biz hamma narsani o‘rnatdik, biz LEDni yoqish va o‘chirish uchun skript yozishimiz mumkin.

Node.js skriptlarimizni saqlashimiz mumkin bo‘lgan katalog yaratishdan boshlang:

pi@w3demopi:~ $ mkdir nodetest

Yangi katalogimizga o‘ting:

pi@w3demopi:~ $ cd nodetest

Endi biz Nano Editor yordamida "blink.js" nomli yangi fayl yaratamiz:

pi@w3demopi:~ $ nano blink.js

Fayl endi ochiq va uni o‘rnatilgan Nano muharriri bilan tahrirlash mumkin.

Quyidagi kodni yozing yoki joylashtiring:

blink.js

let Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4, and specify that it is output
let blinkInterval = setInterval(blinkLED, 250); //run the blinkLED function every 250ms

function blinkLED() { //function to start blinking
  if (LED.readSync() === 0) { //check the pin state, if the state is 0 (or off)
    LED.writeSync(1); //set pin state to 1 (turn LED on)
  } else {
    LED.writeSync(0); //set pin state to 0 (turn LED off)
  }
}

function endBlink() { //function to stop blinking
  clearInterval(blinkInterval); // Stop blink intervals
  LED.writeSync(0); // Turn LED off
  LED.unexport(); // Unexport GPIO to free resources
}

setTimeout(endBlink, 5000); //stop blinking after 5 seconds

Kodni saqlash uchun "Ctrl+x" tugmasini bosing. "y" bilan tasdiqlang va ismni "Enter" bilan tasdiqlang.

Kodni ishga tushiring:

pi@w3demopi:~ $ node blink.js

Endi LED yana o‘chishdan oldin 5 soniya davomida (10 marta) miltillashi kerak!


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!