Outils pour utilisateurs

Outils du site


issue96:arduino

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue96:arduino [2015/05/11 22:21] d52frissue96:arduino [2015/05/15 16:08] (Version actuelle) auntiee
Ligne 17: Ligne 17:
 #define ECHO_PIN     3 #define ECHO_PIN     3
 #define MAX_DISTANCE 200** #define MAX_DISTANCE 200**
 +
 +Bon. Nous allons poursuivre le travail du mois dernier en ajoutant le sonar au circuit.
 +
 +À nouveau, ils sont bon marché, mais assez puissants et aussi, comme nous allons le voir, plutôt précis.
 +
 +Le capteur que j'ai a 5 picots. Certains n'en ont que quatre, car, même sur le mien, seulement quatre servent. Le 5 V est sur un picot, la masse sur un autre. Les deux autres sont pour l'écho et le seuil. Le mien est câblé comme sur le schéma.
 +
 +Avec le code vu le mois dernier (http://pastebin.com/UYQe58xB), nous pouvons maintenant mesurer une distance et l'afficher sur l'écran couleur.
 +
 +Il y a une vidéo du module en pleine action ici : https://www.youtube.com/watch?v=Tbg-qyeJM6U. Comme vous pouvez le constater avec la règle (dans la vidéo), c'est très précis !
 +
 +Permettez-moi de passer en revue quelques lignes de code avec mes notes et mes réflexions :
 +#include <NewPing.h>
 +
 +Ce qui concerne l'écho et le seuil peut être un peu délicat, mais, avec la nouvelle bibliothèque NewPing, les choses sont plus faciles :
 +https://code.google.com/p/arduino-new-ping/
 +
 +#define TRIGGER_PIN  5
 +#define ECHO_PIN     3
 +#define MAX_DISTANCE 200
  
 **The three defines are pretty self-explanatory. Three and five are the Arduino pins, and the maximum distance is in centimeters. Some estimations of these units have them hitting a target over 400cm away! **The three defines are pretty self-explanatory. Three and five are the Arduino pins, and the maximum distance is in centimeters. Some estimations of these units have them hitting a target over 400cm away!
Ligne 29: Ligne 49:
  
 Maybe this one caught you out last month:** Maybe this one caught you out last month:**
 +
 +Les trois define se comprennent d'eux-mêmes. Trois et cinq sont les picots de l'Arduino et la distance maximum est en centimètres. Certains tests de ces matériels les font détecter une cible à plus de 400 cm de distance !
 +
 +Dans la boucle principale, main loop() :
 +
 +L'entier uS est déclaré égal à la détection sonar en centimètres. Il existe aussi une commande sonar.ping_in() pour les pouces (inches).
 +int uS = sonar.ping_cm();
 +
 +Nous réglons la couleur (comme on l'a fait le mois dernier) mais ici, nous changeons de police :
 +myGLCD.setFont(SevenSegNumFont);
 +
 +La ligne ci-dessous vous a peut-être causé des soucis le mois dernier :
  
 **myGLCD.print(String(uS)+String(" "), LEFT, 24); **myGLCD.print(String(uS)+String(" "), LEFT, 24);
Ligne 41: Ligne 73:
  
 This prints the number in uS (but as a string) to the screen, puts a space after it, and prints it aligned left at line 24. Why a space? Well, when you run it, you’ll see that, without the space, it leaves the old number behind and you can end up going from 13 to 93. It actually means 9 but has only overwritten the 1 from the 13 leaving the three behind. It’s a bad botch, I admit, but that’s why I’m an amateur at this!** This prints the number in uS (but as a string) to the screen, puts a space after it, and prints it aligned left at line 24. Why a space? Well, when you run it, you’ll see that, without the space, it leaves the old number behind and you can end up going from 13 to 93. It actually means 9 but has only overwritten the 1 from the 13 leaving the three behind. It’s a bad botch, I admit, but that’s why I’m an amateur at this!**
 +
 +myGLCD.print(String(uS)+String(" "), LEFT, 24);
 +
 +La comprendre m'a demandé un peu de temps. Quand j'utilisais :
 +
 +myGLCD.print(uS, LEFT, 24);
 +
 +j'avais toutes sortes d'erreurs de chaînes de caractères. Il s'avère (apparemment) qu'il vaut mieux convertir l'entier en chaîne de caractères avant de l'imprimer ; aussi, la ligne est maintenant :
 +
 +myGLCD.print(String(uS)+String(" "), LEFT, 24);
 +
 +Ceci imprime à l'écran le nombre dans uS (mais comme une chaîne de caractères) suivi d'une espace, sur la ligne 24, avec alignement à gauche. Pourquoi une espace ? Eh bien, quand vous le lancerez, vous verrez que, sans l'espace, il abandonne la vieille valeur et vous pouvez finir par voir passer les nombres de 13 à 93. En fait, il veut dire 9, mais il n'a écrasé que le 1 du 13, en laissant le 3. J'ai fait une affreuse bévue, j'en conviens, mais c'est parce que je ne suis qu'un amateur dans ce domaine !
issue96/arduino.1431375692.txt.gz · Dernière modification : 2015/05/11 22:21 de d52fr