An auto car with 3 IR sensors.

Dependencies:   Ping

autocar/autocar.h

Committer:
cudaChen
Date:
2018-07-05
Revision:
15:1d440beb24d3
Parent:
13:87cd0ae37e06
Child:
18:d7509436e9ef

File content as of revision 15:1d440beb24d3:

#ifndef AUTOCAR_H
#define AUTOCAR_H

#include "mbed.h"

// used for motors
extern DigitalOut M1_enable;
extern DigitalOut M2_enable;
extern DigitalOut M1_in1;
extern DigitalOut M1_in2;
extern DigitalOut M2_in3;
extern DigitalOut M2_in4;

// used for IR sensors
extern AnalogIn leftIR;
extern AnalogIn middleIR;
extern AnalogIn rightIR;

// read the value of IR sensors
void readIR(bool* left, bool* middle, bool* right, int threshold);
int readIRValues();

long map(long x, long in_min, long in_max, long out_min, long out_max);

// used for controlling the direction of auto car
void DriveSingleMotor(int m, int speed, int dir);
void driveMotor(bool left, bool middle, bool right);
void driveMotorPID(int values, float Kp, float Ki, float Kd);

void init();
void forward();
void turnLeft();
void turnRight();

#endif