🛠 Lire un capteur analogique sur A0-A7
Objetivos
Leer una tensión analógica con el ADC de 10 bits del ATmega4809. La Nano Every expone 8 entradas analógicas A0 a A7 en su conector (el chip expone un total de 14 canales), convertidas entre 0 y la tensión de referencia (5 V por defecto).
Material
- 1 × Arduino Nano Every
- 1 × potenciómetro de 10 kΩ (o sensor analógico: LDR + resistencia, sensor de flexión…)
- 3 × cables de conexión
- Cable micro-USB
Código completo
// Lecture du potentiometre sur A0 + allumage seuil sur LED 13
const uint8_t CAPTEUR = A0;
const uint16_t SEUIL = 512;
uint32_t derniereImpression = 0;
void setup {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop {
uint16_t brut = analogRead(CAPTEUR); // 0..1023
float tension = brut * (5.0 / 1023.0); // 0.00..5.00 V
if (millis - derniereImpression >= 100) { // 10 Hz
derniereImpression = millis;
Serial.print("brut="); Serial.print(brut);
Serial.print(" U="); Serial.print(tension);
Serial.println(" V");
}
digitalWrite(LED_BUILTIN, brut > SEUIL ? HIGH : LOW);
}
Verificación esperada
Potenciómetro: cursor hacia GND → lectura cercana a 0; hacia 5 V → cercana a 1023. El LED 13 se enciende por encima de la mitad del recorrido. El monitor serie muestra el valor bruto y la tensión a 10 Hz.
Errores frecuentes
- Leer un pin digital como analógico: solo A0-A7 son entradas ADC en el lado del conector.
- Esperar 1024: el ADC de 10 bits va de 0 a 1023, de ahí la división por 1023 y no por 1024.
- Entrada sin cablear: un pin ADC sin conexión da valores que derivan — siempre prevea un camino hacia GND.
- Velocidad de impresión: imprimir en cada
loopinunda el monitor; regule la frecuencia conmilliscomo se muestra arriba. - I²C en esta placa NO está en A4/A5 por defecto (bus
Wireen los pines dedicados SDA/SCL): si retoma un esquema de una Nano clásica, verifique bien este punto antes de añadir un sensor I²C.
Otros tutoriales para esta placa
- Faire clignoter la LED builtin (broche 13)
- Lire un bouton avec résistance de pull-up interne
- Variateur lumineux en PWM (broches 3, 5, 6, 9, 10)
- Piloter un micro-servo avec la bibliothèque Servo
- Deux ports série : Serial (USB) et Serial1 (broches 0/1)
- Apprivoiser les registres modernes de l'ATmega4809 : le timer TCB
Ejemplos de código para esta placa
multi-serie.inoArduinoadc-filtre.inoArduinointerrupt-bouton.inoArduinonvm-consignes.inoArduinosommeil-every.inoArduinowatchdog-secours.inoArduino