Algorithmique & Conversion CAN
1. 🔍 Problématique & Analogie Concrète
Comment notre smartphone, un ordinateur ou une carte Arduino peuvent-ils mesurer une grandeur physique réelle (comme une température, une pression sonore ou une vitesse) alors qu'un microprocesseur ne sait manipuler que des informations logiques sous forme de bits (0 et 1) ? Imaginez prendre des photographies à intervalles réguliers d'un coureur pour reconstituer sa course (c'est l'échantillonnage) et dessiner son trajet en utilisant un quadrillage de pixels de couleurs limitées (c'est la quantification). Le Convertisseur Analogique-Numérique (CAN) est la passerelle matérielle indispensable qui traduit les grandeurs physiques du monde analogique (qui sont continues) en valeurs numériques discrètes compréhensibles par les puces électroniques.
2. 📖 Cours Détaillé & Concepts Fondamentaux
💡 Définition : Structure d'un Programme Embarqué (C/C++ Arduino)
La programmation des microcontrôleurs obéit à une structure événementielle fixe composée de deux fonctions fondamentales :
• void setup() : Exécutée une seule fois à la mise sous tension de la carte. Elle sert à configurer les registres d'entrées/sorties (ex: initialiser une broche en entrée ou sortie via pinMode()), lancer la communication série (Serial.begin()) ou activer des bibliothèques.
• void loop() : Exécutée immédiatement après et de façon répétitive sous la forme d'une boucle infinie. C'est ici que l'on lit l'état des capteurs, exécute l'algorithme de contrôle et pilote les actionneurs.
⚙️ Loi : Échantillonnage Temporel & Théorème de Shannon
Pour numériser un signal analogique sans perdre d'information sur son évolution, il faut prélever des mesures à intervalles réguliers de durée (période d'échantillonnage, exprimée en secondes).
• **Théorème de Shannon (Nyquist-Shannon) :** Pour pouvoir reconstituer parfaitement le signal analogique d'origine sans distorsion, la fréquence d'échantillonnage doit être strictement supérieure à deux fois la fréquence maximale contenue dans le signal d'entrée :
Si , il y a un phénomène de repliement de spectre (aliasing) : le signal numérisé est faussé et impossible à filtrer.
💡 Définition : Quantification et Résolution (Le Quantum )
Le convertisseur analogique-numérique (CAN) possède une résolution de bits. Il convertit la plage de tension utile (la dynamique s'étendant de à ) en un nombre fini de valeurs possibles (). Le quantum (aussi appelé pas de résolution) est la plus petite tension analogique détectable par le CAN :
• : Quantum exprimé en Volts ().
• : Plage de tension de référence (dynamique).
• : Nombre d'échelons de numérisation.
Pour une tension analogique d'entrée , le code numérique entier généré par le CAN est la partie entière (E) du rapport :
3. 🧮 Méthode de Résolution & Exemples Rédigés
Exemple de numérisation d'une tension de capteur :
Une carte Arduino Uno possède un CAN de résolution . Les tensions de référence internes sont et (soit une dynamique de ). Un capteur analogique délivre une tension à l'entrée A0.
Calculons le quantum et le code numérique généré.
• Étape 1 : Calcul du nombre d'échelons du CAN • Étape 2 : Calcul du quantum du convertisseur • Étape 3 : Calcul du code décimal numérique de sortie Le processeur recevra la valeur décimale , ce qui correspond à la chaîne binaire codée sur 10 bits.
4. 🚀 Ce qu'il faut absolument retenir (Points Clés)
- Structure logicielle :
setup()configure les broches au démarrage,loop()exécute l'algorithme principal en boucle infinie. - Théorème de Shannon : Pour éviter la perte d'informations, la fréquence de numérisation doit être au moins double de la fréquence utile max du signal ().
- Le pas élémentaire (quantum) : Formule . Plus la résolution (le nombre de bits) est grande, plus le quantum est petit, augmentant la précision de la mesure.
- La valeur du code : C'est toujours un nombre entier naturel compris entre et (de 0 à 1023 pour un convertisseur 10 bits).