relay for aircondition

Hi. i have a aircon unit that is old, so no wifi control on it. So here comes arduino. i would like a 5V relay for a 24000 BTU unit. Any ideas what relay will it be?
i assume this is relay is for <2000 Watts and my air con is more. correct?

Hi. i have a aircon unit that is old, so no wifi control on it. So here comes arduino. i would like a 5V relay for a 24000 BTU unit. Any ideas what relay will it be?
i assume this is relay is for <2000 Watts and my air con is more. correct?

Please explain! Are you wanting to replace an existing thermostat or are wishing to supplement an existing thermostat? Both use the existing relay in the AC unit.

OR are you wishing to replace the existing relay in the AC unit? Makes a big difference in what you are actually trying to do.


I'm going to assume you wish to control your A/C unit remotely or automatically (apart form what is probably a mechanics thermostat in the current unit).

I think it will be difficult to find a relay capable of controlling your A/C unit.

My best guess is you need to switch 12 - 15 amp (running) and maybe 30 amps to start.

I think you need a minimum of a 12Volt relay or perhaps a mains relay controlled by a small SSR. There are likely many other combinations that will work as well.

CAUTION: Every A/C unit needs to be off for some minimum time when being switched. I.e. You cannot switch it off then switch it on again 3 seconds later. I think there needs to be5 to 10 minutes between off and on time to allow the compressure pressure to drain down. Be sure the addition of your relay doesn't circumvent this delay.


Have a look at a contactor

as a control signal suggest a moc optotriac as insulator from the logic and, if the required current for the contractor is to high for the optotriac then use a triac driven by the optotriac and driving the contactor

shouldn’t exceed 5-10 usd

welcome back for additional details

I use HVAC Contactors for high load applications like switching my solar power battery banks or any AC curcuits above 90 volts.
They are rated at 24 volts usually but will fire just fine on 12 volts if you do not have 24 volts available and they are pretty cheap or salvageable from retired central AC condenser units.

What you want to do to fire the contactor with an arduino is run your digital out line to a NPN Transistor (The 30001's found in CFL bulbs work fine for this). What you want to do is have the transistor wire in to pull the Negative ground up to complete the circuit to the contactors winding. The + side of the winding is wired to a 12 volt DC source.

Wiring the transistor:

Base = Your control line from the arduino
Collector = 12 - 24 volt negative rail and/or ground
Emitter = Out to the negative side of your contactor

The digital output (control lead) should also have a resistor in line and a diode to prevent a backfeeding of current into the arduino.

Your contactor you may want to put a snubber circuit across the winding terminals to prevent EMF spikes on the line when the contactor deactivates.

All thats left is a sketch to control the relay or transistor. Below is one that i use for non WiFi / RF controlled projects:

/*==================Arduino Latching Switch===============
Connect a momentary puchbutton to pin 3 and ground on your Arduino board.

Connect your 3 - 5 volt relay or NPN Transistor's BASE to pin 6 on your Arduino board with a 4001 or similar diode inline. 
If you are using a transistor put a 1K resistor inline. Resistor value really depends on the transistor you use.
so some experimentation may be needed for your selected transistor. I use 30001's salvaged from old CFL bulbs and a 1K resistor inline as well as a diode.

If you are using a relay you may want to put a snubber network across the relays winding terminals to protect your arduino from HV spikes as the relay operates.

// Define the pins being used
int pin_Toggle1 = 3;
int pin_Switch1 = 6;
// variables to hold the new and old switch states
boolean oldSwitch1State = LOW;
boolean newSwitch1State1 = LOW;
boolean newSwitch1State2 = LOW;
boolean newSwitch1State3 = LOW;
void setup() 
pinMode(pin_Toggle1, OUTPUT);  
pinMode(pin_Switch1, INPUT_PULLUP);
void loop()
newSwitch1State1 = digitalRead(pin_Switch1);
newSwitch1State2 = digitalRead(pin_Switch1);
newSwitch1State3 = digitalRead(pin_Switch1);
if((newSwitch1State1==newSwitch1State2) && (newSwitch1State1==newSwitch1State3))
if(newSwitch1State1 != oldSwitch1State){
if(newSwitch1State1 == HIGH){
if(Toggle1Status1 == LOW){ 
digitalWrite(pin_Toggle1, HIGH);  
Toggle1Status1 = HIGH;}
digitalWrite(pin_Toggle1, LOW);
Toggle1Status1 = LOW;}}
oldSwitch1State = newSwitch1State1;