Tabla de contenido:

RaspberryPi: Fade un LED hacia adentro y hacia afuera: 4 pasos (con imágenes)
RaspberryPi: Fade un LED hacia adentro y hacia afuera: 4 pasos (con imágenes)

Video: RaspberryPi: Fade un LED hacia adentro y hacia afuera: 4 pasos (con imágenes)

Video: RaspberryPi: Fade un LED hacia adentro y hacia afuera: 4 pasos (con imágenes)
Video: How do you install LED lights on stairs - Smart Bright LEDs 2024, Mes de julio
Anonim
RaspberryPi: desvanece un LED hacia adentro y hacia afuera
RaspberryPi: desvanece un LED hacia adentro y hacia afuera

Los siguientes pasos son experimentos para ilustrar cómo funcionan los LED. Muestran cómo atenuar un LED a un ritmo uniforme y cómo atenuarlo hacia adentro y hacia afuera.

Necesitará:

  • RaspberryPi (utilicé una Pi más antigua, mi Pi-3 está en uso, pero cualquier Pi funcionará).
  • Tablero de circuitos
  • LED rojo de 5 mm
  • Resistencia de 330 Ω (no es crítico, funcionará 220-560 Ω).
  • Conectar cable

El Pi-zapatero que utilicé de Adafruit no es necesario, pero facilita el tablero.

WiringPi es un conjunto de bibliotecas para programar RaspberryPi en C. Las instrucciones para descargar, instalar y usar se encuentran en

Para instalar wirePi, siga las instrucciones de esta página:

Para obtener una lista de los números de clavijas del cableado pi, ingrese gpio readall en la línea de comando.

En las versiones más recientes de Raspian, el cableado pi está instalado de forma predeterminada.

Paso 1: Modulación de ancho de pulso

Modulación de ancho de pulso
Modulación de ancho de pulso
Modulación de ancho de pulso
Modulación de ancho de pulso
Modulación de ancho de pulso
Modulación de ancho de pulso

Los LED siempre funcionan al mismo voltaje independientemente del brillo. El brillo está determinado por un oscilador de onda cuadrada y la cantidad de tiempo que el voltaje es alto determina el brillo. Esto se llama Modulación de ancho de pulso (PWM). Esto es controlado por la función pwmWrite (pin, n) del cableadoPi donde n tiene un valor de 0 a 255. Si n = 2, el LED será dos veces más brillante que n = 1. El brillo siempre se duplica cuando n se duplica. Entonces n = 255 será dos veces más brillante que n = 128.

El valor de n a menudo se expresa como un porcentaje llamado ciclo de trabajo. Las imágenes muestran trazas de osciloscopio para ciclos de trabajo de 25, 50 y 75%.

Paso 2: LED y resistencia

LED y resistencia
LED y resistencia

Esto no es necesario, pero tener algunos de estos a la mano puede hacer que el tablero sea mucho más fácil.

Suelde una resistencia al LED corto de un LED. Utilice una resistencia de 220-560 ohmios.

Paso 3: atenuación desigual

Atenuación desigual
Atenuación desigual

Construye el circuito como en el diagrama. Esto es como el circuito para hacer parpadear un LED. Utiliza el pin 1 del cableado de Pi porque necesita utilizar un pin habilitado para PWM. Compile el programa y ejecútelo. Notará que cuanto más brillante es el LED, más lento se atenúa. A medida que se acerque al más tenue, se volverá más tenue muy rápido.

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

* Compilar: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade1.c -lwiringPi * * Ejecutar: sudo./fade1 * * Todos los números de pin son números de cableadoPi a menos que se especifique lo contrario. ************************************************ **************** / #include int main () {cableadoPiSetup (); // Configuración requerida por wirePi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Modo de marca / espacio int i; while (1) {para (i = 255; i> -1; i--) {pwmWrite (1, i); retraso (10); } para (i = 0; i <256; i ++) {pwmWrite (1, i); retraso (10); }}}

El siguiente paso muestra cómo atenuar el LED a una velocidad constante y en una declaración para.

Paso 4: Paso 4: Arriba y abajo en uno para () y a una velocidad uniforme

Para que el LED se atenúe a una velocidad constante, el retardo () debe aumentar a una velocidad exponencial porque la mitad del ciclo de trabajo siempre producirá la mitad del brillo.

La línea:

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

calcula el cuadrado inverso del brillo para determinar la duración del retraso. Compile y ejecute este programa y verá que el LED aparecerá y desaparecerá a una velocidad constante.

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

* Compilar: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade2.c -lwiringPi * * Ejecutar: sudo./fade2 * * Todos los números de pin son números de cableadoPi a menos que se especifique lo contrario. ************************************************ **************** / #include int main () {cableadoPiSetup (); // Configuración requerida por wirePi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Modo de marca / espacio while (1) {int i; int x = 1; para (i = 0; i> -1; i = i + x) {int d = (16-i / 16) ^ 2; // calcula el cuadrado inverso del índice pwmWrite (1, i); retraso (d); si (i == 255) x = -1; // cambiar de dirección en el pico}}}

Recomendado: