Nr.14 – Lagesensor

Lagesensor / Beschleunigungssensor ADXL335 (Gy-61) auslesen

adxl335

Aufgabe: Der Beschleunigungssensor ADXL335 soll mit Hilfe eines Arduino-Mikrocontrollers ausgelesen werden. Der Sensor wird hierbei verwendet um die Lage der X- und Y-Achse des Sensors zu ermitteln.

 

Material: Arduino / Beschleunigungssensor ADXL335 / 5 Stück female-male Kabel
Der Beschleunigungssensor hat neben der Spannungsversorgung mit 3 bis 5Volt drei analoge Ausgänge für die Beschleunigung in x, y bzw. z-Richtung. Die Ausgabe erfolgt in Form einer Spannung. Je nach Winkel des Sensors zur horizontalen Achse ist die Spannung für die entsprechende Achse höher oder niedriger. Diese drei Ausgänge können mit Arduino-Boards an den analogen Eingängen ausgelesen werden. Das macht es sehr einfach, die Daten des Beschleunigungssensors zu verarbeiten.
Foto vom Aufbau:

sdr
Hier der fertige Sketch zum Auslesen des Sensors mit Erklärungen:

 

int x=0; // Benennung von x als Variable für den Sensorwert der x-Achse
int y=0; // Benennung von y als Variable für den Sensorwert der y-Achse
int z=0; // Benennung von z als Variable für den Sensorwert der z-Achse

void setup() 
{
Serial.begin (9600); // Start der seriellen Verbindung für den serial monitor.
}

void loop() 
{
x=analogRead(A0); // Auslesen des Sensorwertes der x-Achse
y=analogRead(A1); // Auslesen des Sensorwertes der y-Achse
z=analogRead(A2); // Auslesen des Sensorwertes der z-Achse
Serial.print (x); // Ausgabe des Sensorwertes der x-Achse an den serial monitor
Serial.print ("    "); // Ausgabe von vier Leerzeichen
Serial.print (y); // Ausgabe des Sensorwertes der y-Achse an den serial monitor
Serial.print ("    "); // Ausgabe von vier Leerzeichen
Serial.println (z); // Ausgabe des Sensorwertes der z-Achse an den serial monitor und Zeilenumsprung durch den Befehl "Serial.println"
delay(100); // Wartezeit zwischen den einzelnen Ausgaben der Sensorwerte
}

 

Die reinen Messwerte des Sensors sollten in etwa so aussehen:

adxl335-werte

Die Werte für die X-Achse und Y-Achse liegen in horizontaler Lage also ca. bei dem Wert 335. Wenn man den Sensor nun entlang der Achsen kippt, werden diese Werte größer bzw. kleiner. Anhand dieser Veränderung lassen sich dann in Abhängigkeit der Werte andere Funktionen auslösen.