Étape 7: Programmation votre vêtement | Lecture de l’accéléromètre
Arduino matériel utilisé
1 - LilyPad SimpleSnap
1 - LilyPad SimpleSnap Protoboard
1 - LilyPad XBee (planches en petits groupes)
1 - LilyPad XBee 1mW Trace antenne - série 1
1 - LilyPad programmeur
1 - accéléromètre LilyPad ADXL335
Code de l’accéléromètre
Le code ci-dessous est une adaptation de l’exemple de l’accéléromètre de l’Arduino.
ces constantes décrivent les broches. Ils ne changent pas :
const int XPSous = A5 ; / / axe x de l’accéléromètre
const int ypin = A2 ; / / axe y
const int zpin = A3 ; / / z-AXIS (uniquement sur les modèles 3 axes)
int sampleDelay = 500 ; / / nombre de millisecondes entre les lectures
void setup()
{
/ / initialiser la communication série :
Serial.Begin(9600) ;
Assurez-vous que le convertisseur analogique-numérique prend sa tension de référence de
la broche AREF
pinMode (xpin, entrée) ;
pinMode (ypin, entrée) ;
pinMode (zpin, entrée) ;
}
void loop()
{
flotteur oldy = 0 ;
seuil de flotteur = 0 ;
int x = analogRead(xpin) ;
Ajouter un petit délai entre la lecture de code pin. J’ai lu que vous devriez
pour ce faire, mais n’ont pas testé l’importance
Delay(1) ;
int y = analogRead(ypin) ;
Ajouter un petit délai entre la lecture de code pin. J’ai lu que vous devriez faire ceci mais n’ont pas testé l’importance
Delay(1) ;
int z = analogRead(zpin) ;
/ * zero_G est la lecture que nous attendons du capteur lorsqu’il ne détecte aucun accélération.
Soustraire cette valeur du capteur lire pour obtenir un capteur décalé de lecture. */
float zero_G = 512 ;
/ * échelle est le nombre d’unités, nous attendons la lecture de la sonde à changer lorsque le
accélération suivant un changement d’axe de 1G. Diviser le capteur décalé par la lecture
échelle pour obtenir l’accélération en Gs. * /
float scale = 102,3 ;
/*Serial.Print (((float) x - zero_G) / échelle) ;
Serial.Print("\t") ; */
pour ce projet, nous imprimons les valeurs « y », cela aidera à déterminer le seuil :
seuil = oldy - ((float) y - zero_G) / échelle ;
Serial.Print ("y =") ;
Serial.Print (((float) y - zero_G) / échelle) ;
Serial.Print("; seuil = ") ;
Serial.println(THRESHOLD) ;
/ * Serial.print (((float) z - zero_G) / échelle) ;
Serial.Print("\n") ; */
Si (seuil > 1.3) / / la valeur de votre seuil peut changer, vous avez besoin tester et déterminer ce que sera votre seuil de
mesures ++ ;
Serial.Print (« étapes = ") ;
Serial.Print(Steps) ;
délai avant la prochaine lecture :
Delay(sampleDelay) ;
}