Мазмұны:

RaspberryPi: жарықдиодты сөндіру және өшіру: 4 қадам (суреттермен)
RaspberryPi: жарықдиодты сөндіру және өшіру: 4 қадам (суреттермен)

Бейне: RaspberryPi: жарықдиодты сөндіру және өшіру: 4 қадам (суреттермен)

Бейне: RaspberryPi: жарықдиодты сөндіру және өшіру: 4 қадам (суреттермен)
Бейне: TERNCY SD01 - логикалық зигбиді азайту батырмасы, Home Assistant интеграциясы, практикалық қолдану 2024, Қараша
Anonim
RaspberryPi: жарықдиодты кіргізу және өшіру
RaspberryPi: жарықдиодты кіргізу және өшіру

Келесі қадамдар светодиодтардың қалай жұмыс істейтінін көрсету үшін эксперименттер болып табылады. Олар светодиодты біркелкі жылдамдықта қалай өшіру керектігін және оны қалай өшіруді және өшіруді көрсетеді.

Саған қажет болады:

  • RaspberryPi (мен ескі Pi қолдандым, менің Pi-3 қолданыста, бірақ кез келген Pi жұмыс істейді.)
  • Нан тақтасы
  • 5 мм қызыл жарық диоды
  • 330 Ω резистор (маңызды емес 220-560 work жұмыс істейді.)
  • Қосылу сымы

Мен Adafruit-тен қолданған Pi-cobbler қажет емес, бірақ ол нанға отыруды жеңілдетеді.

WiringPi - бұл RaspberryPi бағдарламалауға арналған кітапханалар жиынтығы, жүктеу, орнату және пайдалану нұсқаулары https://www.wiringpi.com/ мекен -жайында орналасқан.

WiringPi орнату үшін мына беттегі нұсқауларды орындаңыз:

Сымдардың тізімін алу үшін PIN нөмірлері пәрмен жолында gpio readall енгізіңіз.

Raspian wiringPi жаңа нұсқаларында әдепкі бойынша орнатылады.

1 -қадам: Импульстің ені модуляциясы

Импульстің ені модуляциясы
Импульстің ені модуляциясы
Импульстің ені модуляциясы
Импульстің ені модуляциясы
Импульстің ені модуляциясы
Импульстің ені модуляциясы

Жарық диодты жарықтылыққа қарамастан әрқашан бірдей кернеуде жұмыс істейді. Жарықтық квадрат толқынды осциллятормен анықталады және кернеудің жоғары болу уақыты жарықтылықты анықтайды. Бұл импульстік ен модуляциясы (PWM) деп аталады. Бұл wiringPi pwmWrite (pin, n) функциясымен басқарылады, мұнда n мәні 0 -ден 255 -ке дейін болады. N = 2 болса, жарық диоды n = 1 -ден екі есе жарқын болады. Жарықтылық n еселенгенде әрқашан екі есе артады. N = 255 n = 128 қарағанда екі есе жарқын болады.

N мәні көбінесе қызметтік цикл деп аталатын пайызбен өрнектеледі. Суреттер 25, 50 және 75% жұмыс циклдарына арналған осциллограф іздерін көрсетеді.

2 -қадам: жарықдиодты және резистор

Жарықдиодты және резистор
Жарықдиодты және резистор

Бұл қажет емес, бірақ олардың бірнешеуінің болуы нанға түсуді айтарлықтай жеңілдетеді.

Жарық диодының қысқа сымына резисторды дәнекерлеңіз. 220-560 Ом резисторды қолданыңыз.

3-қадам: біркелкі емес масштабтау

Біркелкі емес масштабтау
Біркелкі емес масштабтау

Схемада көрсетілгендей тізбекті құрыңыз. Бұл светодиоды жыпылықтайтын схемаға ұқсас. Ол wiringPi pin 1 пайдаланады, себебі сізге PWM қосылған түйреуішті пайдалану қажет. Бағдарламаны құрастырып, іске қосыңыз. Сіз жарық диоды неғұрлым жарқын болса, ол баяу түсетінін байқайсыз. Ең қараңғы жақындаған кезде ол өте тез күңгірт болады.

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

* Компиляция: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Орындалады: sudo./fade1 * * Егер басқаша көрсетілмесе, барлық түйреуіш нөмірлері wiPi сандары болып табылады.. ************************************************ ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) арқылы орнату қажет; // pwmSetMode (PWM_MODE_MS); // Белгілеу/Кеңістік режимі i i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); кешіктіру (10); } үшін (i = 0; i <256; i ++) {pwmWrite (1, i); кешіктіру (10); }}}

Келесі қадам жарықдиодты тұрақты жылдамдықта қалай өшіру керектігін көрсетеді.

4 -қадам: 4 -қадам: Бірге () үшін жоғары және төмен және тең дәрежеде

Жарық диоды тұрақты қарқынмен өшуі үшін кешіктіру () экспоненциалды жылдамдықпен артуы керек, себебі жұмыс циклінің жартысы әрқашан жарықтықтың жартысын береді.

Сызық:

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

кідірістің ұзақтығын анықтау үшін жарықтықтың кері квадратын есептейді. Бұл бағдарламаны құрастырыңыз және іске қосыңыз, сонда сіз жарық диоды тұрақты жылдамдықпен өшіп -өшетінін көресіз.

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

* Компиляция: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Орындалады: sudo./fade2 * * Барлық түйреуіш нөмірлері, егер басқаша көрсетілмесе. ************************************************ ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) арқылы орнату қажет; // pwmSetMode (PWM_MODE_MS); // Белгілеу/бос орын режимі кезінде (1) {int i; int x = 1; for (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // pwmWrite (1, i) индексінің кері квадратын есептеңіз; кідіріс (d); егер (i == 255) x = -1; // бағытты шыңында ауыстыру}}}

Ұсынылған: