Den Beschleunigungssensor/Accelerometer mit dem Arduino programmieren: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „* Einfacher Test-Code der bei Erschütterung ein Signal über den Serial-Port sendet sowie ein LED kurz aufleuchten lässt * Die entsprechenden Libraries (sieh…“) |
|||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 76: | Zeile 76: | ||
</pre> | </pre> | ||
== Verkabelung / Pins == | == Verkabelung / Pins == | ||
+ | [[file:accelerometer_verkabelung.jpg|1000px]] | ||
+ | * 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. |
Aktuelle Version vom 16. August 2023, 15:30 Uhr
- 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.