🛠 Lire un capteur analogique (potentiomètre)
Objetivos
Descubrir el ADC de 10 bits del ATmega328P en la Pro Mini: la placa expone las entradas A0-A5 en la fila de pines, y la última revisión de SparkFun incluso rompe los canales adicionales ADC6/ADC7 (más allá de los 6 canales del Uno). Punto crucial propio de la Pro Mini: la referencia del ADC es VCC, por lo tanto 5 V en el modelo de 5 V/16 MHz pero 3,3 V en el modelo de 3,3 V/8 MHz — la conversión a voltios depende de tu placa. Conectamos un potenciómetro como divisor de tensión en A0 y mostramos el valor bruto y los milivoltios.
Material
- 1 × Arduino Pro Mini (anota tu modelo: la escala completa del ADC vale VCC, 5 V o 3,3 V)
- 1 × potenciómetro de 10 kΩ (o sensor analógico: LDR + resistencia, sensor de flexión…)
- 3 × cables; alimentación de 3,3 V o 5 V de la placa según el modelo (nunca más: el ADC acepta 0-VCC como máximo)
- Adaptador FTDI/CP2102 para el monitor serie
Código completo
// Lecture analogique 10 bits sur A0 — pleine echelle = VCC
const uint8_t CAPTEUR = A0;
const uint32_t FULLSCALE_MV = 5000; // 3300 pour le modele 3,3 V/8 MHz
uint32_t derniere = 0;
void setup {
Serial.begin(57600); // A0 en entrée implicite pour analogRead
}
void loop {
if (millis - derniere >= 50) { // 20 affichages/s
derniere = millis;
int brut = analogRead(CAPTEUR); // 0..1023
uint32_t mv = (uint32_t)brut * FULLSCALE_MV / 1024UL;
Serial.print(brut);
Serial.print(F(" -> "));
Serial.print(mv);
Serial.println(F(" mV"));
}
}
Verificación esperada
Al girar el potenciómetro, el valor bruto sigue de 0 (cursor hacia masa) a 1023 (cursor hacia VCC) y los milivoltios siguen de 0-VCC. El trazador serie dibuja una línea continua. Los valores en reposo son estables con una precisión de ±1, prueba de un buen contacto de la masa. En el modelo de 3,3 V, cambia FULLSCALE_MV a 3300: de lo contrario, la tensión mostrada será incorrecta en un +50 %.
Errores frecuentes
- Olvidar que la escala completa vale VCC: en el modelo de 3,3 V, convertir con 5000 mV sobreestima toda medición; el ADC no tiene una referencia interna fija como otras placas.
- Medir más que VCC en la entrada: el ADC está limitado a VCC; por encima se corre el riesgo de dañar el pin (usar un divisor para 12 V).
- Olvidar conectar la masa del sensor a la masa de la Pro Mini: la lectura deriva y oscila sin motivo.
- Esperar 0-5 V en analogRead: la función devuelve 0-1023, no voltios; la conversión manual es necesaria.
- Confundir A4/A5 con entradas libres: también son SDA/SCL del I²C — perfecto para más adelante, pero no cablear en analógico si el I²C está funcionando.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-poussoir.inoArduinopwm-fade.inoArduinocapteur-lumiere-ldr.inoArduinoservo-balayage.inoArduinoruban-neopixel.inoArduino