Contents
A relay is an electromagnetic switch which is used to switch High Voltage/Current using Low power circuits. Relay isolates low power circuits from high power circuits. It is activated by energizing a coil wounded on a soft iron core. For detailed working of relay please visit this page. A relay should not be directly connected to a microcontroller, it needs a driving circuit.
A relay should not be connected directly to a microcontroller due to following reasons..
- A microcontroller is not able to supply current required for the working of a relay. The maximum current that a PIC Microcontroller can source or sink is 25mA while a relay needs about 50 – 100mA current.
- A relay is activated by energizing its coil. Microcontroller may stop working by the negative voltages produced in the relay due to its back emf.
Interfacing Relay with PIC Microcontroller using Transistor
A relay can be easily interfaced with microcontroller using a transistor as shown below. Transistor is wired as a switch which carries the current required for operation of the relay. When the pin RB7 of the PIC microcontroller goes high, the transistor BC547 turns On and current flows through the relay. The diode D1 is used to protect transistor and the microcontroller from Back EMF generated in the relays coil. Normally 1N4148 is preferred as it is a fast switching diode having a peak forward current of 450mA. This diode is also known as freewheeling diode.
Note: VDD and VSS of the pic microcontroller is not shown in the circuit diagram. VDD should be connected to +5V and VSS to GND.
MikroC Program
void main() { TRISB.F7 = 0; //Makes RB7 a output pin do { PORTB.F7 = 1; //Turns ON relay Delay_ms(1000); // 1000 mS delay PORTB.F7 = 0; //Turns OFF realy Delay_ms(1000); //1000mS delay }while(1); }
Interfacing Relay with PIC Microcontroller using ULN2003
If you want to use more relays, using transistors will be difficult. In these cases you may use ULN2003 or ULN2803. These are monolithic IC s consists of High Voltage High Current Darlington transistor arrays. You can connect seven relays using ULN2003 and eight relays using ULN2803. When using these driver ICs we don’t need to connect freewheeling diode as they have built in clamp diodes.
Note: VDD, VSS of the pic microcontroller and GND of ULN2003 are not shown in the circuit diagram. VDD should be connected to +5V and VSS, GND to 0V (GND).
MikroC Program
void main() { TRISD = 0x00; //Make PORTD as output do { PORTD.F1 = 1; //Turns ON relay 1 PORTD.F2 = 1; //Turns ON relay 2 PORTD.F3 = 1; //Turns ON relay 3 PORTD.F4 = 1; //Turns ON relay 4 PORTD.F5 = 1; //Turns ON relay 5 ...etc.. Delay_ms(1000); // 1 second Delay PORTD.F1 = 0; //Turns OFF relay 1 PORTD.F2 = 0; //Turns OFF relay 2 PORTD.F3 = 0; //Turns OFF relay 3 PORTD.F4 = 0; //Turns OFF relay 4 PORTD.F5 = 0; //Turns OFF relay 5 ...etc... Delay_ms(1000); //1 second Delay }while(1); }
Buy Here
[products ids=”9818, 9778, 8605″]