🛠 Lire un capteur analogique sur l'ADC 12 bits
Objetivos
Utilizar el ADC del Photon: la tarjeta dispone de 8 entradas ADC de 12 bits (A0 a A7). Vas a leer un potenciómetro montado como divisor de tensión en A0 y convertir el valor bruto (0 a 4095) en tensión.
Material
- 1 Particle Photon
- 1 potenciómetro (por ejemplo, de 10 kΩ)
- Cables de protoboard; tensión de referencia de 3,3 V de la tarjeta (lógica de 3,3 V, fondo de escala del ADC = 3,3 V)
Código completo
// photon-capteur-adc.ino — lecture ADC 12 bits sur A0
const int CAPTEUR = A0; // 8 entrées ADC 12 bits : A0..A7
void setup {
Serial.begin(9600);
}
void loop {
int brut = analogRead(CAPTEUR); // 0..4095
float tension = brut * 3.3f / 4095.0f; // conversion en volts
Serial.print("brut=");
Serial.print(brut);
Serial.print(" tension=");
Serial.print(tension);
Serial.println(" V");
delay(200);
}
Verificación esperada
Al girar el potenciómetro, el valor bruto sigue el cursor entre 0 y 4095 y la tensión calculada permanece entre 0 y 3,3 V. Esquema del divisor de tensión: patilla 1 del potenciómetro a 3V3, patilla 3 a GND, cursor a A0.
Errores frecuentes
- Alimentar el sensor con 5 V y luego leer en A0: el fondo de escala del ADC está limitado a la lógica de 3,3 V, por lo que saturarás la medición.
- Creer que todas las patillas aceptan 5 V: A3 y DAC son la excepción (no toleran 5 V, consultar la hoja de datos).
- Confundir la resolución: el ADC es de 12 bits (0..4095), no de 10 bits como en otras tarjetas.
- La salida 3V3 está limitada a 100 mA: no alimentar una cadena de sensores que consuma mucho desde esta patilla.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-evenement.inoArduinofonction-distance.inoArduinocapteur-dht.inoArduinoruban-neopixel.inoArduinopwm-respiration.inoArduino