diff options
author | HampusM <hampus@hampusmat.com> | 2021-12-19 20:14:11 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2021-12-19 20:14:11 +0100 |
commit | 991381a67d00f2fa8dcf0475172b0151b4310385 (patch) | |
tree | 5f2b46a584c1c5261f3276687eb7fd98c561572a /src | |
parent | 4fdb27130e3c53c9a55cc73b8975aae733a03e90 (diff) |
refactor: use the GY521 sensor instead
Diffstat (limited to 'src')
-rw-r--r-- | src/gyro.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/gyro.cpp b/src/gyro.cpp new file mode 100644 index 0000000..bdd68e9 --- /dev/null +++ b/src/gyro.cpp @@ -0,0 +1,43 @@ +#include "Arduino.h"
+#include "GY521.h"
+
+GY521 sensor(0x68);
+
+void setup() {
+ Serial.begin(9600);
+
+ // Wait for Serial because the Arduino Leonardo is weird
+ while (!Serial) {}
+
+ Wire.begin();
+
+ delay(100);
+ while (!sensor.wakeup()) {
+ Serial.print(millis());
+ Serial.println("Error: Could not connect to the GY521 sensor. Retrying after 2000 milliseconds...");
+ delay(2000);
+ }
+ sensor.setAccelSensitivity(2); // 8g
+ sensor.setGyroSensitivity(1); // 500 degrees/s
+
+ sensor.setThrottle();
+ Serial.println("start...");
+
+ // Calibration values
+ sensor.axe = 0.198;
+ sensor.aye = -0.018;
+ sensor.gxe = 0.780;
+ sensor.gye = -1.495;
+}
+
+void loop() {
+ sensor.read();
+ float pitch = sensor.getPitch();
+ float roll = sensor.getRoll();
+
+ Serial.print("Pitch: ");
+ Serial.print(pitch, 3);
+ Serial.print(" Roll: ");
+ Serial.print(roll, 3);
+ Serial.println();
+}
\ No newline at end of file |