Arduino - LED - Desvanecimiento

En este tutorial, vamos a aprender:

※ Nota:

Este tutorial ofrece conocimientos profundos que te ayudan a entender el principio de funcionamiento. Para facilitar las cosas, puedes usar Arduino - biblioteca LED.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Protoboard
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.

Acerca de LED

Diagrama de pines

El LED incluye dos pines:

  • Pin de cátodo (-): debe conectarse a GND (0 V)
  • Pin de ánodo (+): se utiliza para controlar el estado del LED
Pinout de LED

Cómo funciona

Después de conectar el cátodo (-) a la tierra:

  • Si se conecta GND al ánodo(+), el LED está apagado.
  • Si se conecta VCC al ánodo(+), el LED está encendido.
  • Si se genera una señal PWM en el ánodo(+), el brillo del LED cambia según el valor PWM. El valor PWM varía entre 0 y 255. Cuanto mayor sea el valor PWM, más brillante es el LED. Cuanto menor sea el valor PWM, más oscuro es el LED.
    • Si el valor PWM es 0, es equivalente a GND, por lo tanto, el LED está apagado
    • Si el valor PWM es 255, es equivalente a VCC, por lo tanto, el LED está completamente encendido
    Cómo funciona un LED

    ※ Nota:

    Para la mayoría de los LEDs, se necesita usar una resistencia entre el ánodo (+) y VCC. El valor de la resistencia depende de la especificación del LED.

    Arduino - Atenuar LED

    Algunos pines de Arduino pueden programarse para generar una señal PWM. Podemos atenuar un LED conectando el pin ánodo (+) del LED a un pin de Arduino, el cátodo (-) del LED a GND, y generando PWM en el pin del Arduino mediante programación.

Diagrama de Cableado

Diagrama de cableado de LED para Arduino

This image is created using Fritzing. Click to enlarge image

Cómo Programar

  • Configura el pin de un Arduino en modo de salida digital utilizando la función pinMode(). Por ejemplo, el pin 9:
pinMode(9, OUTPUT);
  • Configura el brillo del LED generando la señal PWM correspondiente utilizando la función analogWrite():
analogWrite(9, brightness);

Donde el brillo es un valor de 0 a 255.

Código de Arduino - Ejemplo de desvanecimiento en el IDE de Arduino

Pasos R\u00e1pidos

  • Conecta Arduino al PC mediante un cable USB
  • Abre Arduino IDE, selecciona la placa y el puerto correctos
  • Copia el código de abajo y pégalo en el Arduino IDE
/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(LED_PIN, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); }
  • Haz clic en el botón Subir en el IDE de Arduino para subir código a Arduino
Subir código al IDE de Arduino
  • Ver el brillo del LED

Explicación del código

Puede encontrar la explicación en la línea de comentarios del código de Arduino anterior.

※ Nota:

El ejemplo anterior utiliza la función delay() para realizar un fundido de entrada y salida. La función delay() hace que el LED se desvanezca de forma poco suave y bloquee el resto del código. En las próximas partes, aprenderemos cómo realizar un desvanecimiento suave sin bloquear el resto del código utilizando la función millis().

Cómo desvanecer un LED en un periodo sin usar delay()

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Cómo hacer que un LED aumente su brillo gradualmente en un período sin usar delay()

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-led-fade */ #define LED_PIN 9 // the Arduino PWM pin connected to the LED #define FADE_PEDIOD 3000 // fade time is 3 seconds unsigned long fadeStartTime; // the setup routine runs once when you press reset void setup() { pinMode(LED_PIN, OUTPUT); // declare pin 9 to be an output fadeStartTime = millis(); } // fade-in in loop, and restart after finishing void loop() { unsigned long progress = millis() - fadeStartTime; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { fadeStartTime = millis(); // restart fade again } }

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Rétate a ti mismo

Cambia el brillo del LED usando un potenciómetro. Consejo: Consulte Arduino - Potenciómetro.

Conocimientos Adicionales

  • La señal PWM generada por la función analogWrite() atenúa un LED. Eso se debe a que es PWM de alta frecuencia. Si creamos una función personalizada (se requiere conocimiento avanzado), que genera una señal PWM de baja frecuencia, el LED parpadeará en lugar de atenuarse.
  • Resumen: La señal PWM puede usarse en Arduino para: controlar un servomotor, controlar un motor DC, producir sonido usando un zumbador piezoeléctrico, atenuar un LED, parpadear un LED ...

Referencias de Funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!