#include <SharpIR.h>
#define IR A0
#define model 430
SharpIR SharpIR(IR, model);
#define CW 0
#define CCW 1
#define MOTOR_A 0
#define MOTOR_B 1
const byte PWMA = 3;
const byte PWMB = 11;
const byte DIRA = 12;
const byte DIRB = 13;
void setup()
{
Serial.begin(9600);
setupArdumoto();
}
void loop()
{
int mesafe=SharpIR.distance();
String distance = String(mesafe);
Serial.print("mesafe = ");
Serial.print(mesafe);
Serial.print(" cm");
Serial.print("\n");
delay(10);
if (mesafe < 10){ileri();} else don();
}
void driveArdumoto(byte motor, byte dir, byte spd)
{
if (motor == MOTOR_A)
{
digitalWrite(DIRA, dir);
analogWrite(PWMA, spd);
}
else if (motor == MOTOR_B)
{
digitalWrite(DIRB, dir);
analogWrite(PWMB, spd);
}
}
void stopArdumoto(byte motor)
{
driveArdumoto(motor, 0, 0);
}
void setupArdumoto()
{
pinMode(PWMA, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(DIRA, OUTPUT);
pinMode(DIRB, OUTPUT);
digitalWrite(PWMA, LOW);
digitalWrite(PWMB, LOW);
digitalWrite(DIRA, LOW);
digitalWrite(DIRB, LOW);
}
void ileri()
{
driveArdumoto(MOTOR_A, CW, 75);
driveArdumoto(MOTOR_B, CW, 75);
}
void don()
{
driveArdumoto(MOTOR_A, CCW, 75);
driveArdumoto(MOTOR_B, CCW, 75);
delay(750);
driveArdumoto(MOTOR_A, CW, 75);
driveArdumoto(MOTOR_B, CCW, 75);
delay(750);
}