adc-12-bits.ino

Arduino Due · Archivo : adc-12-bits.ino · Lenguaje : Arduino · Uso : Exploiter la résolution 12 bits de l'ADC de la Due

La Due convierte a 12 bits bajo 3,3 V: cuatro veces más pasos que un AVR. Una media móvil de 16 muestras limpia el ruido y la tensión se devuelve en voltios.

Hardware necesario

Un Arduino Due (AT91SAM3X8E, ARM Cortex-M3 a 84 MHz) conectado por USB a su puerto « Programming ». Ojo: lógica de 3,3 V, nunca 5 V en los pines. 1 potenciómetro de 10 kΩ (o sensor analógico 0-3,3 V).

Cableado

Extremos del potenciómetro a 3,3 V/GND — nunca 5 V en una Due —, cursor a A0.

Funcionamiento

analogReadResolution(12) sube el ADC a 4096 pasos; un anillo de 16 valores suaviza antes de convertir a voltios. En el Arduino IDE, elija « Arduino Due (Programming Port) » y Subir; el monitor serie va a la velocidad fijada en el código.

Para ir más lejos

Dispare la adquisición con un timer TC para muestreo regular, o filtre por mediana contra picos.

adc-12-bits.ino

// ADC 12 bits (0..4095) sur A0, moyenne glissante sur 16 mesures.
const int N = 16;
long valeurs[N];
int idx = 0;
long somme = 0;

void setup() {
  analogReadResolution(12); // 0..4095 au lieu de 0..1023
  Serial.begin(115200);
}

void loop() {
  somme -= valeurs[idx];
  valeurs[idx] = analogRead(A0);
  somme += valeurs[idx];
  idx = (idx + 1) % N;
  float tension = (somme / (float)N) * 3.3 / 4095.0;
  Serial.print(somme / N);
  Serial.print(F(" -> "));
  Serial.println(tension, 3);
  delay(100);
}

← Volver a la ficha