Bluetooth ile kontrol edilen araba yaptım. Çarpmayı önlemek için HC-SR04 uzaklık sensörünü kullandım ama sensörün kodları yüzünden büyük bir gecikme yaşanıyor. Bu sorunu nasıl çözebilirim?
#define trigPin 12
#define echoPin 13
long duration, distance;
void setup(){
Serial.begin(9600);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop(){
mesafe();
if(distance<=10){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
}
if(distance>10){
if(Serial.available()){
char data=Serial.read();
analogWrite(9,100);
analogWrite(10,100);
if(data=='F'){
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
}
if(data=='B'){
digitalWrite(7,LOW);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
digitalWrite(4,LOW);
}
if(data=='L'){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
}
if(data=='R'){
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
}
if(data=='S'){
digitalWrite(7,LOW);
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
}
}
}
}
void mesafe(){
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
delay(50);
}