Interfacing a relay circuit with a PIC microcontroller
We are going to see how to interface a relay to a PIC micro controller. But before that, you need to know what is a relay.
A relay is a switching device which permits the switching of a load in a circuit or to a supply. The advantage of using a relay is due to the fact that, this device can permit the switching of high loads in circuits.
Before interfacing a relay in a circuit, the relay must be chosen to suit the supplying circuit and the required load. For example, there are relays which operate at 5V, 6V, 12V, etc. and having a maximum load current and voltage rating.
Materials
PIC 16F877A, 5V relay, 5V DC source, 1 BC547 transistor, 1 diode 1N4148, 230V AC load (heater), 230V AC source, 8MHz Crystal Oscillator, 2 ceramic capacitors, 2 resistors, 1 push button.
Circuit diagram of relay with microcontroller
The circuit diagram is shown below.
The
relay is connected to PORTC of the microcontroller at Pin RC3.
The
push button to activate the relay which switches on the load is connected to
PORTB of the microcontroller at Pin RB0.
A
flyback diode is connected to the relay to protect it against back emf.
Interfacing a relay with microcontroller Code
This
code is written in C with the software: mikroC pro.
See
the image of the code below
You
can copy the code below
void
main() {
TRISB=0xFF;
TRISC=0x00;
PORTC=0X00;
while(1)
{
if
(PORTB.RB0==0)
{PORTC.RC3=1;}
else
{PORTC.RC3=0;}
}
}
Explanation of Code
TRISB
= 0XFF; means configuring PORTB as input (FF means 1111 1111 in digital)
TRISC=0x00;
means configuring PORTC as output (00 means 0000 0000 in digital)
PORTC=0X00;
means putting PORTC OFF (initialized)
while(1)
{ some code here} means taking a loop. The code in the braces is executed
infinitely.
if
(PORTB.RB0 = =0) {PORTC.RC3=1;} means if Pin RB0 is pressed (Pin is at logic 0),
put on the relay connected to Pin RC3.
else
{PORTC.RC3=0;} means if Pin RB0 is not pressed (Pin is at logic 1), put OFF the
relay connected to Pin RC3.
Once
the code is imported into the PIC microcontroller, the system behaves as such:
Once
the push button connected to Pin RB0 is pressed, the relay is activated
switches the load to the 230V supply and the heater is ON and starts heating.
See below
The
heater heated to 75%
Heater heated to 100%
When
the push button is pressed again, the relay is disactivated and switches of the
load (heater).
Related:
Related: