Arduino Control Relay - Tutorial #5
Arduino Control Relay - Tutorial #5
http://www.electroschematics.com/8975/arduino-control-relay/
questions & answers Comments Members Links Advertise Contact Register Login 555 Alarms Arduino Audio Basic DIY Hobby Lights Measure Power supply Radio Solar Theory Tips Various Tools looking for something?
In this quick Arduino tutorial I will explain how you can control a relay using the Arduino Board, one 1K and one 10K resistors, 1 BC547 transistor, one 6V or 12V relay, one 1N4007 diode and a 12V fan. When the button is pressed the fan will turn ON and will remain in this state until the button is pressed again. Arduino Relay Sketch download Arduino sketch
/* sketch turn on a fan using a relay and a button */ int pinButton = 8; int Relay = 2; int stateRelay = LOW; int stateButton; int previous = LOW; long time = 0; long debounce = 500;
1 of 6
9/14/2013 3:29 PM
http://www.electroschematics.com/8975/arduino-control-relay/
void setup() { pinMode(pinButton, INPUT); pinMode(Relay, OUTPUT); } void loop() { stateButton = digitalRead(pinButton); if(stateButton == HIGH && previous == LOW && millis() - time > debounce) { if(stateRelay == HIGH){ stateRelay = LOW; } else { stateRelay = HIGH; } time = millis(); } digitalWrite(Relay, stateRelay); previous == stateButton; }
How does the circuit works When the button is pressed the Arduino board will put pin 2 in HIGH state, meaning 5V on pin 2. This voltage is used to drive the transistor that will switch ON the relay and the load (in our case the fan) will be powered from the main power supply. You cannot use the 5V from the USB to power up the transistor and the LOAD because the USB port usually delivers only 100mA, and this is not enough to switch the relay and the LOAD. That is why you must use an external power supply (Vcc) that is between 7 to 12 volts to power up the Arduino board and the transistor + relay. The load uses its own power supply, for instance if you use a light bulb then you might connect it to the 110/220V mains or any other power source.
2 of 6
9/14/2013 3:29 PM
http://www.electroschematics.com/8975/arduino-control-relay/
DO NOT connect in any ways the main power supply that drive the LOAD to the arduino and transistor circuitry!
int pinButton = 8; int Relay = 2; int stateRelay = LOW; int stateButton; int previous = LOW; long time = 0; long debounce = 500; int stayON = 5000; //stay on for 5000 ms void setup() { pinMode(pinButton, INPUT); pinMode(Relay, OUTPUT); } void loop() { stateButton = digitalRead(pinButton); if(stateButton == HIGH && previous == LOW && millis() - time > debounce) { if(stateRelay == HIGH){ digitalWrite(Relay, LOW);
3 of 6
9/14/2013 3:29 PM
http://www.electroschematics.com/8975/arduino-control-relay/
} else { digitalWrite(Relay, HIGH); delay(stayON); digitalWrite(Relay, LOW); } time = millis(); } previous == stateButton; }
Free Web Tutorials from Galil, the Leader in Stepper Motor Control.
StumbleUpon
4 of 6
9/14/2013 3:29 PM
http://www.electroschematics.com/8975/arduino-control-relay/
reply Hi Richard, you are right, but we will get into more complex things in the future, things that usually will require a lot of components, but by using a microcontroller the circuit and the currenct consumption will be much smaller.
ElectroSchematics Partners
ask a question
5 of 6
9/14/2013 3:29 PM
http://www.electroschematics.com/8975/arduino-control-relay/
Password
Remember Me
Register Lost Password Recent Questions Hi,i would like to build an electronic 6/8 kv rodent killer and need a circuit diagram with labelled parts
by kawabri | 08-09-13
recently added electronic circuits Renesas Electronic Scale Renesas Vacuum Cleaner Continuity Tester Differentiates Resistance Become our friend on facebook
Electro Schematics
Like 14,075 people like Electro Schematics.
6 of 6
9/14/2013 3:29 PM