Making an animated relay in proteus

You can post your problem related to Proteus Projects here. We will try our best to help you out.
Post Reply
Eugene
Posts:34
Joined:Mon Feb 20, 2017 11:09 am
Making an animated relay in proteus

Post by Eugene » Mon Feb 20, 2017 12:02 pm

Hi all,
I am trying to make an animated relay work to switch on the bulb in my circuit. When a input is given to the pic16f877A, it is to make the relay on the bulb. I have fixed everything correctly( according to me...). But i can't make the relay work when i execute (F12). The lcd included works well though. Pls help. I will include the coding and the picture of the circuit. Also what do the blue and red square lights that appear in the proteus simulation.
Pls do help me.
Thanks
S.Trinetra

p.s
relay is set to 5V. It is still not working.
Do u notice the power terminal connected to one part of the relay and diode. Must have a certain value? I can't seem to insert any value.
Do u think that there is something wrong with the code in Mplab?
Must ac source and bulb be connected to the transistor and ground?

Code: Select all

 
#include<htc.h>
#include <pic.h>
 
__CONFIG ( 0x3F32 );
 
#define data                PORTD     //Pins to the LCD D0-D7
#define rs          RC2       //rs of LCD
#define rw          RC0       //rw of LCD
#define en          RC3       //e of LCD
#define in          RE0       //input for RFID
 
// The above pins can be changed according to whicheva u choose
 
void initialize();          
void busy();
void display(unsigned char one[], unsigned char two[]);
void command(unsigned char var);
void send_data(unsigned char var);
void string(unsigned char *var);
 
unsigned char text1[]={"RFID PROJECT"};
unsigned char text2[]={"PLACE YOUR CARD"};
unsigned char text3[]={"CARD ACCEPTED"};
unsigned char text4[]={"CARD REJECTED"};
unsigned char text5[]={"                "};
//Additional text can be placed above. and can be called according to how
//u the calling in the code
 
void main(void)
{
int i, d;
ADCON1 = 0x06;
TRISC=0x00;
TRISD=0X00;
TRISE=0x01;
initialize();
display(text1, text2);
while(1)
{
if (in==1)
{
RC1=1;
display(text3, text5);
busy();
 
}
else
{
RC1=0;
display(text4, text5);
busy();
 
}
}
}
 
void initialize()
{
data=0x38; rs=0; rw=0; en=1; en=0; busy();
data=0x0E; rs=0; rw=0; en=1; en=0; busy();
data=0x01; rs=0; rw=0; en=1; en=0; busy();
data=0x06; rs=0; rw=0; en=1; en=0; busy();
}
 
void busy()
{
 unsigned char i,j;
         for(i=0;i<50;i++)
            for(j=0;j<255;j++);
}
 
 
void command(unsigned char var)
{
data=var; rs=0; rw=0;  en=1; en=0;busy();
}
 
void send_data(unsigned char var)
{
 rs=1;rw=0;  en=1; data=var;  en=0; busy();
}
 
void string(unsigned char *var)
{
while(*var)
send_data(*var++);
}
 
void display(unsigned char one[], unsigned char two[])
{
command(0x80);
string(one);
command(0xC0);
string(two);
busy();
}
 

Junaid_Shahid
Posts:110
Joined:Tue Feb 14, 2017 9:00 am

Re: Making an animated relay in proteus

Post by Junaid_Shahid » Mon Feb 20, 2017 12:03 pm

Eugene wrote:
Mon Feb 20, 2017 12:02 pm
Hi all,
I am trying to make an animated relay work to switch on the bulb in my circuit. When a input is given to the pic16f877A, it is to make the relay on the bulb. I have fixed everything correctly( according to me...). But i can't make the relay work when i execute (F12). The lcd included works well though. Pls help. I will include the coding and the picture of the circuit. Also what do the blue and red square lights that appear in the proteus simulation.
Pls do help me.
Thanks
S.Trinetra

p.s
relay is set to 5V. It is still not working.
Do u notice the power terminal connected to one part of the relay and diode. Must have a certain value? I can't seem to insert any value.
Do u think that there is something wrong with the code in Mplab?
Must ac source and bulb be connected to the transistor and ground?

Code: Select all

 
#include<htc.h>
#include <pic.h>
 
__CONFIG ( 0x3F32 );
 
#define data                PORTD     //Pins to the LCD D0-D7
#define rs          RC2       //rs of LCD
#define rw          RC0       //rw of LCD
#define en          RC3       //e of LCD
#define in          RE0       //input for RFID
 
// The above pins can be changed according to whicheva u choose
 
void initialize();          
void busy();
void display(unsigned char one[], unsigned char two[]);
void command(unsigned char var);
void send_data(unsigned char var);
void string(unsigned char *var);
 
unsigned char text1[]={"RFID PROJECT"};
unsigned char text2[]={"PLACE YOUR CARD"};
unsigned char text3[]={"CARD ACCEPTED"};
unsigned char text4[]={"CARD REJECTED"};
unsigned char text5[]={"                "};
//Additional text can be placed above. and can be called according to how
//u the calling in the code
 
void main(void)
{
int i, d;
ADCON1 = 0x06;
TRISC=0x00;
TRISD=0X00;
TRISE=0x01;
initialize();
display(text1, text2);
while(1)
{
if (in==1)
{
RC1=1;
display(text3, text5);
busy();
 
}
else
{
RC1=0;
display(text4, text5);
busy();
 
}
}
}
 
void initialize()
{
data=0x38; rs=0; rw=0; en=1; en=0; busy();
data=0x0E; rs=0; rw=0; en=1; en=0; busy();
data=0x01; rs=0; rw=0; en=1; en=0; busy();
data=0x06; rs=0; rw=0; en=1; en=0; busy();
}
 
void busy()
{
 unsigned char i,j;
         for(i=0;i<50;i++)
            for(j=0;j<255;j++);
}
 
 
void command(unsigned char var)
{
data=var; rs=0; rw=0;  en=1; en=0;busy();
}
 
void send_data(unsigned char var)
{
 rs=1;rw=0;  en=1; data=var;  en=0; busy();
}
 
void string(unsigned char *var)
{
while(*var)
send_data(*var++);
}
 
void display(unsigned char one[], unsigned char two[])
{
command(0x80);
string(one);
command(0xC0);
string(two);
busy();
}
 
I think you are looking for the Relay Simulation in Proteus ISIS

Post Reply