Question: Can you explain every single part of this code to me ? thank you! Is there anything different I could do to improve this code?
Can you explain every single part of this code to me thank you! Is there anything different I could do to improve this code?
#include
#define PINMotorAIN
#define PINMotorPWMB
#define PINMotorPWMA
#define PINMotorBIN
#define PINMotorSTBY
#define ECHOPIN
#define TRIGPIN
#define FULLSPEED
#define CAUTIONSPEED
#define CLOSEENOUGHDISTANCE
#define TOOCLOSEDISTANCE
#define ENOUGHSPACEDISTANCE
#define BACKUPDISTANCE
Servo servo;
int angle ;
struct Distances
int left;
int right;
;
void setup
Serial.begin;
pinModePINMotorPWMA, OUTPUT;
pinModePINMotorPWMB OUTPUT;
pinModePINMotorAIN OUTPUT;
pinModePINMotorBIN OUTPUT;
pinModePINMotorSTBY OUTPUT;
pinModeTRIGPIN, OUTPUT;
pinModeECHOPIN, INPUT;
servo.attach;
servo.writeangle;
void loop
digitalWritePINMotorSTBY HIGH;
float distance readPing;
if distance ENOUGHSPACEDISTANCE
moveForwardFULLSPEED;
else if distance CLOSEENOUGHDISTANCE && distance ENOUGHSPACEDISTANCE
moveForwardCAUTIONSPEED;
else if distance TOOCLOSEDISTANCE && distance CLOSEENOUGHDISTANCE
Distances distances Peer;
if distancesright distances.left
turnRight;
else
turnLeft;
delay;
else
moveBackward;
delay;
Stop;
delay;
Distances Peer
Distances distances;
lookLeft;
delay;
distances.left readPing;
lookStraight;
delay;
lookRight;
delay;
distances.right readPing;
lookStraight;
delay;
return distances;
int readPing
digitalWriteTRIGPIN, LOW;
delayMicroseconds;
digitalWriteTRIGPIN, HIGH;
delayMicroseconds;
digitalWriteTRIGPIN, LOW;
unsigned long durationus pulseInECHOPIN, HIGH;
float distancecm durationus;
Serial.printdistance: ;
Serial.printdistancecm;
Serial.println cm;
return distancecm;
void Stop
digitalWritePINMotorAIN HIGH;
analogWritePINMotorPWMA, ;
digitalWritePINMotorBIN HIGH;
analogWritePINMotorPWMB;
void moveForwardint speed
digitalWritePINMotorAIN HIGH;
analogWritePINMotorPWMA, speed;
digitalWritePINMotorBIN HIGH;
analogWritePINMotorPWMB speed;
void moveBackward
digitalWritePINMotorAIN LOW;
analogWritePINMotorPWMA, FULLSPEED;
digitalWritePINMotorBIN LOW;
analogWritePINMotorPWMB FULLSPEED;
void lookRight
Stop;
servo.write;
void lookStraight
Stop;
servo.write;
void lookLeft
Stop;
servo.write;
void turnLeft
digitalWritePINMotorAIN HIGH;
analogWritePINMotorPWMA, ;
digitalWritePINMotorBIN HIGH;
analogWritePINMotorPWMB;
void turnRight
digitalWritePINMotorAIN HIGH;
analogWritePINMotorPWMA, ;
digitalWritePINMotorBIN HIGH;
analogWritePINMotorPWMB;
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
