Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

PIC programming

Status
Not open for further replies.

Nilanka Pushpakumara

Newbie level 1
Joined
Jul 26, 2015
Messages
0
Helped
0
Reputation
0
Reaction score
0
Trophy points
0
Activity points
0
I.m currently working in a line folowweing robot.I want to read 3 IR sensors.please can anyone tell me how to edit my following code

int leftsensor=0;
int middlesensor=0;
int rightsensor=0;
int lefsenval=60;
int midsenval=60;
int rigsenval=60;
PWM1_Init();

int goforward()
{
PWM1_Set_Duty(255);
PORTC.F0=0; //4y=0; rightside motor
PORTC.F1=1; //3y=1;
PORTC.F2=0; //1y=0 leftsidemotor
PORTC.F3=1; //2y=1
}
int turnleft()
{ PWM1_Set_Duty(127);
PORTC.F0=0; //4y=0; rightside motor
PORTC.F1=1; //3y=1;
PORTC.F2=1; //1y=1 leftsidemotor
PORTC.F3=0; //2y=0
}
int turnright()
{ PWM1_Set_Duty(127);
PORTC.F0=1; //4y=1; rightside motor
PORTC.F1=0; //3y=0;
PORTC.F2=0; //1y=0 leftsidemotor
PORTC.F3=1; //2y=1
}
int stop()
{
PORTC.F0=0; //4y=0; rightside motor
PORTC.F1=0; //3y=0;
PORTC.F2=0; //1y=0 leftsidemotor
PORTC.F3=0; //2y=0
}

void main() {

TRISA=0xff;
TRISC=0x00;
PORTA=0xff;
PORTC=0x00;
ADC_Init();
ADCON0=0x00;



leftsensor=ADC_Read(0);
middlesensor=ADC_Read(1);
rightsensor=ADC_Read(2);

while(1)
{
if(leftsensor<lefsenval)
{
while(middlesensor<midsenval)
{
middlesensor=ADC_Read(1);
turnleft();
}
leftsensor=ADC_Read(0);
}
else if(middlesensor<midsenval)
{
while((rightsensor<rigsenval)|| (leftsensor<lefsenval))
{
rightsensor=ADC_Read(2);
leftsensor=ADC_Read(0);
goforward();
}
middlesensor=ADC_Read(1);
}
else if(rightsensor<rigsenval)
{
while(middlesensor<midsenval)
{
middlesensor=ADC_Read(1);
turnright();
}
rightsensor=ADC_Read(2);
}
else if((leftsensor<lefsenval)&&(middlesensor<midsenval))
{
while(middlesensor<midsenval)
{
middlesensor=ADC_Read(1);
turnleft();
}
leftsensor=ADC_Read(0);
middlesensor=ADC_Read(1);
}
else if((rightsensor<rigsenval)&&(middlesensor<midsenval))
{
while(middlesensor<midsenval)
{
middlesensor=ADC_Read(1);
turnright();
}
rightsensor=ADC_Read(2);
middlesensor=ADC_Read(1);
}
else if((rightsensor<rigsenval)&&(middlesensor<midsenval)&&(leftsensor<lefsenval))
{
rightsensor=ADC_Read(2);
leftsensor=ADC_Read(0);
middlesensor=ADC_Read(1);
stop();
}
}
}
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top