Hi all,
I am a school student working on a project that controls a aircon via IR (it also uses current and temperature sensors)
I have a problem though where it starts the Function called "Mode"
/*PUT AIRCON INTO COOL MODE*/
void Mode() {
nVPP = getVPP();//read current of aircon
nCurrThruResistorPP = (nVPP / 200.0) * 1000.0; //read current of aircon
nCurrThruResistorRMS = nCurrThruResistorPP * 0.707; //read current of aircon
nCurrentThruWire = nCurrThruResistorRMS * 1000; //read current of aircon
if (nCurrentThruWire > triggerCurrentAircon) { //aircon in stand in cool,dry,auto etc
delayMicroseconds(44060);
pulseIR(9240);
delayMicroseconds(4600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delay (10000);
The above code repeats multiple times........
Before getting to the below section
delay(10000);
nVPP = getVPP(); //read current of aircon
nCurrThruResistorPP = (nVPP / 200.0) * 1000.0; //read current of aircon
nCurrThruResistorRMS = nCurrThruResistorPP * 0.707; //read current of aircon
nCurrentThruWire = nCurrThruResistorRMS * 1000; //read current of aircon
if (nCurrentThruWire < triggerCurrentAircon) { //aircon in in heat mode put into cool mode
Serial.print ("Entering cool mode!");
delayMicroseconds(44060);
pulseIR(9240);
delayMicroseconds(4600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
}
delay(10000);
And the code repeats again (cut that bit out to reduce characters)
}
I all goes perfect until it gets to this section in the "Mode" function
delay(10000);
nVPP = getVPP(); //read current of aircon
nCurrThruResistorPP = (nVPP / 200.0) * 1000.0; //read current of aircon
nCurrThruResistorRMS = nCurrThruResistorPP * 0.707; //read current of aircon
nCurrentThruWire = nCurrThruResistorRMS * 1000; //read current of aircon
if (nCurrentThruWire < triggerCurrentAircon) { //aircon in in heat mode put into cool mode
Serial.print ("Entering cool mode!");
delayMicroseconds(44060);
pulseIR(9240);
delayMicroseconds(4600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(600);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
delayMicroseconds(1720);
pulseIR(600);
}
delay(10000);
And the above code repeats again (cut that bit out to reduce characters)
The problem is it waits a long time before doing this section (30/60 seconds).
Just to clarify this bit of code does what it should apart from waiting so long before implementing it!
Any help with this would be amazing!
Thanks,
Zeb
P.S. Full code attached:)
IR-Factory-Air-Con-Controller.ino (35.3 KB)