Съдържание:

RaspberryPi: Избледняване на LED вход и изход: 4 стъпки (със снимки)
RaspberryPi: Избледняване на LED вход и изход: 4 стъпки (със снимки)

Видео: RaspberryPi: Избледняване на LED вход и изход: 4 стъпки (със снимки)

Видео: RaspberryPi: Избледняване на LED вход и изход: 4 стъпки (със снимки)
Видео: 1. Q Light Controller + Първи стъпки с QLC +. Принадлежности и функции 2024, Юли
Anonim
RaspberryPi: Увеличете и изключете светодиода
RaspberryPi: Увеличете и изключете светодиода

Следващите стъпки са експерименти, които илюстрират как работят светодиодите. Те показват как да затъмните светодиода с равномерна скорост и как да го избледняват навътре и навън.

Ще имаш нужда:

  • RaspberryPi (Използвах по-стар Pi, моят Pi-3 се използва, но всеки Pi ще работи.)
  • Платка
  • 5 мм червен светодиод
  • Резистор 330 Ω (Не критичен 220-560 Ω ще работи.)
  • Свързващ проводник

Pi-cobbler, който използвах от Adafruit, не е необходим, но улеснява създаването на макети.

WiringPi е набор от библиотеки за програмиране на RaspberryPi в C. Инструкциите за изтегляне, инсталиране и използване се намират на

За да инсталирате wiringPi, следвайте инструкциите на тази страница:

За да получите списък с окабеляване на PIN номера, въведете gpio readall в командния ред.

В по -новите версии на Raspian wiringPi е инсталиран по подразбиране.

Стъпка 1: Модулация на ширината на импулса

Широчинно импулсна модулация
Широчинно импулсна модулация
Широчинно импулсна модулация
Широчинно импулсна модулация
Широчинно импулсна модулация
Широчинно импулсна модулация

Светодиодите винаги работят с едно и също напрежение, независимо от яркостта. Яркостта се определя от осцилатор с квадратна вълна и времето, през което напрежението е високо, определя яркостта. Това се нарича Pulse Width Modulation (PWM). Това се контролира от функцията wiringPi pwmWrite (pin, n), където n има стойност от 0 до 255. Ако n = 2, светодиодът ще бъде два пъти по -ярък от n = 1. Яркостта винаги се удвоява, когато n се удвои. Така че n = 255 ще бъде два пъти по -ярко от n = 128.

Стойността на n често се изразява като процент, наречен работен цикъл. Снимките показват следи от осцилоскоп за 25, 50 и 75% работни цикли.

Стъпка 2: LED и резистор

LED и резистор
LED и резистор

Това не е необходимо, но наличието на няколко от тях може да улесни създаването на макети.

Припоявайте резистор към късия светодиод. Използвайте резистор 220-560 ома.

Стъпка 3: Неравномерно затъмняване

Неравномерно затъмняване
Неравномерно затъмняване

Изградете веригата, както е на диаграмата. Това е точно като веригата за мигане на светодиод. Той използва wiringPi пин 1, защото трябва да използвате PWM активиран щифт. Компилирайте програмата и я стартирайте. Ще забележите, че колкото по -ярък е светодиодът, толкова по -бавно затъмнява. Когато наближи най -слабото, ще стане много по -слабо.

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

* Компилиране: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Изпълнение: sudo./fade1 * * Всички пинови номера са номера на кабели, освен ако не е посочено друго. ************************************************** ****************/ #include int main () {wiringPiSetup (); // Настройка, необходима от wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Режим на маркиране/интервал int i; докато (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); забавяне (10); } за (i = 0; i <256; i ++) {pwmWrite (1, i); забавяне (10); }}}

Следващата стъпка показва как да затъмните светодиода с постоянна скорост и в един за изявление.

Стъпка 4: Стъпка 4: Нагоре и надолу в One For () и с равномерна скорост

За да свети светодиодът с постоянна скорост, забавянето () трябва да се увеличи с експоненциална скорост, тъй като половината работен цикъл винаги ще произвежда половината яркост.

Линията:

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

изчислява обратния квадрат на яркостта, за да определи дължината на забавянето. Компилирайте и стартирайте тази програма и ще видите, че светодиодът ще избледнява и изгасва с постоянна скорост.

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

* Компилиране: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Изпълнение: sudo./fade2 * * Всички пинови номера са номера на Pi, освен ако не е посочено друго. ************************************************** ****************/ #include int main () {wiringPiSetup (); // Настройка, необходима от wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Режим на маркиране/интервал докато (1) {int i; int x = 1; за (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // изчислява обратен квадрат на индекса pwmWrite (1, i); забавяне (г); ако (i == 255) x = -1; // превключване на посоката на върха}}}

Препоръчано: