Mundarija:

RaspberryPi: LEDni o'chirish va o'chirish: 4 qadam (rasmlar bilan)
RaspberryPi: LEDni o'chirish va o'chirish: 4 qadam (rasmlar bilan)

Video: RaspberryPi: LEDni o'chirish va o'chirish: 4 qadam (rasmlar bilan)

Video: RaspberryPi: LEDni o'chirish va o'chirish: 4 qadam (rasmlar bilan)
Video: Get Started → Learn English → Master ALL the ENGLISH BASICS you NEED to know! 2024, Noyabr
Anonim
RaspberryPi: LEDni o'chirish va o'chirish
RaspberryPi: LEDni o'chirish va o'chirish

Quyidagi qadamlar LEDlarning qanday ishlashini ko'rsatish uchun tajribalardir. Ular LEDni qanday tezlikda o'chirish va uni qanday o'chirish va o'chirishni ko'rsatadi.

Sizga kerak bo'ladi:

  • RaspberryPi (men eski Pi-dan foydalandim, mening Pi-3 ishlatilmoqda, lekin har qanday Pi ishlaydi.)
  • Non paneli
  • 5 mm qizil LED
  • 330 Ω qarshilik (muhim emas 220-560 Ω ishlaydi.)
  • O'rnatish simlari

Men Adafruit-dan foydalangan Pi-poshnachi kerak emas, lekin bu non taxtasini osonlashtiradi.

WiringPi - bu RaspberryPi -ni C dasturlash uchun kutubxonalar to'plami, yuklab olish, o'rnatish va ishlatish bo'yicha ko'rsatmalar https://www.wiringpi.com/ saytida joylashgan.

WiringPi-ni o'rnatish uchun ushbu sahifadagi ko'rsatmalarga amal qiling:

Simlar ro'yxatini olish uchun PIN kod raqamlari buyruq satriga gpio o'qishni kiriting.

Raspian wiringPi yangi versiyalarida sukut bo'yicha o'rnatiladi.

1 -qadam: Puls kengligi modulyatsiyasi

Puls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi
Puls kengligi modulyatsiyasi

LEDlar yorqinligidan qat'iy nazar har doim bir xil kuchlanishda ishlaydi. Yorqinligi kvadrat to'lqinli osilator bilan aniqlanadi va kuchlanish yuqori bo'lgan vaqt yorqinlikni aniqlaydi. Bunga puls kengligi modulyatsiyasi (PWM) deyiladi. Bu wiringPi pwmWrite (pin, n) funktsiyasi tomonidan boshqariladi, bu erda n qiymati 0 dan 255 gacha. Agar n = 2 bo'lsa, LED n = 1dan ikki barobar yorqinroq bo'ladi. Yorug'lik har doim ikki baravar ko'payadi. Shunday qilib, n = 255 n = 128dan ikki barobar yorqinroq bo'ladi.

N ning qiymati ko'pincha ish tsikli deb ataladigan foiz sifatida ifodalanadi. Rasmlarda 25, 50 va 75% ish tsikllari uchun osiloskop izlari ko'rsatilgan.

2 -qadam: LED va rezistor

LED va rezistor
LED va rezistor

Bu shart emas, lekin ulardan bir nechtasiga ega bo'lsang, non taxta yasashni ancha osonlashtirishi mumkin.

LEDni qisqa svetodiodiga rezistorni lehimlang. 220-560 Ohm qarshilikdan foydalaning.

3-qadam: teng bo'lmagan karartma

Teng bo'lmagan karartma
Teng bo'lmagan karartma

Diagrammadagi kabi sxemani yarating. Bu xuddi LEDni o'chirish sxemasiga o'xshaydi. U wiringPi pin 1 dan foydalanadi, chunki siz PWM yoqilgan pinni ishlatishingiz kerak. Dasturni tuzing va ishga tushiring. Ko'ryapsizmi, LED qanchalik yorug 'bo'lsa, shuncha sekin pasayadi. Eng xiralashgan joyga yaqinlashganda, u juda tez xiralashadi.

/******************************************************************

* Kompilyatsiya: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Ijro et: sudo./fade1 * * Boshqa pin raqamlari, agar boshqacha ko'rsatilmagan bo'lsa. ************************************************ ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) orqali sozlash zarur; // pwmSetMode (PWM_MODE_MS); // Mark/Space rejimi int i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); kechikish (10); } uchun (i = 0; i <256; i ++) {pwmWrite (1, i); kechikish (10); }}}

Keyingi qadam, LEDni doimiy tezlikda qanday o'chirishni ko'rsatib beradi.

4 -qadam: 4 -qadam: Yuqoriga va pastga (bitta) va teng darajada

LEDning doimiy tezlikda xiralashishi uchun kechikish () ekspansional tezlikda oshishi kerak, chunki ish tsiklining yarmi har doim yorqinlikning yarmini beradi.

Chiziq:

int d = (16-i/16)^2;

kechikish uzunligini aniqlash uchun yorqinlikning teskari kvadratini hisoblab chiqadi. Ushbu dasturni kompilyatsiya qiling va ishga tushiring, shunda siz LED doimiy tezlik bilan o'chadi va o'chadi.

/******************************************************************

* Kompilyatsiya: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Ijro et: sudo./fade2 * * Boshqa pin raqamlari, agar boshqacha ko'rsatilmagan bo'lsa. ************************************************ ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) talab qiladigan sozlash; // pwmSetMode (PWM_MODE_MS); // Belgilash/Bo'shliq rejimi (1) {int i; int x = 1; uchun (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // pwmWrite indeksining teskari kvadratini hisoblang (1, i); kechikish (d); agar (i == 255) x = -1; // tepalik yo'nalishini o'zgartirish}}}

Tavsiya: