arduino
int pCooler = 3;
int pLED = 5;
int pCompressor = 12;
int pVape = 9;
int pBtn1 = 2, pBtn2 = 4;
int btn1repeats = 0, btn2repeats = 0;
unsigned long msCompressor = 0, msBtn1 = 0, msBtn2 = 0;
boolean btn1pos = false, btn1State = false, btn2pos = false, btn2State = false;
boolean stComp = false;
void setup() {
pinMode(pCooler, OUTPUT);
pinMode(pLED, OUTPUT);
pinMode(pCompressor, OUTPUT);
pinMode(pVape, OUTPUT);
}
void compressor(void) {
if((millis() >= msCompressor+10) && (!stComp)) {
digitalWrite(pCompressor, 5.0);
msCompressor = millis();
stComp = true;
}
if((millis() >= msCompressor+6) && (stComp)) {
msCompressor = millis();
digitalWrite(pCompressor, 0);
stComp = false;
}
}
void checkBtn1(void) {
boolean Btn1 = digitalRead(pBtn1);
if(Btn1) {btn1repeats = btn1repeats + 1;} else {btn1repeats = 0;}
if(Btn1 != btn1pos && Btn1 && msBtn1 < millis() && btn1repeats>=50) {
btn1pos = true;
msBtn1 = millis() + 500; //don't react on changes next 500 ms
btn1State = !btn1State;
}
if(Btn1 != btn1pos && !Btn1) {btn1pos = false;}
}
void loop() {
compressor();
checkBtn1();
digitalWrite(13, btn1State);
}