Learning   Examples | Foundations | Hacking | Links

Leyendo un Potenciometro (entrada analógica) - Potentiometer

Un potenciometro es un dispositivo de resistencia variable que se puede leer como un valor analógico. En este ejemplo dicho valor controla la velocidad de parpadeo de un LED.

Conectamos tres cables a la Arduino. El primero une masa (gnd) con uno de las patillas exteriores del potenciometros. El segundo une 5V a la otra patilla exterior del potenciometro. El tercer cable une el pin analógico 2 de la Arduino a la patilla central del potenciometro.

Girando el eje del potenciometro a cada lado del centro cambiamos la resistencia dependiendo de si nos acercamos a 5 voltios o masa modificando la entrada digital. Cuando giramos completamente el eje en una dirección (al lado de masa) obtenemos 0 Voltios por lo que en la entrada analógica de la Arduino leemos 0, cuando giramos completamente al lado de 5V en la Arduino leemos 1023. En la zona intermedia la función analagoRead() devuelve un valor entre 0 y 1023 de forma proporcional al voltaje que se aplica a la entrada de la Arduino.

Codigo

 
/* Lectura analogica con potenciometro
 * ----------------------------------- 
 * Este ejemplo hace parpadear un led conectado al pin 13
 * La velocidad del parpadeo está en función del valor
 * obtenido con la función analogRead() aplicada a la lectura
 * de un potenciometro conectado a la entrada analogica 2.
 *
 * Analog Read to LED
 * ------------------ 
 *
 * turns on and off a light emitting diode(LED) connected to digital  
 * pin 13. The amount of time the LED will be on and off depends on
 * the value obtained by analogRead(). In the easiest case we connect
 * a potentiometer to analog pin 2.
 *
 * Created 1 December 2005
 * copyleft 2005 DojoDave <http://www.0j0.org>
 * http://arduino.berlios.de
 *
 */

int ledPin = 13; // seleccionamos pin para el LED
int potPin = 2;   // seleccionamos pin para el potenciometro
int val = 0;     // variable para leer estado del pulsador


void setup() {
  pinMode(ledPin, OUTPUT);  // configuramos el LED como salida
  // los pines de entrada analógica no es necesario configurarlos
}

void loop() {
  val = analogRead(potPin);    // leemos el valor del potenciometro
  digitalWrite(ledPin, HIGH);  // encendemos el LED
  delay(val);                  // paramos el programa un momento
  digitalWrite(ledPin, LOW);   // apagamos el LED
  delay(val);                  // paramos el programa un momento
}
 

Share