Question: implement pid in this code please. The code works good with following the line but not very good. And I dont know how to implement
implement pid in this code please. The code works good with following the line but not very good. And I dont know how to implement pid into the code as I saw pid makes tracking of the line more accurate and fast : #define LMEN Delay modified
#define LM
#define LM
#define RM
#define RM
#define RMEN
#define TRIG
#define ECHO
#define UServo
#define IRL
#define IRL
#define IRM
#define IRR
#define IRR
#include
Servo USservo;
byte OUTPINSLMEN LM LM RMEN RM RM TRIG;
byte INPINSIRL IRL IRM IRR IRR ECHO;
void setup
for int i ; i sizeofOUTPINS; i pinModeOUTPINSi OUTPUT;
for int i ; i sizeofINPINS; i pinModeINPINSi INPUT;
USservo.attachUServo;
USservo.write;
Serial.begin;
Serialbegin; BT Module connected to RX
int dist, ldist, rdist;
byte spd;
boolean sL sL sM sR sR;
void loop
sL digitalReadIRL;
sL digitalReadIRL;
sM digitalReadIRM;
sR digitalReadIRR;
sR digitalReadIRR;
Serial.printsL;
Serial.print;
Serial.printsL;
Serial.print;
Serial.printsM;
Serial.print;
Serial.printsR;
Serial.print;
Serial.printlnsR;
if sL && sL && sM && sR && sR
carcontrolHIGH HIGH, ; move back slowly
else if sL && sL && sM && sR && sR
carcontrolLOW HIGH, ; turn right
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; Sharp turn right
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; Wide turn right
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW HIGH, ; right by
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW HIGH, ; right by
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; go straight
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; go straight
delay;
else if sL && sL && sM && sR && sR
carcontrolHIGH LOW, ; turn left
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; sharp turn left
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; wide turn left
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; go straight
delay;
else if sL && sL && sM && sR && sR
carcontrolHIGH LOW, ; turn left by
delay;
else if sL && sL && sM && sR && sR
carcontrolHIGH LOW, ; turn left by
delay;
else if sL && sL && sM && sR && sR
carcontrolLOW LOW, ; go straight
delay;
else if sL && sL && sM && sR && sR
carcontrolHIGH LOW, ; u turn
delay;
void carcontrolboolean Ldir, byte Lspd boolean Rdir, byte Rspd
digitalWriteLM Ldir;
digitalWriteLMLdir;
analogWriteLMEN Lspd;
digitalWriteRM Rdir;
digitalWriteRMRdir;
analogWriteRMEN Rspd;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
