//Bluetooth kontrollü hcsr04 sensörlü araç projesi.
//L298N Bağlantısı.
const int motorA1 = 5; // L298N'in IN3 Girişi.
const int motorA2 = 7; // L298N'in IN1 Girişi.
const int motorB1 = 6; // L298N'in IN2 Girişi.
const int motorB2 = 4; // L298N'in IN4 Girişi.
const int trigpin = 8;
const int echopin = 9;
int state; //Bluetooth cihazından gelecek sinyalin değişkeni.
int vSpeed = 255; // Standart Hız, 0-255 arası bir değer alabilir.
void setup() {
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
Serial.begin(9600);
}
void loop() {
int mesafe = mesafe_olcumu();
Serial.println(mesafe);
if (Serial.available() > 0) {
state = Serial.read();
}
if (state == '0') {
vSpeed = 0;
} else if (state == '1') {
vSpeed = 100;
} else if (state == '2') {
vSpeed = 180;
} else if (state == '3') {
vSpeed = 200;
} else if (state == '4') {
vSpeed = 255;
}
if (state == 'L') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'G') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 0);
analogWrite(motorB1, 100); analogWrite(motorB2, 0);
} else if (state == 'I') {
analogWrite(motorA1, 100); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 0);
} else if (state == 'B') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'H') {
analogWrite(motorA1, 0); analogWrite(motorA2, 100);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);
} else if (state == 'J') {
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, 100);
} else if (state == 'F') {
analogWrite(motorA1, vSpeed); analogWrite(motorA2, 150);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
} else if (state == 'R') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, vSpeed); analogWrite(motorB2, 150);
} else if (state == 'S') {
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
}
}
int mesafe_olcumu() {
long sure, mesafe;
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
sure = pulseIn(echopin, HIGH);
mesafe = sure / 29.1 / 2;
delay(50);
return mesafe;
}
if (mesafe <= 20){
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
analogWrite(motorB1, 0); analogWrite(motorB2, 0);
delay(300);
analogWrite(motorA1, 0); analogWrite(motorA2, vSpeed);
analogWrite(motorB1, 0); analogWrite(motorB2, vSpeed);