Learning   Examples | Foundations | Hacking | Links

Ejemplos > E/S Analógica

Lectura analógica

Un potenciómetro es un elemento pasivo con un eje que proporciona una resistencia variable, la cual puede ser leida por una placa Arduino como un valor analógico. En este ejemplo, ese valor controlará la frecuencia con la que parpadeará un LED

Conectamos 3 cables a la placa Arduino. El primero desde masa a uno de los pines extremos del potenciómentro. El segundo, desde 5 voltios al otro pin extremo del potenciómetro . El tercero desde el pin analógico 2 al pin medio del potenciómetro.

Al girar el eje del potenciómetro, cambiamos el valor de la resistencia entre los pines de los extremos y el pin central del potenciómtro. Esto cambia la "cercanía" relativa del pin central a 5 Voltios y a masa, ofreciendo diferentes valores analógicos de entrada. Cuando giramos el eje a tope en un sentido, llegarán 0 voltios al pin central, y leeremos 0. Cuando giramos el eje a tope, pero en el otro sentido, llegarán 5 voltios al pin central y leeremos 1023. Entre medias, analogRead() retorna un número entre 0 y 1023 que es proporcional al valor del voltaje aplicado al pin central.

Circuit

Code

/* Lectura analógica para controlar LED
 * ----------------------------------------- 
 *
 * enciende y apage el diodo(LED) conectado al pin digital 13  
 * La frecuencia con la que el led se encenderá o apagará depende 
 * del valor obtenido por por analogRead(). En este ejemplo sencillo hemos conectado
 * un potenciómetro al pin analógico 2.
 *
 * Created 1 December 2005
 * copyleft 2005 DojoDave <http://www.0j0.org>
 * http://arduino.berlios.de
 *
 */

int potPin = 2;    // Selecciona el pin de entrada del potenciómetro
int ledPin = 13;   // selecciona el pin para el LED
int val = 0;       // variable para almacenar el valor que llega desde el potenciómetro o sensor

void setup() {
  pinMode(ledPin, OUTPUT);  // declara ledPin como OUTPUT
}

void loop() {
  val = analogRead(potPin);    // lee el valor del sensor
  digitalWrite(ledPin, HIGH);  // Enciende el LED
  delay(val);                  // para el programa durante un tiempo
  digitalWrite(ledPin, LOW);   // apaga el LED
  delay(val);                  // para el programa durante un tiempo
}

Share