Todos los cursos

Salidas analógicas PWM con Arduino

Progreso del curso

Salidas analógicas PWM con Arduino
10%

Autor de la lección

Miguel Ángel Abellán
Porque disfruto programando y tengo la suerte de aprender todos los días.
Lección 5: Luces aleatorias

 Práctica 1: Luces aleatorias

El objetivo de esta práctica es encender en diferentes intensidades 3 LEDs blancos, es decir, se va a programar un código encargado de encender cada LED blanco a una intensidad de luz diferente (haciendo uso de la salida analógica).

Luces aleatorias con Arduino
Luces aleatorias con Arduino

 

 Materiales

  • 1 Arduino UNO
  • 1 Protoboard
  • 4 Latiguillos
  • 3 LEDs blancos
  • 3 Resistencias de 100Ω (marrón-negro-marrón)

 

 Esquema eléctrico

Características LED

Polarizado
Intensidad de Corriente20mA
Tensión Led (verde, ámbar, rojo)2.1V
Tensión Led blanco3.3V

 

Cálculo de la resistencia para el LED

V = 5V - 3.3V = 1.7V
I = 20mA

V = I x R ; R = V / I

R = 1.7V / 0.02A = 85Ω -> 100Ω (por aproximación)

 

Se conectan los LEDs a los pines analógicos PWM (~) 9, 6 y 5. La patilla larga del LED debe ser conectada al voltaje positivo (ánodo) y la corta al voltaje negativo (cátodo) pasando por la resistencia.

Esquema eléctrico
Esquema eléctrico

 

 Programación en mBlock

Al ejecutar el código se establecerá un valor aleatorio entre 0 y 255 en cada uno de los pines analógicos PWM. Además esperaremos medio segundo para poder visualizar el efecto.

Luces aleatorias en mBlock
Luces aleatorias en mBlock

 

 Programación en Arduino IDE

En primer lugar, se configura los pines analógicos PWM 9, 6 y 5 en modo salida (OUTPUT). Esta configuración se establece en la función setup(), ya que solamente se ejecuta una vez.

Por otro lado, al ejecutar el código se establecerá un valor aleatorio entre 0 y 255 en cada uno de los pines analógicos PWM y esperaremos medio segundo (500 milisegundos) para visualizar el efecto aleatorio.

/**
 * Luces aleatorias
 */

void setup() {
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop() {
  analogWrite(9, random(0, 255));
  analogWrite(6, random(0, 255));
  analogWrite(5, random(0, 255));
  delay(500);
}
Utilizamos cookies propias y de terceros para obtener datos estadísticos de la navegación de nuestros usuarios y mejorar nuestros servicios. Si acepta o continúa navegando, consideramos que acepta su uso. Ver más.