Schritt 7: Programmierung Ihres Kleidungsstücks | Beschleunigungsmesser lesen
Arduino Hardware verwendet
1 - LilyPad SimpleSnap
1 - LilyPad SimpleSnap Lochrasterplatinen
1 - LilyPad XBee (Breakout Boards)
1 - LilyPad XBee 1mW Trace Antenne - Serie 1
1 - LilyPad Programmierer
1 - LilyPad Beschleunigungsmesser ADXL335
Beschleunigungsmesser Code
Der Code unten aus dem Arduino Beschleunigungsmesser Beispiel angepasst wurde.
Diese konstanten beschreiben die Pins. Sie wird sich nicht ändern:
const Int Xpin = A5; / / x-Achse des Beschleunigungsmessers
const Int Ypin = A2; / / y-Achse
const Int Zpin = A3; / / z-Achse (nur bei 3-Achs Modellen)
Int SampleDelay = 500; / / Anzahl der Millisekunden zwischen Lesungen
void setup()
{
/ / Initialisierung der seriellen Kommunikation:
Serial.Begin(9600);
Sicherstellen Sie, dass die Analog-Digital-Wandler die Referenzspannung aus nimmt
AREF-pin
PinMode (Xpin, Eingabe);
PinMode (Ypin, Eingabe);
PinMode (Zpin, Eingabe);
}
void loop()
{
Float oldy = 0;
Float-Schwelle = 0;
Int X = analogRead(xpin);
Fügen Sie eine kleine Verzögerung zwischen Pin Lesungen. Ich habe gelesen, dass Sie sollten
tun Sie dies aber noch nicht getestet, die Bedeutung
Delay(1);
Int y = analogRead(ypin);
Fügen Sie eine kleine Verzögerung zwischen Pin Lesungen. Ich habe gelesen, dass Sie dies tun sollten, aber noch nicht, die Bedeutung getestet
Delay(1);
Int Z = analogRead(zpin);
/ * Zero_G ist die Lesung, die wir erwarten, vom Sensor dass erkennt es keine Beschleunigung.
Subtrahieren Sie dieser Wert von der Sensorwert zu einer verschobenen Sensorwert. */
Float Zero_G = 512;
/ * Skala ist die Anzahl der Einheiten erwarten wir die Sensorwerte zu ändern, wenn die
Beschleunigung entlang einer Achse Änderungen von 1G. Teilen Sie den verschobenen Sensor zu lesen
Skala zur Beschleunigung in Gs zu erhalten. * /
schweben Sie Skala = 102,3;
/*Serial.Print (((Float) x - Zero_G) / Skala);
Serial.Print("\t"); */
für dieses Projekt wir drucken die 'y'-Werte hilft den Schwellenwert bestimmen:
Schwelle = oldy - ((Float) y - Zero_G) / skalieren;
Serial.Print ("y =");
Serial.Print (((Float) y - Zero_G) / Skala);
Serial.Print("; Schwelle = ");
Serial.println(Threshold);
/ * Serial.print (((Float) Z - Zero_G) / Skala);
Serial.Print("\n"); */
Wenn (Schwelle > 1.3) / / Wert der Grenzbetrag kann sich ändern, müssen Sie zu testen und festzustellen, was Ihre Schwelle
Schritte ++;
Serial.Print ("Schritte =");
Serial.Print(Steps);
Verzögerungszeit bis zum nächsten Lesung:
Delay(sampleDelay);
}