Pith - idle_waste_alarm
idle_waste_alarm/idle_waste_alarm.ino [2.2 kb]
Modified: 22:48:55 56 026 (14 May 026)
16 Days Ago
// Idle Waste Alarm
// vgmlr
// MPU-6050 Sketch JohnChi
#include "Wire.h"
// I2C address of the MPU-6050
const int MPU_addr = 0x68;
int16_t AcY;
// Sensitivity
int high = 2700;
int low = -2700;
int set = 0;
int dif = 0;
// State
int state = 1;
// Time Variables
long echo = 0;
int dly = 100;
// 120 seconds
// Avg red light Wait 90 seconds
long sepone = 22500;
long septwo = 45000;
long septhree = 67500;
long sepfour = 90000;
// LEDs and Piezo
// Green
int one = 3;
int two = 4;
int three = 5;
// Yellow
int four = 6;
// Red and Piezo
int five = 7;
void setup() {
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);
  Wire.write(0);
  Wire.endTransmission(true);
  Serial.begin(9600);
  pinMode(one, OUTPUT);
  pinMode(two, OUTPUT);
  pinMode(three, OUTPUT);
  pinMode(four, OUTPUT);
  pinMode(five, OUTPUT);
  digitalWrite(one, HIGH);
  digitalWrite(two, LOW);
  digitalWrite(three, LOW);
  digitalWrite(four, LOW);
  digitalWrite(five, LOW);
}
void loop() {
  // GY-52 Communication
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr, 14, true);
  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  AcY = Wire.read() << 8 | Wire.read();
  // Variance From Last Position
  dif = AcY - set;
  // Testing
  Serial.print("YAxi  ");
  Serial.print(AcY);
  Serial.print("   Difr   ");
  Serial.print(dif);
  Serial.print("   Mils   ");
  Serial.println(echo);
  // IF Motion Reset Minimums
  if (dif > high || dif < low) {
    digitalWrite(one, HIGH);
    digitalWrite(two, LOW);
    digitalWrite(three, LOW);
    digitalWrite(four, LOW);
    digitalWrite(five, LOW);
    state = 1;
    echo = 0;
  }
  else {
    if (state == 1) {
      if (echo >= sepone) {
        digitalWrite(two, HIGH);
        state = 2;
      }
    }
    else if (state == 2) {
      if (echo >= septwo) {
        digitalWrite(three, HIGH);
        state = 3;
      }
    }
    else if (state == 3) {
      if (echo >= septhree) {
        digitalWrite(four, HIGH);
        state = 4;
      }
    }
    else if (state == 4) {
      if (echo >= sepfour) {
        digitalWrite(five, HIGH);
      }
    }
  }
  // Reset Last Position
  set = AcY;
  // 1/10 Second
  echo = echo + dly;
  delay(dly);
}
Updates
Shim - Android 70.026.1
Wedge - Linux 68.026.1
Wedge - Android 68.026.1
Taper - Linux 64.026.1
Ayh Extension - Chrome 63.026.1
Dev
TVShow (227) 'CSA'
TVShow (228) 'APT'
TVProgram (83) 'BXT'
Miter Update(s)
Shim (Dictation)

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)