Zum Inhalt springen
Arduino Accelerometer

Accelerometer

    Das Accelerometer ADXL335 (Produkt bei Amazon) ist als Breakout Board für die Verwendung mit Arduino perfekt geeignet. Es verfügt über den 3-Achsen Accelerometer-IC ADXL335 von Analog Devices. Es hat eine extrem geringe Stromaufnahme (320uA) und einen Messbereich von +/- 3g.

    Die drei Achsen lassen sich einfach an die analogen Inputs des Arduinos anschließen und auslesen.

    Achtung! Das Board hat eine Betriebsspannung von 1,8 V bis 3,6 V. Es muss also an den 3,3V-Pin des Arduinos angeschlossen werden, da es sonst zerstört wird.


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    Schaltung

    In der Schaltung ist das Accelerometer ADXL335 mit dem 3,3V und dem GND-Pin des Arduinos verbunden. Die drei Achsen sind jeweils an drei analogen Inputs angeschlossen.

    Arduino Accelerometer Einfach
    Grafik mit Fritzing gemacht

    Code

    Im Code-Beispiel werden die drei ausgelesenen Werte einfach per serieller Schnittstelle an den Computer gesendet. Um die anzuzeigen, muss der serielle Monitor in der Arduino-Software eingeschaltet werden (Werkzeuge > Serieller Monitor).

    int accZPin=0;
    int accYPin=1;
    int accXPin=2;
    
    void setup(){
      Serial.begin(9600);
    }
    
    void loop(){
      Serial.print(analogRead(accZPin));
      Serial.print("\t");
      Serial.print(analogRead(accYPin));
      Serial.print("\t");
      Serial.println(analogRead(accXPin));
      delay(10);
    }
    

    Accelerometer Projekt Beispiel

    Bei diesem Beispiel handelt es sich um einen Sabotage-Alarm. Er ist ein Beispiel aus der Fritzing-Software.

    In der Schaltung sind neben dem Accelerometer drei LEDs, ein Taster und ein Potentiometer verbaut.

    Arduino Accelerometer Alarm
    Grafik mit Fritzing gemacht

    Code

    Im Setup werden die drei Achsen ausgelesen. Diese Werte dienen der Kalibrierung beim Programmstart. Das Potentiometer dient der Einstellung der Empfindlichkeit des Alarmsystems. Die Funktion senseAcceleration() prüft ständig den Beschleunigungssensor. Wird der Alarm ausgelöst, blinken die beiden viereckigen LEDs abwechselnd. Der Alarm kann mit dem Taster wieder abgeschaltet werden.

    int myState=0;
    int greenLedPin=11;
    int redLedPin=7;
    int blueLedPin=3;
    int buttonPin=2;
    int potPin=3;
    int accZPin=0;
    int accYPin=1;
    int accXPin=2;
    
    int startAccZ;
    int startAccY;
    int startAccX;
    
    void setup(){
      pinMode(greenLedPin,OUTPUT);
      pinMode(redLedPin,OUTPUT);
      pinMode(blueLedPin,OUTPUT);
      pinMode(buttonPin,INPUT);
      startAccZ=analogRead(accZPin);
      startAccY=analogRead(accYPin);
      startAccX=analogRead(accXPin);
    }
    
    void alertBlinking(){
      digitalWrite(redLedPin,HIGH);
      delay(50);
      digitalWrite(redLedPin,LOW);
      delay(100);
      digitalWrite(blueLedPin,HIGH);
      delay(50);
      digitalWrite(blueLedPin,LOW); 
      delay(100);  
    }
    
    boolean senseAcceleration(int myPotVal){
      boolean myReturn=false;
      myPotVal=map(myPotVal,0,1023,0,10);
      if (analogRead(accXPin)>startAccX+myPotVal) myReturn=true;
      if (analogRead(accYPin)>startAccY+myPotVal) myReturn=true;
      if (analogRead(accZPin)>startAccZ+myPotVal) myReturn=true;
      return myReturn;
    }
    
    void loop(){
      //alertBlinking();
      switch (myState){
      case 0: //idle
        if (senseAcceleration(analogRead(potPin))==true) {
          digitalWrite(greenLedPin,LOW);
          myState=1;
        } else {
          digitalWrite(greenLedPin,HIGH);    
        };
        break;
      case 1: // alert
        alertBlinking();
        if (digitalRead(buttonPin)==HIGH){
          myState=0;
        }
        break;
      }
      delay(10);
    }
    

    Anwendung

    Diese Art der Low-Power-Accelerometer werden z.B. in Mobiltelefonen verwendet. Sie werden darin genutzt, um die Ausrichtung von Fotos zu ändern, wenn das Gerät gedreht wird.

    Woher bekomme ich so ein tolles Gerät?
    Am liebsten natürlich über meinen Partner-Amazon:
    Beschleunigungssensor bei Amazon

    Ansonsten natürlich bei den üblichen Verdächtigen: Sparkfun.com, Adafruit, Watterott, EXP-Tech, etc. …


    Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

    • Die beliebtesten Arduino-Projekte von StartHardware
    • Inklusive Schaltplan, Beschreibung und Code
    • Arduino-Schnellstart-Kapitel
    • Kompakter Programmierkurs