Ich zeige dir heute, wie du mit einem Arduino ADXL335 Accelerometer einen intelligenten Bewegungsalarm baust, der bei Erschütterungen sofort reagiert und visuell warnt. Du lernst dabei, wie du einen 3-Achsen-Beschleunigungssensor ausliest und für praktische Anwendungen nutzt.
Ein Beschleunigungssensor (Accelerometer) misst Bewegungen und Lageänderungen in alle Raumrichtungen. Der ADXL335 ist perfekt für Einsteiger geeignet und ermöglicht spannende Projekte: vom einfachen Bewegungsalarm über Neigungssensoren bis hin zu Lage-Detektoren für interaktive Installationen. Ich führe dich Schritt für Schritt durch den Aufbau – von der einfachen Testschaltung bis zum vollständigen Alarmsystem mit einstellbarer Empfindlichkeit.
Materialliste: Das brauchst du für dein Projekt
- Arduino Uno oder kompatibles Board – Auf Amazon ansehen
- ADXL335 Accelerometer Breakout Board – Auf Amazon ansehen
- LED Set (grün, rot, blau) – Auf Amazon ansehen
- Widerstände 220 Ohm (3 Stück für LEDs) – Auf Amazon ansehen
- Taster / Druckknopf – Auf Amazon ansehen
- Potentiometer 10kΩ – Auf Amazon ansehen
- Breadboard – Auf Amazon ansehen
- Jumper Kabel Set – Auf Amazon ansehen
Optional für Erweiterungen:
- Gehäuse für den fertigen Alarm
- Externe Stromversorgung (Batterie oder Netzteil)
- Piezo-Summer für akustischen Alarm
Technische Grundlagen: So funktioniert der ADXL335
Der ADXL335 Beschleunigungssensor im Detail
Der Arduino ADXL335 Accelerometer ist ein 3-Achsen-Sensor, der Beschleunigungen in alle Raumrichtungen (X, Y, Z) erfasst. Er arbeitet mit kapazitiver MEMS-Technologie und liefert analoge Ausgangssignale, die du direkt mit den Arduino-Analog-Pins auslesen kannst.
Wichtige Eigenschaften:
- Messbereich: ±3g (dreifache Erdbeschleunigung)
- Ausgangssignal: Analog, 0-1023 beim Arduino (bei 5V Referenz)
- Ruhewerte: Liegen typisch bei ca. 512 (Mitte des Analogbereichs)
- Betriebsspannung: 3.3V (wichtig: nicht 5V verwenden!)
- Empfindlichkeit: Etwa 300mV/g
Funktionsprinzip unseres Bewegungsalarms
Ich habe das System so konzipiert, dass es in zwei Zuständen arbeitet:
1. Initialisierung: Beim Start speichert der Arduino die Ruhewerte aller drei Achsen. Diese dienen als Referenz.
2. Überwachungsmodus (State 0):
- Die grüne LED leuchtet (System bereit)
- Kontinuierlicher Vergleich der aktuellen Werte mit den Startwerten
- Das Potentiometer regelt die Empfindlichkeit (0-10 Einheiten Abweichung)
3. Alarmzustand (State 1):
- Bei Überschreitung des Schwellwerts: Alarm wird ausgelöst
- Rote und blaue LED blinken abwechselnd
- Grüne LED erlischt
4. Reset: Mit dem Taster beendest du den Alarm und kehrst zum Überwachungsmodus zurück.
Verkabelung: Vom Test zur fertigen Schaltung
Schritt 1: Einfache Testschaltung für den Sensor
Ich empfehle dir, zunächst nur den Sensor anzuschließen und die Rohwerte zu testen. So verstehst du, wie der ADXL335 reagiert.

ADXL335 an Arduino anschließen:
| ADXL335 Pin | Arduino Pin | Hinweis |
|---|---|---|
| VCC | 3.3V | Wichtig: NICHT 5V! |
| GND | GND | Masse |
| X-Achse | A2 | Analoger Eingang |
| Y-Achse | A1 | Analoger Eingang |
| Z-Achse | A0 | Analoger Eingang |
Wichtiger Hinweis: Der ADXL335 darf nur mit 3.3V betrieben werden! Bei 5V riskierst du eine Beschädigung des Sensors. Verwende also unbedingt den 3.3V-Ausgang deines Arduino.
Mit dieser einfachen Schaltung kannst du zunächst die Sensorwerte im Serial Monitor beobachten und ein Gefühl für die Messwerte bekommen.
Schritt 2: Vollständiger Bewegungsalarm mit LEDs und Steuerung
Jetzt erweitern wir die Schaltung um die visuellen Indikatoren und Bedienelemente.

