pour commencer cette nouvelle année, voici un nouveau post autour du système Arduino.
cette fois-ci je vais vous présenter un module complémentaire qu'il est très facile de mettre en oeuvre, un accéléromètre 3 axes.
Ce module a été acheté chez Lextronic sour la référence SEN-09269.
http://www.lextronic.fr/P5722-module-ac ... -axes.html
Ce module basé sur l'accéléromètre d'Analog Device, est mis en oeuvre et directement exploitable par la société Sparkfun. Vous trouverez toutes les données techniques sur le lien ci-dessous
https://www.sparkfun.com/products/9269
Comme le montre les données techniques, son alimentation est normalement de 3,3V. Après avoir consulter certains forums, je me suis permis de l'alimenter en 5V pour avoir une meilleure sensibilité. Libre à vous de faire ce que vous voulez.
D'une surface inférieure à 2 cm² sa mise en oeuvre est extrêmement simple puisque dans cet exemple, seulement trois fil sont nécessaires, +vcc, la masse, le signal (celui de coordonnée X).
C'est la carte Arduino elle même qui va alimenter la capteur qui , elle-même sera alimentée par le câble USB.
Pour mettre en oeuvre la carte Arduino, le programme n'a besoin que de 6 lignes actives, on ne peut pas dire que c'est beaucoup. Pour visualiser les informations, il suffit d'utiliser le terminal série du logiciel de programmation.
C'est très pratique pour le débogage, et personnellement je l'utilise pour voir les valeurs de variables et ainsi déterminer les seuils de déclenchement par exemple.
Voyons de plus prêt le programme, tout ce qui est précédé de "//" ne sert que de commentaire.
Définition du programme :
Pour cette partie, aucune ligne active, ce n'est que du commentaire.
Code : Tout sélectionner
// --- Programme Arduino ---
// par Laurent H. - 04/08/2012
// --- Le programme ---
// adxl335 --> Arduino --> Terminal serie
// --- Fonctionnalités ---
// Utilise 1 entree analog pour adxl335
// Utilise le terminal série pour retour information
// --- Connexions du circuit ---
// ADXL335 sur A0 Code : Tout sélectionner
//**************** Entête déclarative *******
// --- Librairies utilisées ---
// --- Déclaration des constantes ---
// --- constantes des broches ---
const int VA0 = 0;// declaration constante de broche adxl335
// --- Déclaration des variables globales ---
int ANL_ADXL = 0; // variable pour angle adxl
// --- Déclaration des objets ---La variable ANL_ADXL est déclarée pour "capturer" l'angle du capteur.
Code d'initialisation :
Code : Tout sélectionner
//**************** FONCTION SETUP = Code d'initialisation *****
// Exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --------Attachement des objets--------
// ------- Broches en entrée -------
// ------- Broches en sortie -------
// ------- Activation d'état initial des sorties numériques -------
// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------
// ------- Activation du terminal serie ------
Serial.begin(9600);
} // fin de la fonction setup()
// ********************************************************************************Boucle du programme principal :
Code : Tout sélectionner
void loop(){ // debut de la fonction loop()
// --- Programme principal ---
// acquisition conversion analogique numérique (100µs env.)
//sur broche analogique indiquée - résultat 10bits (0-1023)
ANL_ADXL = analogRead(VA0);// capture de la variable mesuré sur l'adxl335
Serial.print("Valeur brute = ");// Affichage de l'intitulé "Valeur brute"
Serial.println(ANL_ADXL);// Affichage de la variable mesurée
delay(2000); // temps entre chaque affichage de 2 secondes
}// fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
// --- Fin programme ---- la capture de l'angle dans la variable.
- Affichage sur le terminal série "Valeur brute"
- Affichage de la valeur de la variable.
- Temporisation de 2 seconde
Et voilà... le programme est finie et on recommence...
Comme on peut le voir sur le terminal série, trois valeurs "sortent du lot" :
Capteur à 0° = 512
Capteur à -90° = 395
Capteur à +90° = 623
Voilà pour cette petite présentation, maintenant il faut faire évoluer le programme pour y intégrer un servomoteur et voir ce que ça donne au niveau sensibilité.
Vous pouvez retrouver un article complet de ce module sur mon site :
http://diopter.fr/index.php/technique/s ... et-arduino
Laurent


