Datasheet

31
Danach wird noch der Bewegungssensor initialisiert. Auch diese Zeile muss in jedem Sketch
vorhanden sein, der Bewegungssensordaten nutzt.
void loop() {
myAccelerometer.get();
Die Funktion myAccelerometer.get() liest am Anfang jedes Durchlaufs der Prozedur
void loop() die Daten des Bewegungssensors aus und speichert sie in der Datenstruktur
myAccelerometer.
myAccelerometer.degreeX100(x, y, z);
Die Neigungswerte in den drei Achsen werden in den anfangs definierten Variablen x, y und z
gespeichert. Selbst wenn man, wie in diesem Projekt, nur einen der Werte benötigt, müssen
immer alle drei Variablen angelegt sein.
int q = map(x/100, -90, 90, 0, n);
Da die Neigungswerte in Hundertstel Grad gespeichert werden, können sie Werte zwischen
–9000 und 9000 annehmen. Die bereits im Projekt mit der Pegelanzeige vorgestellte Funktion
map() rechnet die Neigungswerte in eine Zahl zwischen 0 und n um, um die entsprechende
LED anzusteuern. das Ergebnis wird in der neuen Variablen
q gespeichert.
digitalWrite(leds[q], HIGH);
delay(100);
digitalWrite(leds[q], LOW);
Die durch den errechneten Neigungswert festgelegte LED wird eingeschaltet und nach 100 Milli-
sekunden wieder ausgeschaltet.
if (digitalRead(PUSH1)==LOW) {
Jetzt fragt das Programm ab, ob die Taste S1 gedrückt wurde. In diesem Fall soll eine Kalibrie-
rung des Bewegungssensors durchgeführt werden. Wegen des internen Pull-up-Widerstands wird
eine inverse Logik verwendet. Der entsprechende Eingang steht auf
LOW, wenn die Taste ge-
drückt wurde.
for (int i = 0; i < n; i++) {
digitalWrite(leds[i], HIGH);
}
Wurde die Taste gedrückt, werden als Hinweis für den Benutzer alle LEDs eingeschaltet.
myAccelerometer.calibrate();
Jetzt erfolgt die automatische Kalibrierung, die etwa eine Sekunde dauert. Solange die LEDs
leuchten, muss das LaunchPad ruhig auf einer horizontalen Unterlage liegen.
for (int i = 0; i < n; i++) {
digitalWrite(leds[i], LOW);
}