Arduino kod için tavsiyeler

crayzMan

Centipat
Katılım
8 Ağustos 2022
Mesajlar
3
Daha fazla  
Cinsiyet
Erkek
Herkese merhaba, ramazan ayınız mübarek olsun öncelikle, şimdi konuya geçelim. Benim bir engelden kaçan araba projem var ve ben bu arabanın kodlarını bitirdim.

Apache config:
#define echoPin 13.
#define trigPin 12.
#define MotorR1 7
#define MotorR2 6
#define MotorRE 9
#define MotorL1 4
#define MotorL2 5
#define MotorLE 3

long sure, uzaklik;

void setup() {

 pinMode(echoPin, INPUT);
 pinMode(trigPin, OUTPUT);
 pinMode(MotorL1, OUTPUT);
 pinMode(MotorL2, OUTPUT);
 pinMode(MotorLE, OUTPUT);
 pinMode(MotorR1,OUTPUT);
 pinMode(MotorR2,OUTPUT);
 pinMode(MotorRE,OUTPUT);
 Serial.begin(9600);

 }
void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(5);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 sure = pulseIn(echoPin, HIGH);
 uzaklik = sure / 29.1 / 2;
 Serial.println(uzaklik);
 if (uzaklik < 15)
 {
 geri();
 delay(150);
 sag();
 delay(250);
 sol();
 delay(250);
 }
 else{
 ileri();
 }
}
void ileri(){
 digitalWrite(MotorR1, HIGH);
 digitalWrite(MotorR2, LOW);
 analogWrite(MotorRE, 200);
 digitalWrite(MotorL1, HIGH);
 digitalWrite(MotorL2, LOW);
 analogWrite(MotorLE, 200);

}
void sag(){
 digitalWrite(MotorR1, LOW);
 digitalWrite(MotorR2, HIGH);
 analogWrite(MotorRE, 120);
 digitalWrite(MotorL1, LOW);
 digitalWrite(MotorL2, HIGH);
 analogWrite(MotorLE, 120);

}
void sol(){
 digitalWrite(MotorR1, HIGH);
 digitalWrite(MotorR2, LOW);
 analogWrite(MotorRE, 120);
 digitalWrite(MotorL1, HIGH);
 digitalWrite(MotorL2, LOW);
 analogWrite(MotorLE, 120);

}
void geri(){
 digitalWrite(MotorR1, LOW);
 digitalWrite(MotorR2, HIGH);
 analogWrite(MotorRE, 150);
 digitalWrite(MotorL1, LOW);
 digitalWrite(MotorL2, HIGH);
 analogWrite(MotorLE, 150);

}

Yazdığım kod da bu şimdi ben bu kodu geliştirmek istiyorum bana nasıl bir öneri sunabilir siniz?
 
Herkese merhaba, ramazan ayınız mübarek olsun öncelikle, şimdi konuya geçelim. Benim bir engelden kaçan araba projem var ve ben bu arabanın kodlarını bitirdim.

Apache config:
#define echoPin 13.
#define trigPin 12.
#define MotorR1 7
#define MotorR2 6
#define MotorRE 9
#define MotorL1 4
#define MotorL2 5
#define MotorLE 3

long sure, uzaklik;

void setup() {

 pinMode(echoPin, INPUT);
 pinMode(trigPin, OUTPUT);
 pinMode(MotorL1, OUTPUT);
 pinMode(MotorL2, OUTPUT);
 pinMode(MotorLE, OUTPUT);
 pinMode(MotorR1,OUTPUT);
 pinMode(MotorR2,OUTPUT);
 pinMode(MotorRE,OUTPUT);
 Serial.begin(9600);

 }
void loop() {
 digitalWrite(trigPin, LOW);
 delayMicroseconds(5);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 sure = pulseIn(echoPin, HIGH);
 uzaklik = sure / 29.1 / 2;
 Serial.println(uzaklik);
 if (uzaklik < 15)
 {
 geri();
 delay(150);
 sag();
 delay(250);
 sol();
 delay(250);
 }
 else{
 ileri();
 }
}
void ileri(){
 digitalWrite(MotorR1, HIGH);
 digitalWrite(MotorR2, LOW);
 analogWrite(MotorRE, 200);
 digitalWrite(MotorL1, HIGH);
 digitalWrite(MotorL2, LOW);
 analogWrite(MotorLE, 200);

}
void sag(){
 digitalWrite(MotorR1, LOW);
 digitalWrite(MotorR2, HIGH);
 analogWrite(MotorRE, 120);
 digitalWrite(MotorL1, LOW);
 digitalWrite(MotorL2, HIGH);
 analogWrite(MotorLE, 120);

}
void sol(){
 digitalWrite(MotorR1, HIGH);
 digitalWrite(MotorR2, LOW);
 analogWrite(MotorRE, 120);
 digitalWrite(MotorL1, HIGH);
 digitalWrite(MotorL2, LOW);
 analogWrite(MotorLE, 120);

}
void geri(){
 digitalWrite(MotorR1, LOW);
 digitalWrite(MotorR2, HIGH);
 analogWrite(MotorRE, 150);
 digitalWrite(MotorL1, LOW);
 digitalWrite(MotorL2, HIGH);
 analogWrite(MotorLE, 150);

}

Yazdığım kod da bu şimdi ben bu kodu geliştirmek istiyorum bana nasıl bir öneri sunabilir siniz?
Şuan bu araç engelden kaçmıyor. Engeli gördüğünde etrafında dönüyor.

Sorun senin engelden kaçış algoritmasında. Engel gördü geri git, bekle, sağ dön, bekle sola dön demişsin ama sağ döndükten sonra ileri gitme eylemi yani etrafında dönecek ayrıca koyduğun delay anlamsız kalmış. Yön fonksiyonların içinde delay olmadığı için daha dönemeden o fonksiyonun görevi bitmiş olacak.
 
Şuan bu araç engelden kaçmıyor. Engeli gördüğünde etrafında dönüyor.

Sorun senin engelden kaçış algoritmasında. Engel gördü geri git, bekle, sağ dön, bekle sola dön demişsin ama sağ döndükten sonra ileri gitme eylemi yani etrafında dönecek ayrıca koyduğun delay anlamsız kalmış. Yön fonksiyonların içinde delay olmadığı için daha dönemeden o fonksiyonun görevi bitmiş olacak.
verdiğin bilgi için teşekkür ederim, peki bu sorunu hangi şekilde çözebilirim ??
 

Geri
Yukarı