Projet 4 - Oscilloscope minimal
Présentation

Ce projet consiste à réaliser un oscilloscope pour visualiser des tensions variables sur l’écran d’un ordinateur. Il permettra de comprendre l’utilisation d’une entrée analogique pour mesurer une tension et aussi d’appréhender l’utilisation de données provenant d’une Arduino, mises en forme par un programme dans un ordinateur. La réalisation finale constituera un outil réellement utile pour l’amateur d’électronique, afin de pouvoir analyser des signaux divers.
Ce sera aussi l’occasion de comprendre la méthode des mesures de tension par l’Arduino et la méthode utilisée par les sorties PWM pour produire une tension variable.
1. Principe de fonctionnement
Le dispositif est constitué d’une Arduino équipée de pointes de touche, branchée à un ordinateur. À l’aide des pointes de touche, l’utilisateur peut mesurer une tension fluctuante allant jusqu’à 5 V. Cette tension est mesurée par l’Arduino à travers une entrée analogique, puis elle est transmise à l’ordinateur via une communication série. Finalement, dans l’ordinateur, un logiciel spécifique développé à l’aide de l’outil libre Processing met en forme ces mesures pour les rendre visibles graphiquement...
Matériel et outillage
Le matériel nécessaire se résume au strict minimum et représente un budget d’environ 25 euros.
1. Matériel
-
Une Arduino UNO.
-
Une paire de pointes de touche (de simples fils peuvent faire l’affaire).

Arduino UNO

Pointes de touche
2. Outillage
Pour réaliser ce projet, il sera nécessaire d’utiliser un ordinateur pour programmer l’Arduino et aussi pour visualiser les mesures.
Montage

Montage de l’oscilloscope
Le montage de l’oscilloscope est extrêmement simple. Il consiste simplement à relier les deux pointes de touche (ou simplement des fils) à l’Arduino, une à la masse (GND) et l’autre à l’entrée analogique 0.
1. Entrée analogique
L’Arduino Uno est pourvue de six entrées analogiques numérotées de 0 à 5. Celles-ci sont capables de mesurer une tension entre 0 et 5 V, et de renvoyer un nombre proportionnel entre 0 et 1 024, car il s’agit d’un convertisseur 10 bits. Cet organe important de l’Arduino convertit des valeurs analogiques (fluctuantes et continues, comme une température, une pression, une luminosité) en valeurs numériques (codées sous forme de suites de 0 et de 1) exploitables par les outils informatiques. Le convertisseur analogique/numérique (ADC ou Analog Digital Converter en anglais, CAN ou convertiseur analogique numérique en français) fait littéralement le lien entre le monde réel et le monde informatique, c’est pourquoi il est utile de bien comprendre comment il fonctionne.
L’ADC de la puce qui anime l’Arduino (c’est-à-dire la ATmega328P pour les Uno) utilise la méthode des approximations successives. Cette méthode s’apparente un peu à un jeu de devinette pour découvrir...
Programmation
La programmation de l’oscilloscope est aussi extrêmement simple : il suffit de lire l’entrée analogique et de transmettre la valeur à travers une communication série.
La mesure est récupérée sur l’ordinateur par un programme qui se charge de représenter graphiquement l’évolution de la tension dans le temps.

Principe de fonctionnement de l’oscilloscope
1. Mesures de l’entrée analogique par l’Arduino
Dans un premier temps, il s’agit de mesurer la valeur de l’entrée analogique 0 et de la transmettre via la communication série.
Fichier : _01_envoi_mesures
void setup() {
Serial.begin(9600);
}
void loop() {
int mesure = analogRead(0);
Serial.println(mesure);
}
La routine d’initialisation ouvre une communication série à la vitesse de 9 600 bauds, puis dans la boucle principale loop(), une variable mesure est créée pour stocker le résultat de la lecture de l’entrée analogique 0 (analogRead(0)). Celle-ci est ensuite transmise via la communication série.
Une fois ce code téléchargé, ouvrez le moniteur série dans l’IDE Arduino (Outils - Moniteur série) pour avoir un retour des mesures de l’entrée analogique.
En laissant la pointe reliée à l’entrée analogique 0 en contact avec rien, vous pouvez voir que la tension fluctue beaucoup. Ceci met en évidence le concept de ”potentiel flottant” : un conducteur relié à rien ne présente pas nécessairement une tension nulle.
À noter que la valeur transmise n’est pas la tension, mais la valeur retournée par la fonction analogRead(0), fluctuant entre 0 et 1 024. Cette valeur est un nombre codé sur 10 bits représentant une fraction de 5 V : 1 024 vaut 5 V, mais par exemple...
Pour aller plus loin
1. Améliorations possibles
Cet oscilloscope est déjà fort utile, mais il peut être amélioré de plusieurs manières.
Rendre l’oscilloscope portable
En ajoutant un écran TFT et une pile à l’Arduino, il est possible d’obtenir un oscilloscope portable autonome, à même d’effectuer des mesures dans diverses conditions sans avoir besoin d’ordinateur.
Améliorer le programme de visualisation
Le programme de visualisation utilisé dans ce projet est assez simple, mais il n’offre pas toutes les fonctionnalités d’un véritable oscilloscope (enregistrement du signal, utilisation d’un déclencheur, analyse FFT du signal, etc.). Il est intéressant d’implémenter toutes ces fonctions, et aussi de mesurer plusieurs signaux en même temps.
Mesurer des tensions plus élevées
L’Arduino est incapable de mesurer des tensions de plus de 5 V. Ajoutez un pont diviseur de tension, voire plusieurs ponts reliés à un sélecteur multiposition pour mesurer des tensions plus élevées.
Le courant électrique est potentiellement mortel à partir de 30 mA. On considère que les tensions inférieures à 50 V ne permettent pas la diffusion d’un tel courant à travers la peau. Mais prenez vos précautions et manipulez...