Merhabalar Arduino İde üzerinden hazıraldığıum kodu yüklemeye çalışırken "Deneyap KArtı için derleme hatası" alıyorum. Kodumda herhangi bir sorun yok gibi gözüküyor. Kodumun amacı 2 ayrı ultrasonik sensörden buzzer ile geri dönüş almak.
Ayrıca bazı pinleri kullanmaya çalıştığımda hata alıyorum, örneğin TX/RX yerine D3 D4 kullanmaya çalıştığımda hata veriyor. 2 3 amaçlı pinleri kullanmak için ayrı bir kütüphane mi gerekiyor ?
#include "deneyap.h" //deneyap.h kütüphanemizi import ediyoruz
#include "hcsr04ESP32.h" //sensör kütüphanesini import ediyoruz
#define trigPin D0 //sensörün trig ve echo pinlerinin bağlı olduğu pinler tanımlanır
#define echoPin D1
#define trigPina D8
#define echoPinb D9
#define buzzer D4 //buzzer (+) bacağının bağlı olduğu dijital pin tanımlanır
#define buzzer2 D12
UltraSonicDistanceSensor distanceSensora(trigPin, echoPin);
UltraSonicDistanceSensor distanceSensorb(trigPina echoPinb);// Ultrasonik sensor pin konfigurasyonu
void setup () {
Serial.begin(9600); // Seri haberleme baslatildi
pinMode(buzzer, OUTPUT); //buzzerın bağlı olduğu dijital pin çıkış olarak ayarlanır
pinMode(buzzer2, OUTPUT);
}
void loop () {
float mesafe = distanceSensora.measureDistanceCm();
float mesafe2 = distanceSensorb.measureDistanceCm();
Serial.println(mesafe); // Ultrasonik olcum yapiliyor ve seri terminale veri gonderiliyor
Serial.println(mesafe2);
//sensör geçersiz aralıkta (2 cm den az veya 400 cm den fazla) bir ölçüm yapmaya çalıştığında negatif değer döndürür. Bu durumu if bloğunda kontrol ediyoruz
if (mesafe < 0 ){
Serial.println("Mesafe ölçülemedi veya geçerli aralıkta değil");
}
else{
//belirli mesafe aralıklarında buzzer dan farklı aralıklarla ses çıkartıyoruz. 20 cm den azsa sürekli, 20 - 40 cm aralığında ise 50 ms aralıklarla, 40 - 60 cm aralığında 100 ms aralıklarla buzzer dan ses çıkartılır. 100 cm den uzunsa ses çıkartılmaz
if(mesafe<20){
digitalWrite(buzzer,1);
}
else if(mesafe<80){
delay(50);
digitalWrite(buzzer,1);
delay(50);
digitalWrite(buzzer,0);
}
else if(mesafe<120){
delay(150);
digitalWrite(buzzer,1);
delay(150);
digitalWrite(buzzer,0);
}
else if(mesafe<160){
delay(500);
digitalWrite(buzzer,1);
delay(500);
digitalWrite(buzzer,0);
}
else{
digitalWrite(buzzer,0);
}
}
if (mesafe2 < 0 ){
Serial.println("Mesafe ölçülemedi veya geçerli aralıkta değil");
}
else{
//belirli mesafe aralıklarında buzzer dan farklı aralıklarla ses çıkartıyoruz. 20 cm den azsa sürekli, 20 - 40 cm aralığında ise 50 ms aralıklarla, 40 - 60 cm aralığında 100 ms aralıklarla buzzer dan ses çıkartılır. 100 cm den uzunsa ses çıkartılmaz
if(mesafe2 <20){
digitalWrite(buzzer2,1);
}
else if(mesafe2 <80){
delay(50);
digitalWrite(buzzer2,HIGH);
delay(50);
digitalWrite(buzzer2,LOW);
}
else if(mesafe2 <120){
delay(150);
digitalWrite(buzzer2,HIGH);
delay(150);
digitalWrite(buzzer2,LOW);
}
else if(mesafe2 <160){
delay(500);
digitalWrite(buzzer2,HIGH);
delay(500);
digitalWrite(buzzer2,LOW);
}
else{
digitalWrite(buzzer2,LOW);
}
}
}
Ayrıca bazı pinleri kullanmaya çalıştığımda hata alıyorum, örneğin TX/RX yerine D3 D4 kullanmaya çalıştığımda hata veriyor. 2 3 amaçlı pinleri kullanmak için ayrı bir kütüphane mi gerekiyor ?
#include "deneyap.h" //deneyap.h kütüphanemizi import ediyoruz
#include "hcsr04ESP32.h" //sensör kütüphanesini import ediyoruz
#define trigPin D0 //sensörün trig ve echo pinlerinin bağlı olduğu pinler tanımlanır
#define echoPin D1
#define trigPina D8
#define echoPinb D9
#define buzzer D4 //buzzer (+) bacağının bağlı olduğu dijital pin tanımlanır
#define buzzer2 D12
UltraSonicDistanceSensor distanceSensora(trigPin, echoPin);
UltraSonicDistanceSensor distanceSensorb(trigPina echoPinb);// Ultrasonik sensor pin konfigurasyonu
void setup () {
Serial.begin(9600); // Seri haberleme baslatildi
pinMode(buzzer, OUTPUT); //buzzerın bağlı olduğu dijital pin çıkış olarak ayarlanır
pinMode(buzzer2, OUTPUT);
}
void loop () {
float mesafe = distanceSensora.measureDistanceCm();
float mesafe2 = distanceSensorb.measureDistanceCm();
Serial.println(mesafe); // Ultrasonik olcum yapiliyor ve seri terminale veri gonderiliyor
Serial.println(mesafe2);
//sensör geçersiz aralıkta (2 cm den az veya 400 cm den fazla) bir ölçüm yapmaya çalıştığında negatif değer döndürür. Bu durumu if bloğunda kontrol ediyoruz
if (mesafe < 0 ){
Serial.println("Mesafe ölçülemedi veya geçerli aralıkta değil");
}
else{
//belirli mesafe aralıklarında buzzer dan farklı aralıklarla ses çıkartıyoruz. 20 cm den azsa sürekli, 20 - 40 cm aralığında ise 50 ms aralıklarla, 40 - 60 cm aralığında 100 ms aralıklarla buzzer dan ses çıkartılır. 100 cm den uzunsa ses çıkartılmaz
if(mesafe<20){
digitalWrite(buzzer,1);
}
else if(mesafe<80){
delay(50);
digitalWrite(buzzer,1);
delay(50);
digitalWrite(buzzer,0);
}
else if(mesafe<120){
delay(150);
digitalWrite(buzzer,1);
delay(150);
digitalWrite(buzzer,0);
}
else if(mesafe<160){
delay(500);
digitalWrite(buzzer,1);
delay(500);
digitalWrite(buzzer,0);
}
else{
digitalWrite(buzzer,0);
}
}
if (mesafe2 < 0 ){
Serial.println("Mesafe ölçülemedi veya geçerli aralıkta değil");
}
else{
//belirli mesafe aralıklarında buzzer dan farklı aralıklarla ses çıkartıyoruz. 20 cm den azsa sürekli, 20 - 40 cm aralığında ise 50 ms aralıklarla, 40 - 60 cm aralığında 100 ms aralıklarla buzzer dan ses çıkartılır. 100 cm den uzunsa ses çıkartılmaz
if(mesafe2 <20){
digitalWrite(buzzer2,1);
}
else if(mesafe2 <80){
delay(50);
digitalWrite(buzzer2,HIGH);
delay(50);
digitalWrite(buzzer2,LOW);
}
else if(mesafe2 <120){
delay(150);
digitalWrite(buzzer2,HIGH);
delay(150);
digitalWrite(buzzer2,LOW);
}
else if(mesafe2 <160){
delay(500);
digitalWrite(buzzer2,HIGH);
delay(500);
digitalWrite(buzzer2,LOW);
}
else{
digitalWrite(buzzer2,LOW);
}
}
}
Yorum Yap