Created
September 11, 2020 08:43
-
-
Save TareObjects/e0bf337c290c23df9ec73438288d43e0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Servo.h> | |
Servo rServo; | |
Servo lServo; | |
// | |
// ADXL345 | |
// | |
#include <Wire.h> | |
#include <Adafruit_Sensor.h> | |
#include <Adafruit_ADXL345_U.h> | |
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345); | |
// | |
// Setup | |
// | |
void setup() { | |
Serial.begin(115200); | |
rServo.attach(8); | |
lServo.attach(9); | |
if (!accel.begin()) { | |
Serial.println("Ooops, no ADXL345 detected ... Check your wiring!"); | |
while (1); | |
} | |
accel.setRange(ADXL345_RANGE_2_G); | |
} | |
const int speed = 15; | |
const int rOffset = 80; | |
const int lOffset = 100; | |
enum {ModeInit = 1, ModeFaceUp, ModeFaceDown}; | |
int mode = ModeInit; | |
int getCurrentMode() { | |
sensors_event_t event; | |
accel.getEvent(&event); | |
int currentMode; | |
Serial.print(event.acceleration.y); | |
Serial.print("--"); | |
if (event.acceleration.y < -3.0) { | |
currentMode = ModeFaceDown; | |
Serial.println("Face Down"); | |
} else { | |
currentMode = ModeFaceUp; | |
Serial.println("Face Up"); | |
} | |
return currentMode; | |
} | |
void loop() { | |
int currentMode = getCurrentMode(); | |
if (mode != currentMode) { | |
delay(100); | |
currentMode = getCurrentMode(); | |
if (mode != currentMode) { | |
mode = currentMode; | |
if (mode == ModeFaceUp) { | |
faceUp(); | |
} else { | |
faceDown(); | |
} | |
} | |
} | |
delay(100); | |
} | |
void faceUp() { | |
for (int pos = 0; pos <= 90; pos++) { | |
rServo.write(pos + rOffset); | |
lServo.write(lOffset - pos); | |
delay(speed); | |
} | |
} | |
void faceDown() { | |
for (int pos = 90; pos > 0; pos--) { | |
rServo.write(pos + rOffset); | |
lServo.write(lOffset - pos); | |
delay(speed); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment