// Basic demo for accelerometer readings from Adafruit MPU6050
#include <WiFi.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
const int dirPin= 4;
const int stepPin = 5;
const int stepPerRevolution = 3200;
int stepDelay = 5;
Adafruit_MPU6050 mpu;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
while (!mpu.begin()) {
Serial.println("MPU6050 not connected!");
delay(1000);
}
Serial.println("MPU6050 ready!");
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
sensors_event_t a;
void loop() {
// put your main code here, to run repeatedly:
mpu.getAccelerometerSensor()->getEvent(&a);
Serial.print("[");
Serial.print(millis());
Serial.print("] X: ");
Serial.print(a.acceleration.x);
Serial.print(", Y: ");
Serial.print(a.acceleration.y);
Serial.print(", Z: ");
Serial.print(a.acceleration.z);
Serial.println(" m/s^2");
delay(500);
if (a.acceleration.x>0){
digitalWrite(dirPin, HIGH);
Serial.println("Spinning ClockWise");
for(int i = 0; i<stepPerRevolution;i++){
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(100); // this speeds up the simulation
}else if(a.acceleration.x<0){
digitalWrite(dirPin, LOW);
Serial.println("Spinning CounterClockWise");
for(int i = 0; i<stepPerRevolution;i++){
digitalWrite(stepPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepPin, LOW);
delayMicroseconds(stepDelay);
}
delay(100);
}
}