Implementación de PWM con Arduino para Control de Brillo en LEDs
Clase 27 de 38 • Curso Fundamentos de Desarrollo de Hardware con Arduino
Contenido del curso
- 3

Arduino: Desarrolla Prototipos Interactivos con Microcontroladores
11:46 - 4

Desarrollo de Prototipos de Hardware: Diseño y Fabricación
09:18 - 5

Diseño Mecánico de Hardware con SolidWorks y Herramientas Paramétricas
05:03 - 6

Desarrollo de Interfaces y Prototipos con QT en Sistemas Embebidos
04:07 - 7

Hardware Libre: Arduino y Propiedad Intelectual
04:27 - 8
Selección de Arduino para Envío de Datos a Servidor
00:14 - 9
Fundamentos de Desarrollo de Hardware con Arduino
01:27 - 10
Proyectos con Arduino: Componentes y Materiales Necesarios
01:13
- 19

Conociendo los Puertos y Alimentación del Arduino Uno
09:40 - 20

Funcionamiento de la Protoboard para Prototipado Electrónico
04:36 - 21

Programación Básica en Arduino: Primeros Pasos con LED y Código
07:53 - 22

Variables y Constantes en Programación para Arduino
05:53 - 23

Creación y Uso de Librerías en Arduino
03:10 - 24

Uso del Potenciómetro para Control de LED con Arduino
10:06 - 25

Comunicación Serial en Arduino: Uso del Monitor Serial
10:32 - 26

Control de Intensidad Lumínica con PWM en Arduino
05:51 - 27

Implementación de PWM con Arduino para Control de Brillo en LEDs
14:18 - 28

Uso de Botones con Resistencia Pull-Up en Arduino
13:01 - 29

Monitor de Temperatura con Arduino y Sensor LM35
10:59 - 30

Cálculo del Multiplicador para Convertir Lecturas de Sensor a Celsius
05:05 - 31

Conexión y programación de un LCD con Arduino para mostrar temperatura
17:28 - 32

Programación de Semáforos con Arduino y Sensores
02:09
- 33

Control de Motores y Servomotores con Arduino
23:17 - 34

Control de Servomotores con Arduino: Conexión y Programación
11:07 - 35

Control de Servomotor con Potenciómetro en Arduino
04:35 - 36

Proyecto: Construcción y Programación de un Robot de Evasión de Obstáculos
08:53 - 37

Programación de Funciones de Control de Movimiento en Arduino
08:09 - 38

Programación de Botón de Inicio para Robots con Arduino
17:47
¿Cómo implementar PWM en Arduino?
La técnica de Modulación de Ancho de Pulso (PWM, por sus siglas en inglés) puede ser intimidante al principio, pero con el uso de Arduino se simplifica considerablemente gracias a su función analogWrite. Este documento explora cómo implementar PWM usando Arduino y sacar el máximo partido a sus capacidades.
¿Qué es PWM?
El Pulse Width Modulation (PWM) es una técnica que permite simular señales analógicas a través de una salida digital. Cambiando el ancho del "pulso" de una señal digital, puedes variar la cantidad de energía enviada a un dispositivo, regulando, por ejemplo, la resistencia de un LED o la velocidad de un motor.
¿Qué componentes necesitamos?
Antes de empezar a implementar PWM en Arduino, asegúrate de tener los siguientes componentes:
- Un Arduino (cualquier modelo compatible)
- Un potenciómetro
- Tres LEDs ultra brillantes (o un LED RGB)
- Cables de conexión
- Una protoboard
- Resistencias de 220 ohmios (una para cada LED)
¿Cómo configurar el sistema con Arduino?
Para implementar PWM, necesitamos configurar nuestro sistema de manera que los componentes interactúen correctamente. Aquí te mostramos cómo realizar la conexión básica:
- Configura los pines PWM en Arduino:
- Define los pines donde los LEDs estarán conectados. En este caso usaremos pines 3, 5 y 6, que soportan PWM.
int led1 = 3;
int led2 = 5;
int led3 = 6;
- Conecta el potenciómetro:
- Conecta el potenciómetro al pin A0 de tu Arduino. Este actuará como una entrada analógica.
int potPin = A0;
¿Cómo escribir el código en Arduino?
Comencemos a escribir el código necesario para controlar la intensidad de los LEDs usando PWM:
- Declara variables globales:
int potValue;
int brightValue = 0;
- Configura el ‘setup’ de Arduino:
El 'setup' no necesita especificar los pines como output ya que analogWrite() se encarga de esto:
void setup() {
// No hay necesidad de configurar pines como salida
}
- Desarrolla la lógica en el ‘loop’:
Aquí es donde la magia sucede. Leemos el valor del potenciómetro y ajustamos la intensidad de los LEDs:
void loop() {
potValue = analogRead(potPin);
brightValue = map(potValue, 0, 1023, 0, 255);
analogWrite(led1, brightValue);
analogWrite(led2, brightValue);
analogWrite(led3, brightValue);
delay(10);
}
¿Cómo ajustar la resolución de PWM?
Con Arduino, la resolución del PWM es de 8 bits, lo que significa que podemos ajustar las intensidades del LED en 256 niveles diferentes, de 0 a 255. Utilizamos la función map() para ajustar la lectura analógica del potenciómetro (0 a 1023) a este rango de PWM.
¿Cómo conectar los LEDs y otros componentes?
Para conectar tus componentes, sigue estos pasos:
-
LEDs:
- Conecta el cátodo de cada LED a la tierra común en la protoboard.
- Conecta el ánodo de cada LED a los pines PWM seleccionados.
-
Potenciómetro:
- Conecta un extremo a 5V, el otro a tierra, y el terminal central a A0.
¿Qué problemas comunes podemos enfrentar?
- Conexiones incorrectas: Asegúrate de que todos los LEDs estén correctamente orientados y que las conexiones sean sólidas.
- Valore de resistencias inadecuadas: Utiliza resistencias adecuadas para no dañar los LEDs.
- Errores en el código: Comprueba que todos los elementos del código estén correctamente escritos y que las variables estén bien definidas.
¿Qué desafíos puedes intentar?
Te animo a explorar más con este proyecto. Prueba integrar un LED RGB para manipular el color a través del PWM, o utiliza un segundo potenciómetro para alterar el patrón de los cambios de luminosidad.
Este ejercicio no solo te ayudará a comprender mejor el PWM, sino que ampliará tus habilidades en programación y hardware con Arduino. Si tienes alguna duda, aprovecha las discusiones en línea, comparte tus resultados y continúa explorando. ¡Tu creatividad es el límite!