IRON BOX ENERGY SAVING SYSTEM USING ACCELEROMETER AND ARDUINO

Photo of author

By Jackson Taylor

IN THIS PROJECT IRON BOX WILL AUTOMATICALLY TURNS OFF WHEN IT IS IN NOT USE (NO MOVEMENT ).
JUST SHAKE IT TO TURN ON.

YouTube video
  • SENSOR -ADXL335
  • RELAY -12V ,5A
CIRCUIT PROGRAM -ARDUINO
#define buzzer   10
#define relay   9
int x, y, z, xg, yg, zg, flag = 0, flag1 = 0, su = 1, i;
int x1, y1, z1;
int xt = 8, yt = 8, zt = 12;
int xd, yd, zd;
int time1;
void setup()
{
  Serial.begin(9600);
  init_outputs();
  on_all();
}
void loop()
{
   read_accelerometer();
   if ( (x <= 420 && x >= 400) && (y <= 360 && y >=320) && (z <= 360 && z >= 310)) //hori
   {  
     Serial.println("vert");
     vertical ();
   }
   else if ( x <= 350 && x >= 300 && y <= 420 && y >= 380 && z >= 310 && z <= 350)
   {
     Serial.println("hori");
     horizontal();
   }
}
void vertical(void)
{
  time1 = 0;
  on_all();
  x1 = x;   y1 = y;   z1 = z;
  do
  {
    read_accelerometer();
    xd = x - x1;   yd = y - y1;   zd = z - z1;
    time1 = time1 + 1;
    if (time1 > 12)//TIME TO TURN OFF IN VERTICAL POSITION =12 * 250mS =3 SECONDS
    {
      off_all();    time1 = 11;
    }
  } while ((!((xd < -xt) || (xd > xt) )) && (!((yd < -yt) || (yd > yt) )) && (!((zd < -zt) || (zd > zt) ))) ;
  on_all();Serial.println("brk1");
  Serial.print("zt="); Serial.println(zd);
}
void horizontal(void)
{ time1 = 0;
  on_all();
  x1 = x;   y1 = y;   z1 = z;
  do
  {
    read_accelerometer();
    xd = x - x1;   yd = y - y1;   zd = z - z1;
    time1 = time1 + 1;
    if (time1 > 12) //TIME TO TURN OFF IN HORIZONTAL POSITION =12 * 250mS =3 SECONDS
    {
      off_all();    time1 = 7;
    }
  } while ((!((xd < -xt) || (xd > xt) )) && (!((yd < -yt) || (yd > yt) )) && (!((zd < -zt) || (zd > zt) ))) ;
  on_all();
  Serial.println("brk1");
  Serial.print("zt="); Serial.println(zd);
}
void read_accelerometer(void)
{
  x = analogRead(A5);
  y = analogRead(A4);
  z = analogRead(A3);
  Serial.print(x);
  Serial.print(',');
  Serial.print(y);
  Serial.print(',');
  Serial.println(z);
  delay(250);
}
void off_all(void)
{
  digitalWrite (buzzer, HIGH);
  digitalWrite (relay, HIGH);
  Serial.println("--------off---------");
}
void on_all(void)
{ Serial.println("-------on--------");
  digitalWrite(buzzer, LOW);
  digitalWrite(relay, LOW);
}
void init_outputs(void)
{
  pinMode(buzzer, OUTPUT);
  pinMode(relay, OUTPUT);
}
See also
PIC18F4550- PINGUINO

Revive Your Dead Electronics

Got a drawer full of dead gadgets or a failing car battery? Instead of paying a premium for replacements, use this simple trick to easily recondition them right from home.

See How It Works