🛠 Entrées analogiques du Teensy 4.1 : 18 broches, 2 ADC, 0-3,3 V fixes et zéro DAC
Objetivos
Dominar la parte analógica del Teensy 4.1: 18 entradas repartidas en 2 ADC, resolución por defecto de 10 bits, rango fijo en 0-3,3 V. Tres desilusiones documentadas que conviene conocer antes de cablear: analogReference no tiene ningún efecto, los 12 bits de hardware no son explotables en la práctica («solo se pueden usar unos 10 bits debido al ruido», página del producto), y la placa no tiene ningún DAC — a diferencia de los Teensy 3.5/3.6, la salida de audio analógica pasa por I2S, el pin MQS o un kit PT8211. Como compensación, incorpora 4 comparadores analógicos.
Material
- 1 Teensy 4.1 + cable micro-USB de datos
- 1 potenciómetro de 10 kΩ (3,3 V / A0 / GND) — ¡nunca 5 V en el pin!
- Opcional: una resistencia y una LDR para un divisor de tensión luminoso
Los hechos que importan
- Por defecto,
analogReaddevuelve 0..1023; el rango de hardware es exactamente de 0 a 3,3 V, sin referencia externa seleccionable. - Los pines analógicos no toleran 5 V: es obligatorio un divisor antes de una señal de 5 V.
- No hay PGA ni detección capacitiva integrada (ausentes en las especificaciones técnicas).
- Las escrituras en EEPROM pausan bruscamente la ejecución desde el flash: si registras mediciones analógicas con
EEPROM.update, espera microinterrupciones de temporización.
Código completo
const uint8_t AIN = 14; // A0 sur Teensy
void setup {
Serial.begin(9600);
while (!Serial && millis < 3000); // laisser monter l'USB série
analogReadResolution(10); // 10 bits : ce qui sert vraiment
}
void loop {
long somme = 0;
for (int i = 0; i < 64; i++) somme += analogRead(AIN);
int moyenne = somme / 64; // suréchantillonnage anti-bruit
float volts = moyenne * 3.3f / 1023.0f;
Serial.printf("A0 = %d (%.3f V)\n", moyenne, volts);
delay(250);
}
Verificación esperada
Al girar el potenciómetro, la tensión mostrada sigue suavemente de 0,000 → 3,300 V. El promedio sobre 64 muestras estabiliza las dos últimas cifras: es la contrapartida del suelo de ruido documentado por PJRC. Para ir más allá (disparo preciso, sobremuestreo de hardware), la biblioteca ADC de terceros de Pedro Pereira es la referencia comunitaria, pero los 10 bits útiles siguen siendo el techo físico.
Errores frecuentes
- Llamar a
analogReference(INTERNAL)u otra opción: la función existe para compatibilidad con Arduino pero no hace nada en el 4.1 — el rango es fijo por hardware. - Apuntar a 4096 con
analogReadResolution(12)y sorprenderse del ruido: los 12 bits están en el papel, no en el terreno. - Alimentar un sensor a 5 V e inyectar su salida directamente: es obligatoria una traducción de nivel.
- Comparar con un Teensy 3.6 buscando
analogWriteDAC: la salida analógica verdadera de 12 bits ha desaparecido; para audio, consulta el tutorial de Audio/I2S.
Otros tutoriales para esta placa
- Premiers pas sur le Teensy 4.1 : Teensyduino, Teensy Loader et premier Blink
- GPIO et PWM sur le Teensy 4.1 : 55 broches en 3,3 V, ni 5 V tolérées ni traîne
- Logger sur carte SD via le port SDIO natif du Teensy 4.1
- Serveur web embarqué : l'Ethernet natif 10/100 du Teensy 4.1 (DP83825)
- Boîte à rythmes USB MIDI : classes MIDI, MIDIx16 et port hôte USBHost_t36
- Ingénierie mémoire du Teensy 4.1 : TCM, DMAMEM, EXTMEM, flash QSPI et EEPROM
Ejemplos de código para esta placa
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino