Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Arduino: LED con potenciómetro

El circuito (realizado con Fritzing):

/*
 * Este programa cambia la intensidad de un LED en base al valor de un potenciometro.
 *
 * 2014 - Guimi (http://guimi.net)
 */

// VARIABLES
//----------
const byte led=5; // Variable que indica el pin del led 
const byte sensor=0; // Variable que indica el pin del sensor (potenciometro)
int valorSensor=0; // Variable para guardar el valor del sensor [0-1023]

// FUNCION SETUP
//--------------
void setup() {   
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
  pinMode(sensor, INPUT);     

  // Preparamos la comunicacion mediante el puerto serie
  //Serial.begin(9600);
}


// FUNCION LOOP
//-------------
void loop() {
  // Leemos el valor del sensor [0-1023]
  valorSensor=analogRead(sensor);
  // Mostramos informacion por el puerto serie
  //Serial.print("sensor = " );                       
  //Serial.println(sensorValue);      
  
  // La lectura analogica es de 0-1023
  // La escritura PWM es de 0-255
  valorSensor=map(valorSensor,0,1023,0,255); // Este comando hace una regla de 3 (mapea) entre ambos rangos

  // Escribimos en el LED el valor correspondiente [0-255]
  analogWrite(led,valorSensor);
  
  // Esperamos un tiempo de reaccion para el LED
  delay(3);
}