Съдържание:
- Стъпка 1: Модулация на ширината на импулса
- Стъпка 2: LED и резистор
- Стъпка 3: Неравномерно затъмняване
- Стъпка 4: Стъпка 4: Нагоре и надолу в One For () и с равномерна скорост
Видео: RaspberryPi: Избледняване на LED вход и изход: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Следващите стъпки са експерименти, които илюстрират как работят светодиодите. Те показват как да затъмните светодиода с равномерна скорост и как да го избледняват навътре и навън.
Ще имаш нужда:
- 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 и резистор
Това не е необходимо, но наличието на няколко от тях може да улесни създаването на макети.
Припоявайте резистор към късия светодиод. Използвайте резистор 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; // превключване на посоката на върха}}}
Препоръчано:
Raspberry Pi - PCA9536 Вход/изход Expander Python Урок: 4 стъпки
Raspberry Pi-PCA9536 Входно/изходен разширител Python Урок: PCA9536 е 8-пиново CMOS устройство, което осигурява 4 бита разширение за паралелен вход/изход (GPIO) с общо предназначение за приложения на I2C-шина/SMBus. Състои се от 4-битов регистър за конфигуриране, който служи за целите на избора на вход или изход, 4-битов
Raspberry Pi - PCA9536 Разширител за вход/изход Java Урок: 4 стъпки
Raspberry Pi-PCA9536 входно/изходен разширител Java урок: PCA9536 е 8-пиново CMOS устройство, което осигурява 4 бита общо предназначение за паралелен вход/изход (GPIO) за I2C-bus/SMBus приложения. Състои се от 4-битов регистър за конфигуриране, който служи за целите на избора на вход или изход, 4-битов
Угасване на LED вход и изход: 3 стъпки
Угасване на LED вход и изход: Следните стъпки са експерименти, които илюстрират как работят светодиодите. Те илюстрират как да затъмните светодиода с равномерна скорост и как да го избледняват навътре и навън. Ще ви трябват: Arduino (използвах дует) Платка 5 мм червен LED 330 Ω Противопоставям се
Как да свържете бутон с аудио вход и изход: 13 стъпки
Как да свържете бутон с аудио вход и изход: Бутонът е един от основните компоненти за улавяне на вашето действие. Можете да натискате бутон динамично, за да направите нещо. Вече има няколко начина да използвате бутони във вашите проекти (например хакване на мишка и клавиатура или Arduino, гейнер, MCK). Thi
Как да свържете фейдър с аудио вход и изход: 14 стъпки
Как да свържете фейдър с аудио вход и изход: Фейдърът е един от основните компоненти за смесване на конзолата. Можете динамично да контролирате източника си с движението на фейдър. Вече има няколко начина да използвате бутони във вашите проекти (например хакване на мишка и клавиатура или Arduino, гейнер, MC