Den Beschleunigungssensor/Accelerometer mit dem Arduino programmieren
Version vom 16. August 2023, 15:30 Uhr von FlorianG (Diskussion | Beiträge)
- Einfacher Test-Code der bei Erschütterung ein Signal über den Serial-Port sendet sowie ein LED kurz aufleuchten lässt
- Die entsprechenden Libraries (siehe include-Befehl) von Adafruit müssen installiert werden
Arduino Code
#include <Adafruit_MPU6050.h> #include <Adafruit_Sensor.h> #include <Wire.h> Adafruit_MPU6050 mpu; void setup(void) { Serial.begin(115200); while (!Serial) delay(10); // will pause Zero, Leonardo, etc until serial console opens Serial.println("Adafruit MPU6050 test!"); // Try to initialize! if (!mpu.begin()) { Serial.println("Failed to find MPU6050 chip"); while (1) { delay(10); } } Serial.println("MPU6050 Found!"); //setupt motion detection mpu.setHighPassFilter(MPU6050_HIGHPASS_0_63_HZ); mpu.setMotionDetectionThreshold(1); mpu.setMotionDetectionDuration(20); mpu.setInterruptPinLatch(true); // Keep it latched. Will turn off when reinitialized. mpu.setInterruptPinPolarity(true); mpu.setMotionInterrupt(true); Serial.println(""); delay(100); pinMode(12, OUTPUT); digitalWrite(12, LOW); } void loop() { if(mpu.getMotionInterruptStatus()) { /* Get new sensor events with the readings */ sensors_event_t a, g, temp; mpu.getEvent(&a, &g, &temp); /* Print out the values */ Serial.print("AccelX:"); Serial.print(a.acceleration.x); Serial.print(","); Serial.print("AccelY:"); Serial.print(a.acceleration.y); Serial.print(","); Serial.print("AccelZ:"); Serial.print(a.acceleration.z); Serial.print(", "); Serial.print("GyroX:"); Serial.print(g.gyro.x); Serial.print(","); Serial.print("GyroY:"); Serial.print(g.gyro.y); Serial.print(","); Serial.print("GyroZ:"); Serial.print(g.gyro.z); Serial.println(""); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); } delay(10); }
Verkabelung / Pins
- Die Verkabelung ist denkbar einfach. SCL und SDA sind sowohl am Arduino als auch am Accelerometer zu finden. Diese müssen je mit einem Kabel verbunden werden.
- Weiters benötigt der Accelerometer noch 3.3V und GND
- Die LED ist an den digitalen Pin 12 angeschlossen. Aus Gründen der Übersicht wurde auf ein Schutzwiderstand verzichtet. Dieser sollte noch an das LED angeschlossen werden.