🛠 Entrées analogiques du Teensy 4.1 : 18 broches, 2 ADC, 0-3,3 V fixes et zéro DAC
Objectifs
Maîtriser l'analogique du Teensy 4.1 : 18 entrées réparties sur 2 ADC, résolution par défaut 10 bits, plage figée à 0-3,3 V. Trois désillusions documentées à connaître avant de câbler : analogReference n'a aucun effet, le 12 bits matériel n'est pas exploitable en pratique (« seuls 10 bits environ sont utilisables à cause du bruit », page produit), et la carte n'a aucun DAC — contrairement aux Teensy 3.5/3.6, la sortie audio analogique passe par l'I2S, la broche MQS ou un kit PT8211. En compensation, 4 comparateurs analogiques sont embarqués.
Matériel
- 1 Teensy 4.1 + câble micro-USB de données
- 1 potentiomètre 10 kΩ (3,3 V / A0 / GND) — jamais 5 V sur la broche !
- Optionnel : une résistance et une LDR pour un diviseur de tension lumineux
Les faits qui comptent
- Par défaut
analogReadrenvoie 0..1023 ; la plage matérielle est 0 à 3,3 V exactement, sans référence externe sélectionnable. - Les broches analogiques ne tolèrent pas 5 V : un diviseur est obligatoire en amont d'un signal 5 V.
- Il n'y a pas de PGA ni de détection capacitive embarquée (absents des specs techniques).
- Les écritures EEPROM font brutalement pause l'exécution depuis le flash : si vous loggez des mesures analogiques avec
EEPROM.update, attendez-vous à de micro-interruptions de timing.
Code complet
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);
}
Vérification attendue
En tournant le potentiomètre, la tension affichée suit doucement 0,000 → 3,300 V. La moyenne sur 64 échantillons stabilise les deux derniers chiffres : c'est la contrepartie du plancher de bruit documenté par PJRC. Pour aller plus loin (déclenchement précis, oversampling matériel), la bibliothèque ADC tierce de Pedro Pereira est la référence communautaire, mais les 10 bits utiles restent le plafond physique.
Erreurs fréquentes
- Appeler
analogReference(INTERNAL)ou autre : la fonction existe pour la compatibilité Arduino mais ne fait rien sur le 4.1 — la plage est matériellement fixe. - Viser 4096 avec
analogReadResolution(12)et s'étonner du bruit : le 12 bits est là sur le papier, pas sur le terrain. - Alimenter un capteur en 5 V et injecter sa sortie directement : traduction de niveau obligatoire.
- Comparer avec un Teensy 3.6 en cherchant
analogWriteDAC : la sortie analogique true 12 bits a disparu ; pour de l'audio, voyez le tutoriel Audio/I2S.
Autres tutoriels pour cette carte
- 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
Exemples de code pour cette carte
clignotante.inoArduinotouche-capacitive.inoArduinoanalogique-12-bits.inoArduinomidi-piano.inoArduinopwm-respiration.inoArduinoservo-angle.inoArduino