La tension numérisée est celle appliquée à l'entrée A0.
On s'assure qu’elle ne dépasse pas 5 V.
Sortie série
L’affichage de la sortie série peut se faire en utilisant le moniteur série de l’IDE arduino, accessible par CTRL+MAJ+M
Code à téléverser
/**
* can.ino
* Ce sketch affiche la valeur de la tension appliquée à l'entrée A0
* avec une résolution au choix pour le CAN et le CNA
*
* Ue −[CAN]−> canValue −[CNA]−> cnaVoltage
*/
// 1. Déclarations des constantes et variables globales
// Résolution du CAN au choix − N bits
const byte CAN_RES = 6;
// Nombre de niveaux de quantification = 2^CAN_RES
const int LEVELS = 1 << CAN_RES;
// Nombre de bits à supprimer pour passer de 10 à N bits
const byte SHIFT_BITS = 10 - CAN_RES;
// 2. Setup − Exécuté une seule fois
void setup() {
// Fixe la vitesse de communication entre arduino et le PC
Serial.begin(9600);
}
// 3. Loop − Variables recréées à chaque boucle
void loop() {
// Valeur numérique − CAN N bits
int canValue = analogRead(A0) >> SHIFT_BITS;
// Reconstruction de la tension − CNA N bits
float cnaVoltage = canValue * 5.0 / (LEVELS - 1);
// Afficahge des grandeurs
for (int i = CAN_RES - 1; i >= 0; i--) {
Serial.print(bitRead(canValue, i)); // Valeur bianire de canValue
}
Serial.print("\t");
Serial.print(canValue); // Valeur décimale de canValue
Serial.print("\t");
Serial.println(cnaVoltage, 2); // Tension restituée − 2 décimales
// On attend une seconde
delay(1000);
}
// 4. Fonctions − Variables locales