miércoles, 18 de marzo de 2015

Variación de la intensidad de un LED con salidas digitales PWM

Lista de componentes
  • 1x Arduino Mega (podemos emplear cualquier Arduino que funcione a 5v).
  • 1x Resistencia 220 Ω.
  • 1x LED Blanco 5 mm.
  • 1x Potenciómetro lineal de 10 kΩ.
  • 1x Protoboard.
  • 1x Juego de cables.
Diagrama conexiones eléctricas

Seguiremos utilizando el pin analógico A0 como entrada analógica, y los pines de 5v y gnd del propio arduino como fuente y referencia de tensión para la parte de recepción de datos. Para conectar el led con la resistencia en serie utilizaremos el pin digital 10.
 
/*
***********************************************************
****   rDuinoStar.com - Comunidad Arduino en Español   ****
***********************************************************
  Tutorial 4.- Salidas Digitales PWM
 
  Lectura de entrada analógica y variación en la intensidad de
  iluminación de un LED utilizando salidas digitales con modulación
  en ancho del pulso.
 
  Uso público citando el autor o procedencia, bajo licencia:
  Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
 
  Éste y más ejemplos en rDuinoStar.com, tu comunidad Arduino
  en Español
*/
 
// Pin digital PWM que utilizaremos para alimentar el LED
int pinLed = 10;
// Pin analógico que utilizaremos como entrada de datos
int entradaDatos = A0;
// Variable que recogerá las lecturas de A0
int valorDatos = 0;
 
void setup()
{
  // Configuramos el pin del LED como salida, aunque no es necesario
  pinMode(pinLed, OUTPUT);
}
 
void loop()
{
  // Leemos el valor en la entrada analógica A0 y se lo asignamos a
  // valorDatos
  valorDatos = analogRead(entradaDatos);
  // Determinamos el nivel de salida
  analogWrite(pinLed, valorDatos / 4);
}