Page 90 - arduino_Neat
P. 90
Comme expliqué ci-dessus, le montage se résume à deux fils connectés à l'Arduino, qui vont
servir à mesurer un autre montage soumis à une tension variable. Un des fils sera connecté au
pin « GND », qui correspond au 0 V. Le second sera connecté au pin Analog in 0. Les
extrémités libres vont servir à faire les contacts avec le circuit à mésurer.
PREMIÈRE ÉTAPE
Copiez le programme suivant dans Arduino.
/*
Ce programme consiste simplement à mesurer l'entrée analogique 0, et à transmettre le résultat
via une communication série.
Il ressemble beaucoup au programme décrit dans la première étape du projet "la petite bête qui
a peur".
*/
//déclaration des variables
//stockage du numéro de Pin où sera branché l'entrée de la mesure
int PinDeMesure=0;
//conteneur pour stocker la mesure
int tension=0;
// délai entre deux mesures
int periodeDeMesure=20;
void setup(){ // Initialisation du programme
// établir la connection série à 19200 baud
Serial.begin(19200);
// définir le PinDeMesure comme une entrée
pinMode(PinDeMesure, INPUT);
}
void loop() { //boucle principale
tension = analogRead(PinDeMesure); // Lit la tension du pin DeMesure et stocke le résultat
dans la variable tension
Serial.println(tension); // communique la valeur de la tension au port série
delay(periodeDeMesure); //attendre jusqu'à la prochaine mesure
}
Après avoir compilé et téléchargé ce programme dans la carte Arduino, en ouvrant le moniteur
sériel, on pourra voir apparaître les mesures successives défiler. Les valeurs varient entre 0 et
1023 quand la tension aux pointes de touches varie entre 0 et 5 V.
DEUXIÈME ÉTAPE
Après avoir téléchargé et installé Processing, copiez le programme suivant dans Processing.
Vous ne devriez être pas trop dépaysé par l'interface, car Processing et Arduino sont des
programmes frères.
/*
oscilloscope minimaliste avec un arduino
récupère les valeurs via une liaison serie
*/
import processing.serial.*; // importation de la librairie de communication serie
//variables
Serial maConnection; // Crée un objet de communication série
int tension=0; // variable ou sera stockée la valeur de la tension
//affichage
int fenetreTemps=12000; // temps pour parcourir la largeur de l'écran en millisecondes
int x=0;
int y=0;
void setup() {
size(650, 400); // taille de l'ecran
String NomDuPort = Serial.list()[0]; // récupère la première interface serie trouvée
println("connection a "+NomDuPort);
maConnection = new Serial(this, NomDuPort, 19200); // création de la connexion série
background(255); // fond d'écran blanc
smooth(); // lisser les dessins
strokeWeight(2); // largeur de trait
stroke(40); // couleur du trait gris
}
void draw() { //boucle de dessin principale
//rien ne s'y passe, tout est géré dans la fonction serialEvent
}
void serialEvent (Serial maConnection) { // si des données arrivent par la connexion série
String retour=maConnection.readStringUntil('\n'); // lit la donnée jusqu'à la fin de ligne
if (retour != null) { //si le retour n'est pas vide
90