Skip to main content

social

pop

Interfacing a relay using a microcontroller

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.

interfacing a relay
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
code interfacing a relay
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:

The relay is initially OFF. Hence the heater OFF (blue).  See below
interfacing a relay with PIC microcontroller


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%


interfacing a relay with microcontroller



Heater heated to 100%

Interfacing a relay with PIC microcontroller


When the push button is pressed again, the relay is disactivated and switches of the load (heater).

Related: 


Interfacing 16x2 LCDInterfacing 16x4 LCDScrolling text on LCD


Interfacing infrared distance sensor

Interfacing a pH meter







Popular posts from this blog

How to Install Proteus 8 Professional: A Step-by-Step Guide

 How to Install Proteus 8 Professional: A Step-by-Step Guide Proteus 8 Professional is a powerful tool for electronic circuit design and simulation. Whether you’re a student, hobbyist, or professional engineer, following a clear installation process ensures you get started without headaches. Are you ready to start designing and simulating electronic circuits with Proteus 8 Professional!   Here’s a comprehensive, guide to installing Proteus 8 Professional on your Windows PC. Step 1: Download the Installer ·        Visit the official Labcenter Electronics website or another trusted source to download the Proteus 8 Professional installer. Avoid unofficial sources to prevent malware or corrupted files . You can download from HERE DOWNLOAD PROTEUS AND ARDUINO ·        The installer typically comes as a ZIP file. Wait for the download to finish and locate it in your Downloads folder Step 2: Extract the Installer...

Interfacing Relay Circuit in Proteus with Arduino

  Interfacing Relay Circuit in Proteus with Arduino Using Push Button Activation Learn how to simulate a relay circuit interfaced with Arduino in Proteus, where a push button activates switching to safely control a motor powered by a 220V AC source. What is a Relay Circuit? A relay circuit uses a relay as an electrically operated switch to control high-power loads through a low-power signal. The setup includes a relay coil powered by 5V from Arduino, a driver transistor/module, freewheeling diode for protection, and contacts connected to the load like a 220V AC motor. When energized, the coil's magnetic field closes contacts to allow current flow; de-energizing returns them via spring action. This Proteus simulation demonstrates button-activated relay control with Arduino Uno. The push button sends a low-voltage signal to toggle the relay, switching the motor while an LED provides visual status indication Key Components for Interfacing Relay Circuit ·      ...

How to Draw A Three-Phase Waveform and Its Importance

How to Draw A Three-Phase Waveform and Its Importance  Learn how to easily draw a three-phase AC waveform step-by-step, a fundamental skill for power electronics and power systems engineers. Discover its critical role in efficient power delivery for industrial applications and renewable energy systems. Method 1: Easiest Triangular Wave Connection to draw a three phase wave form Sketch three identical triangular waves, each spanning 360° with linear rises from 0° to 90° (peak), falls to 180° (zero), dips to 270° (-peak), and returns to 360° (zero). Label them R (rise starts at 0°), Y (rise at 120°), and B (rise at 240°); connect their outer tips externally with straight lines to approximate a continuous three-phase waveform set. This quick method visually captures 120° phase shifts without curve drawing, ideal for fast teaching or power electronics sketches. Method 2: Standard Sine Wave Drawing Plot on a time (0°-360°) vs. voltage axis: draw R-phase as a full sine wave p...