Saltar al contenido principal

Código básico para leer un potenciómetro

Con el cursor conectado a A0.

1. Leer el valor​

#define POT A0

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

void loop() {
int valor = analogRead(POT); // 0 … 1023
Serial.println(valor);
delay(50);
}

Abre Herramientas → Serial Plotter en lugar del Monitor Serie: verás una gráfica que sube y baja mientras giras el mando.

2. Pasarlo a voltios o a porcentaje​

int valor = analogRead(A0);

float voltios = valor * 5.0 / 1023.0;
int porcentaje = map(valor, 0, 1023, 0, 100);

map() traslada un número de un rango a otro: aquí, de 0 – 1023 a 0 – 100.

3. Controlar el brillo de un LED​

Conecta un LED con su resistencia al pin 9 (con PWM). El potenciómetro decide el brillo:

#define POT A0
#define LED 9

void setup() {
pinMode(LED, OUTPUT);
}

void loop() {
int valor = analogRead(POT); // 0 … 1023
int brillo = map(valor, 0, 1023, 0, 255);
analogWrite(LED, brillo); // 0 … 255
}

La lectura va de 0 a 1023 y analogWrite() admite de 0 a 255: map() hace la traducción. Tienes el porqué en PWM.

4. Lecturas más estables​

Es normal que el valor "baile" uno o dos puntos aunque no toques el mando. Para suavizarlo, haz la media de varias lecturas:

int leerSuave(int pin) {
long suma = 0;
for (int i = 0; i < 16; i++) {
suma += analogRead(pin);
}
return suma / 16;
}

¿Y ahora qué?​

Con el mismo código puedes leer cualquier sensor que dé una tensión. El siguiente, una fotorresistencia, que mide la luz. Y si quieres mover algo con el mando, prueba a controlar un servomotor.