LEDs mit Vorwiderständen (je 220Ω):
| LED-Farbe | Arduino Pin | Funktion |
|---|---|---|
| Grün | Pin 11 | Statusanzeige (System bereit) |
| Rot | Pin 7 | Alarmanzeige |
| Blau | Pin 3 | Alarmanzeige |
Jede LED benötigt einen Vorwiderstand! Schließe die LEDs so an:
- Längeres Bein (Anode) → über 220Ω Widerstand → Arduino Pin
- Kürzeres Bein (Kathode) → GND
Taster anschließen:
- Ein Pin des Tasters → Pin 2
- Anderer Pin des Tasters → GND
- (Optional: 10kΩ Pull-Up-Widerstand zwischen Pin 2 und 5V, wenn kein interner Pull-Up verwendet wird)
Potentiometer (Empfindlichkeitsregler):
- Linker Pin → GND
- Mittlerer Pin (Schleifer) → Analog Pin A3
- Rechter Pin → 5V
Mit dem Potentiometer regelst du später die Empfindlichkeit des Alarms – von sehr sensibel bis zu relativ träge.
Der Code: Vom Test zum fertigen Alarmsystem
Code Teil 1: Sensor testen und verstehen
Bevor du das komplette Alarmsystem baust, empfehle ich dir diesen einfachen Testcode. Er gibt die Rohwerte des Arduino ADXL335 Accelerometer im Serial Monitor aus:
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);
}
So verwendest du den Testcode:
- Lade den Code auf deinen Arduino hoch
- Öffne den Serial Monitor (Werkzeuge → Serieller Monitor oder Strg+Umschalt+M)
- Stelle die Baudrate auf 9600 ein
- Bewege und neige den Sensor in verschiedene Richtungen
- Beobachte, wie sich die Werte ändern
- Notiere dir die Ruhewerte bei unbewegtem Sensor
Du siehst drei Werte (durch Tabs getrennt): Z-Achse, Y-Achse und X-Achse. Typischerweise liegen die Ruhewerte zwischen 300 und 700, je nach Ausrichtung des Sensors zur Erdanziehung.
Code Teil 2: Kompletter Bewegungsalarm mit State-Machine
Jetzt kommt der vollständige Code für dein Alarmsystem. Ich habe eine State-Machine (Zustandsautomat) implementiert, die zwischen Überwachung und Alarm umschaltet:
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);
}
Code-Erklärung: So funktioniert das Programm
Setup-Phase:
- Alle Pins werden als Ein- oder Ausgänge konfiguriert
- Die Startwerte aller drei Achsen werden gespeichert (Referenzwerte)
- Diese Werte dienen als Basis für die Bewegungserkennung
State 0 (idle = Überwachungsmodus):
- Grüne LED leuchtet kontinuierlich (System bereit)
senseAcceleration()prüft permanent, ob eine Bewegung erkannt wird- Bei Bewegung: Wechsel zu State 1, grüne LED erlischt
State 1 (alert = Alarmzustand):
alertBlinking()lässt rote und blaue LED abwechselnd blinken- System bleibt in diesem Zustand, bis du den Taster drückst
- Nach Tastendruck: Rückkehr zu State 0
Die Funktion senseAcceleration():
- Empfängt den Potentiometer-Wert (0-1023)
- Mapped diesen auf 0-10 (Schwellwert in Analogwert-Einheiten)
- Vergleicht alle drei Achsen mit ihren Startwerten
- Gibt
truezurück, wenn mindestens eine Achse den Schwellwert überschreitet
Empfindlichkeitsregelung:
Mit dem Potentiometer stellst du ein, wie stark eine Bewegung sein muss:
- Ganz links (0): Extrem empfindlich, reagiert auf kleinste Erschütterungen
- Ganz rechts (10): Weniger empfindlich, nur bei deutlichen Bewegungen
Inbetriebnahme und Test
So testest du dein System:
- Stromversorgung herstellen: Schließe den Arduino an
- Warten: Lass das System 2-3 Sekunden ruhen (Initialisierung)
- Grüne LED prüfen: Sollte leuchten (System bereit)
- Empfindlichkeit einstellen: Drehe am Potentiometer
- Bewegung testen: Bewege das Breadboard oder tippe darauf
- Alarm prüfen: Rote/blaue LEDs sollten blinken
- Reset testen: Drücke den Taster – grüne LED sollte wieder leuchten
Troubleshooting: Häufige Probleme
Problem: Alarm löst ständig aus
- Lösung: Empfindlichkeit mit Potentiometer reduzieren (nach rechts drehen)
- Oder: Sensor benötigt stabilere Montage
Problem: Sensor reagiert gar nicht
- Prüfe die 3.3V-Verbindung (nicht 5V!)
- Kontrolliere alle Kabelverbindungen
- Teste mit dem einfachen Serial-Monitor-Code die Rohwerte
Problem: LEDs blinken nicht
- Prüfe Polarität der LEDs (langes Bein = Plus)
- Kontrolliere, ob Vorwiderstände vorhanden sind
- Teste LEDs einzeln mit einem einfachen Blink-Sketch
Problem: Taster funktioniert nicht
- Prüfe Pin-Zuordnung (Pin 2?)
- Teste mit Serial.println(digitalRead(buttonPin))
- Eventuell Pull-Up-Widerstand ergänzen
Praktische Anwendungsideen für dein Arduino ADXL335 Accelerometer
Mit diesem Grundprojekt hast du die Basis für zahlreiche praktische Anwendungen:
Sicherheit & Überwachung:
- Diebstahlschutz für Laptop, Fahrrad oder Motorrad
- Erschütterungsdetektor für empfindliche Geräte oder Kunstwerke
- Türalarm: Erkennt Öffnen durch Vibration
Technik & Monitoring:
- Neigungswarner für Regale oder Möbel (Kippgefahr)
- Maschinenüberwachung: Erkennt ungewöhnliche Vibrationen
- Transport-Logger: Dokumentiert Erschütterungen beim Versand
Sport & Fitness:
- Einfacher Bewegungszähler für Trainingseinheiten
- Schrittzähler (mit Optimierung der Erkennungslogik)
- Haltungstrainer (warnt bei falscher Neigung)
Interaktive Projekte:
- Klopf-Sensor für Smart-Home-Steuerung
- Musikinstrument: Erzeugt Töne durch Bewegung
- Gaming-Controller mit Neigungssteuerung
Mögliche Erweiterungen für Fortgeschrittene
Ich zeige dir einige Ideen, wie du das Projekt ausbauen kannst:
1. Akustischer Alarm mit Piezo-Summer
Ergänze einen Piezo-Buzzer für hörbaren Alarm:
- Piezo an Pin 8 und GND anschließen
- In
alertBlinking()zusätzlichtone(8, 1000, 50)einfügen - Verschiedene Töne für verschiedene Bewegungsintensitäten
2. Achsenspezifische Empfindlichkeit
Statt einem Potentiometer drei verwenden:
- Jede Achse bekommt eigenen Schwellwert
- Ermöglicht Reaktion nur auf bestimmte Bewegungsrichtungen
- Nützlich für Neigungswarner (nur Z-Achse überwachen)
3. Datenlogger mit SD-Karte
Dokumentiere alle Alarmereignisse:
- SD-Kartenmodul hinzufügen
- Zeitstempel und Sensorwerte speichern
- Analysiere später Bewegungsmuster
4. LCD-Display für Echtzeit-Feedback
Zeige Sensorwerte und Status an:
- 16×2 oder 20×4 LCD-Display integrieren
- Aktuelle Werte aller drei Achsen anzeigen
- Schwellwert und Empfindlichkeit visualisieren
- Hilfreich beim Kalibrieren
5. Unterschiedliche Alarmmuster
Implementiere verschiedene Alarmstufen:
- Kleine Bewegung: Nur gelbe LED
- Mittlere Bewegung: Blaues Blinken
- Starke Bewegung: Rotes Blinken + Piezo
- Verwendung von Intensitätsstufen
6. Kalibrierungs-Button
Füge einen zweiten Taster hinzu:
- Drücken speichert neue Referenzwerte
- Ermöglicht Rekalibrierung ohne Neustart
- Nützlich bei Positionsänderungen des Sensors
Fazit: Dein Einstieg in die Sensorwelt
Mit diesem Arduino ADXL335 Accelerometer Tutorial hast du gelernt:
✅ Wie du einen 3-Achsen-Beschleunigungssensor anschließt und ausliest
✅ Die Implementierung einer State-Machine für Zustandsverwaltung
✅ Schwellwert-basierte Sensordatenverarbeitung mit variabler Empfindlichkeit
✅ Kombination mehrerer Eingabe- und Ausgabekomponenten in einem System
✅ Praktische Anwendung analoger Sensoren für Bewegungserkennung
Der ADXL335 ist ein vielseitiger Sensor, der dir den Einstieg in die Welt der Bewegungserkennung ermöglicht. Du hast nicht nur ein funktionierendes Alarmsystem gebaut, sondern auch die Grundlagen verstanden, um eigene kreative Projekte zu entwickeln.
Wichtige Tipps für deine weiteren Projekte:
🔧 Betriebsspannung: Verwende immer 3.3V für den ADXL335, niemals 5V!
🔧 Montage: Der Sensor benötigt eine stabile Plattform für zuverlässige Messungen
🔧 Kabelführung: Halte die Kabel zum Sensor kurz, um elektrische Störungen zu minimieren
🔧 Kalibrierung: Lass das System nach dem Start 2-3 Sekunden ruhen
🔧 Empfindlichkeit: Starte mit niedriger Empfindlichkeit und steigere sie schrittweise
Ich hoffe, dieses Tutorial hat dir geholfen, die Möglichkeiten des Arduino ADXL335 Accelerometer kennenzulernen. Experimentiere mit verschiedenen Einstellungen, erweitere das Projekt nach deinen Vorstellungen und hab Spaß beim Bauen!
Wenn du Fragen hast oder deine Erweiterungen teilen möchtest, hinterlasse gerne einen Kommentar. Viel Erfolg mit deinem Bewegungsalarm-Projekt!
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

Magnificent beat ! I wish to apprentice while you amend your site, how could i subscribe for
a blog web site? The account helped me a acceptable deal.
I had been tiny bit acquainted of this your broadcast provided bright clear concept
@Lukas: Der Serielle Monitor zeigt Daten an, die über die serielle Schnittstelle gesendet werden. :)
https://www.starthardware.org/2010/06/arduino-software/
voll genial das Tutorial aber was genau ist ein Serial-Moitor?