Project showcase
Woodworker Shop Vac With Arduino Uno

Woodworker Shop Vac With Arduino Uno © GPL3+

Automate your shop vac by sensing the current that your maschines uses.

  • 1,001 views
  • 1 comment
  • 5 respects

Components and supplies

About this project

I don't have the time, and I´m just too lazy to walk around and turn on and off the shop-vac every time I need to shape or plane some wood. So, I decided to search for a better way to do that. There it is, a fully automated shop-vac.

Code

arduino-shop-vac.inoArduino
shop vac automation
/* ===========================================================

SHOP VAC AUTOMATION

->>   CONNECT RELAYS IN TO DIGITAL OUTPUT 02 + VCC + GROUND
      RELAY INTERRUPTS SHOP VAC POWER CORD 
->>   CONNECT ACS712 30A TO ANALOG INPUT A0 + VCC + GROUND
      ACS712 MUST SENSE ON THE MAIN FUSE BOX
==============================================================*/
const int analogIn = A0;
int mVperAmp = 66; // use 185 for 5A, 100 for 20A Module and 66 for 30A Module
int RawValue= 0;
int ACSoffset = 2500; 
double Voltage = 0;
double Amps = 0;

const int pinRelay = 2;


double Amps1 = 0;
double Amps2 = 0;
double Amps3 = 0;
double Amps4 = 0;
double Amps5 = 0;


void setup(){ 
 Serial.begin(9600);
 pinMode (pinRelay, OUTPUT);
}

void loop(){
 
 RawValue = analogRead(analogIn);
 Voltage = (RawValue / 1024.0) * 5000; // Gets you mV
 Amps1 = abs((Voltage - ACSoffset) / mVperAmp);

 Amps5 = Amps4; // that's just for the timing to turn off, aproximately 20 sec.
 Amps4 = Amps3;
 Amps3 = Amps2;
 Amps2 = Amps1;
 Amps = max(Amps1, Amps2);
 Amps = max(Amps, Amps3);
 Amps = max(Amps, Amps4);
 Amps = max(Amps, Amps5);

 Serial.print("Raw Value = " ); // shows pre-scaled value 
 Serial.print(RawValue); 
 Serial.print("\t mV = "); // shows the voltage measured 
 Serial.print(Voltage,2); // the '2' after voltage allows you to display 3 digits after decimal point
 Serial.print("\t Amps = "); // shows the voltage measured 
 Serial.print(Amps,2); // the '2' after voltage allows you to display 3 digits after decimal point


 if ( Amps > 6.8 ) // change value here whit the value of the machine you want to use for ( for more than one, use the lower value)
 {    digitalWrite( pinRelay, HIGH);  //  over 6.8 Amp activates the relay
      Serial.println(" High");
      delay (5000);     // wait 5 seconds
 }      

if ( Amps < 6.8 )
  {digitalWrite( pinRelay, LOW); // under 6.8 Amp the relay turns off
  Serial.println(" Low");
  }
 delay(500); 
}

Schematics

shop_vac_ArQ5ZgwBCf.fzz
shop_vac_ArQ5ZgwBCf.fzz

Comments

Author

Default
FranzVicenzi
  • 1 project
  • 0 followers

Additional contributors

  • Developer by Francesco Vicenzi
  • Developer by Ralf Stemmer

Published on

May 4, 2017

Members who respect this project

Bob%20blomquistDefault

and 3 others

See similar projects
you might like

Similar projects you might like

Solar Charged Battery Powered Arduino Uno

Project in progress by Igor Fonseca Albuquerque

  • 60,674 views
  • 46 comments
  • 124 respects

Arduino UNO High Precision Counting Scale

Project showcase by Fedeasche

  • 12,969 views
  • 9 comments
  • 43 respects

Prototype of Arduino Uno CNC Machine

Project showcase by Sistem Komputer STMIK-AUB Surakarta

  • 5,899 views
  • 5 comments
  • 35 respects

Arduino UNO Fan Controller Education Kit

Project showcase by ArdLab_Gent

  • 2,446 views
  • 0 comments
  • 11 respects

Konica Minolta MFP Touch screen use with Arduino Uno

Project showcase by Team DoubleG

  • 599 views
  • 0 comments
  • 2 respects

4x4x4 LED cube with Arduino Uno and 1sheeld

Project tutorial by Hassan Ibrahim

  • 29,722 views
  • 6 comments
  • 60 respects
Add projectSign up / Login