Está en la página 1de 6

Módulo - POTENCIOMETRO

Los potenciómetros son dispositivos que usaremos frecuentemente para introducir valores analógicos
en nuestro Arduino, por ejemplo, para regular la intensidad de la luz de un Led, la velocidad de un
motor DC, o la posición de un servo.

La medición del valor de un potenciómetro es similar (aunque no igual) a la medición de la resistencia


desconocida, algo que vimos en esta entrada. Los conceptos que vimos son necesarios para entender
el contenido de esta entrada por lo que, si aún no lo habéis hecho, os recomiendo su lectura.

¿QUÉ ES UN POTENCIÓMETRO?

Un potenciómetro es un dispositivo que permite variar su resistencia de forma manual, entre un valor
mínimo Rmin, (normalmente 0 ohminos) y un valor máximo Rmax. Valores habituales de Rmax son 5k,
10k o 20k ohmios.

Internamente un potenciómetro está constituido por un contacto móvil que se desplaza a lo largo de
una pista resistiva. De esta forma, al mover el potenciómetro movemos el contacto a lo largo de la
pista, y variando la longitud del tramo de pista con el que estamos en contacto, y por tanto variando su
resistencia.

Normalmente un potenciómetro tiene tres terminales. Los dos extremos están unidos a ambos lados
de la pista, por lo que siempre registrarán la resistencia máximo Rmax. El terminal restante
corresponde con el contacto móvil. Este terminal varía su resistencia respecto a los otros dos
terminales a medida que accionamos el potenciómetro, siendo la suma de la resistencia a los otros
terminales igual a Rmax.

Respecto a la geometría, podemos encontrar potenciómetros de tipo lineal o rotativo.


Por último, en cuanto a la relación entre
posición y resistencia, encontramos
potenciómetros de tipo lineal,
parabólico o exponencial. Los lineales
presentan una proporcionalidad entre
resistencia y desplazamiento, lo cual
significa un comportamiento más
intuitivo. Mientras, los exponenciales
permiten mayor precisión en valores de
resistencia bajos, por lo que resultan
adecuados cuando hace falta un ajuste
fino en un amplio rango.

Conexión Eléctrica Conexión al Arduino


Código de Ejemplo

El código para leer el desplazamiento del potenciómetro es realmente sencillo. Simplemente usamos
una entrada analógica para leer el valor de tensión, y lo transformamos en la posición interpolando con
la función “map”.

const int analogPin = A5;


int value; //variable que almacena la lectura analógica
int position; //posición del potenciometro en tanto por ciento

void setup() {
Serial.begin(9600);
}

void loop() {
value = analogRead(analogPin); // realizar la lectura analógica
position = map(value, 0, 1023, 0, 100); // convertir a porcentaje
delay(1000);
Serial.print("Posición = ");
Serial.print(position);
Serial.println();
}

Otro Código de Ejemplo


Varía el tiempo de encendido
int sensorPin = A0;    // selecciona el pin de entrada para el potenciómetro
int ledPin = 9;      // seleccion el pin de salida para el LED
int sensorValue = 0;  // variable para almacenar el valor que viene del sensor (potenciómetro)

void setup() {
  // declara el pin de salida
  pinMode(ledPin, OUTPUT);  
}

void loop() {
  // lee el valor del sensor
  sensorValue = analogRead(sensorPin);    
  // prende el LED
  digitalWrite(ledPin, HIGH);  
  // detiene el programa por <sensorValue> millisegundos:
  delay(sensorValue);          
  // apaga el LDE
  digitalWrite(ledPin, LOW);  
  // detiene el programa por <sensorValue> millisegundos:
  delay(sensorValue);                  
}

Otro Código de Ejemplo


Varía la intensidad del Led
// Declaracion de constantes
const int analogInPin = A0; 
const int analogOutPin = 9;

int sensorValue = 0;        // valor leido desde el potenciometro


int outputValue = 0;        // valor de la salida PWM (salida analógica)

void setup() {
  // inicializa la comunicacion serial con 9600 bits por segundo
  Serial.begin(9600);
}

void loop() {
  // lectura de la entrada analógica
  sensorValue = analogRead(analogInPin);            
  // ubica el valor de la entrada en el rango de la salida analógica
  outputValue = map(sensorValue, 0, 1023, 0, 255);  
  // cambia el valor de salida analógica
  analogWrite(analogOutPin, outputValue);          

  // muestra el resultado en el Serial Monitor:


  Serial.print("sensor = " );                      
  Serial.print(sensorValue);      
  Serial.print("\t output = ");      
  Serial.println(outputValue);  

  // espera 2 milisegundos antes del siguiente ciclo


  delay(2);                    
}

Practica
 Utilice el potenciómetro para encender el Led RGB dependiendo el valor del potenciómetro en
una escala de 0 a 100
o Si el valor del potenciómetro esta entre 0 y 10, el color del RGB debe ser Verde
o Si el valor del potenciómetro esta entre 11 y 20, el color del RGB debe ser Azul
o Si el valor del potenciómetro esta entre 21 y 30, el color del RGB debe ser Rojo
o Si el valor del potenciómetro esta entre 31 y 40, el color del RGB debe ser Amarillo
o Si el valor del potenciómetro esta entre 41 y 50, el color del RGB debe ser Anaranjado
o Si el valor del potenciómetro esta entre 51 y 60, el color del RGB debe ser 91,255,255
o Si el valor del potenciómetro esta entre 61 y 70, el color del RGB debe ser 219,125,221
o Si el valor del potenciómetro esta entre 71 y 80, el color del RGB debe ser 218,129,255
o Si el valor del potenciómetro esta entre 81 y 90, el color del RGB debe ser 143,203,151
o Si el valor del potenciómetro esta entre 91 y 100, el color del RGB debe ser 128,0,255

También podría gustarte