Çözüldü Arduino ile 3 sensörlü aracın sadece tek sensörü çalışıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Della.dd

Decipat
Katılım
25 Ağustos 2024
Mesajlar
2.401
Çözümler
23
Daha fazla  
Cinsiyet
Erkek
Kod işte burada.
Kod:
İnt ena = 9;
İnt enb = 10;
İnt IN1 = 13;
İnt IN2 = 12;
İnt IN3 = 11;
İnt IN4 = 8;

İnt uzaklik = 0;
İnt sure = 0;
İnt uzaklik1 = 0;
İnt sure1 = 0;
İnt uzaklik2 = 0;
İnt sure2 = 0;

İnt echo = A0;
İnt trig = A1;
İnt echo1 = 5;
İnt trig1 = 6;
İnt echo2 = A2;
İnt trig2 = A3;

Void setup(){
 PinMode(ena, INPUT);
 PinMode(enb, INPUT);
 PinMode(IN1, OUTPUT);
 PinMode(IN2, OUTPUT);
 PinMode(IN3, OUTPUT);
 PinMode(IN4, OUTPUT);

 PinMode(echo1, INPUT);
 PinMode(echo, INPUT);
 PinMode(echo2, INPUT);
 PinMode(trig, OUTPUT);
 PinMode(trig1, OUTPUT);
 PinMode(trig2, OUTPUT);
 Serial. Begin(9600);
 Delay(1000);

}

Void loop() {
 DigitalWrite(trig1, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig1, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig1, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure1 = pulseIn(echo1, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik1 = sure1 / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik1);

 DigitalWrite(trig2, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig2, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig2, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure2 = pulseIn(echo2, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik2 = sure2 / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik2);

 DigitalWrite(trig, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure = pulseIn(echo, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik);

 İf (uzaklik < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

 İf (uzaklik1 < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

 İf (uzaklik2 < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

}
 
Kod işte burada.
Kod:
İnt ena = 9;
İnt enb = 10;
İnt IN1 = 13;
İnt IN2 = 12;
İnt IN3 = 11;
İnt IN4 = 8;

İnt uzaklik = 0;
İnt sure = 0;
İnt uzaklik1 = 0;
İnt sure1 = 0;
İnt uzaklik2 = 0;
İnt sure2 = 0;

İnt echo = A0;
İnt trig = A1;
İnt echo1 = 5;
İnt trig1 = 6;
İnt echo2 = A2;
İnt trig2 = A3;

Void setup(){
 PinMode(ena, INPUT);
 PinMode(enb, INPUT);
 PinMode(IN1, OUTPUT);
 PinMode(IN2, OUTPUT);
 PinMode(IN3, OUTPUT);
 PinMode(IN4, OUTPUT);

 PinMode(echo1, INPUT);
 PinMode(echo, INPUT);
 PinMode(echo2, INPUT);
 PinMode(trig, OUTPUT);
 PinMode(trig1, OUTPUT);
 PinMode(trig2, OUTPUT);
 Serial. Begin(9600);
 Delay(1000);

}

Void loop() {
 DigitalWrite(trig1, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig1, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig1, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure1 = pulseIn(echo1, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik1 = sure1 / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik1);

 DigitalWrite(trig2, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig2, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig2, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure2 = pulseIn(echo2, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik2 = sure2 / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik2);

 DigitalWrite(trig, Low); //sensör pasif hale getirildi.
 DelayMicroseconds(5);
 DigitalWrite(trig, HIGH); //Sensore ses dalgasının üretmesi için emir verildi.
 DelayMicroseconds(10);
 DigitalWrite(trig, Low); //Yeni dalgaların üretilmemesi için trig PIN'i Low konumuna getirildi.
 Sure = pulseIn(echo, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor.
 Uzaklik = sure / 29.1 / 2; //ölçülen süre uzaklığa çevriliyor.
 Serial. Println(uzaklik);

 İf (uzaklik < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

 İf (uzaklik1 < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

 İf (uzaklik2 < 45){
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, HIGH);
 DigitalWrite(IN2, Low);
 DigitalWrite(IN3, Low);
 DigitalWrite(IN4, HIGH);
}
Else{
 AnalogWrite(ena, 255);
 AnalogWrite(enb, 200);
 DigitalWrite(IN1, Low);
 DigitalWrite(IN2, HIGH);
 DigitalWrite(IN3, HIGH);
 DigitalWrite(IN4, Low);
}

}
Void setup kısmında PinMode(ena, INPUT); PinMode(enb, INPUT); yerine OUTPUT yapmayı deneyin.

Bir de uzaklık ve sure tanımları için int yerine float kullanın
 
Void setup kısmında pinmode(ena, ınput); pinmode(enb, ınput); yerine output yapmayı deneyin.

Bir de uzaklık ve sure tanımları için int yerine float kullanın.

Hocam yine aynı.

Hocam sorunu çözdüm if kısmını değiştirdim.
 
Son düzenleme:
Çözüm

Technopat Haberler

Yeni konular

Geri
Yukarı