Belli mesafede tonu artan buzzer.
  • Merhabalar. Projemde 3 tane HC-SR04 sensörü tek bir buzzera bağlayıp yakınlaşdıkça frekansı artan sesler istiyorum ama 3 tane sensörde işin içinden çıkamıyorum. Yazdığım kodda sesi alabiliyorum ama susturma tarafında başarısızım. İstediğim 15 cmden küçükken frekansın 100, 16-30 cm arasında frekansın 800, ve 31den büyükse buzzerın susmasını istiyorum fakat kodun sonunu getiremedim yardımcı olursanız çok sevinirim:))

    int buzzPin = 3;

    int trigPin1 = 6;
    int echoPin1 = 7;

    int trigPin2 = 8;
    int echoPin2 = 9;

    int trigPin3 = 10;
    int echoPin3 = 11;

    void setup() {
    Serial.begin (9600);
    pinMode(trigPin1, OUTPUT);
    pinMode(echoPin1, INPUT);

    pinMode(trigPin2, OUTPUT);
    pinMode(echoPin2, INPUT);

    pinMode(trigPin3, OUTPUT);
    pinMode(echoPin3, INPUT);

    pinMode(buzzPin, OUTPUT);
    }

    void firstsensor(){
    int duration1, distance1;
    digitalWrite (trigPin1, HIGH);
    delayMicroseconds (10);
    digitalWrite (trigPin1, LOW);
    duration1 = pulseIn (echoPin1, HIGH);
    distance1 = (duration1/2) / 29.1;

    Serial.print("1st Sensor: ");
    Serial.print(distance1);
    Serial.print("cm ");

    if (distance1 < 15)
    tone(buzzPin,100);
    else if (16 < distance1 < 30)
    tone(buzzPin,800);

    else (distance1 > 31);
    noTone(buzzPin);



    }
    void secondsensor(){
    int duration2, distance2;
    digitalWrite (trigPin2, HIGH);
    delayMicroseconds (10);
    digitalWrite (trigPin2, LOW);
    duration2 = pulseIn (echoPin2, HIGH);
    distance2 = (duration2/2) / 29.1;

    Serial.print("2nd Sensor: ");
    Serial.print(distance2);
    Serial.print("cm ");

    if (distance2 <15) <br /> tone(buzzPin,100);

    else if (16 < distance2 < 30)
    tone(buzzPin,800);

    else (distance2 > 31);
    noTone(buzzPin);


    }

    void thirdsensor(){
    int duration3, distance3;
    digitalWrite (trigPin3, HIGH);
    delayMicroseconds (10);
    digitalWrite (trigPin3, LOW);
    duration3 = pulseIn (echoPin3, HIGH);
    distance3 = (duration3/2) / 29.1;

    Serial.print("3rd Sensor: ");
    Serial.print(distance3);
    Serial.print("cm");

    if (distance3 < 15)
    tone(buzzPin,100);


    else if (16 < distance3 < 30)
    tone(buzzPin,800);

    else (distance3 > 31);
    noTone(buzzPin);


    }

    void loop() {
    Serial.println("\n");
    firstsensor();
    secondsensor();
    thirdsensor();
    delay(100);
    }

    kodumda bu şekilde.
  • 3 sensoru once okusan sonra ıclerınden en kısa mesafe bılgısıne gore olana gore ses uretsen nasıl olur
  • Valla olur da onu nasıl yapıcam :)) Arduinoda yeniyim de.
  • yukarıdakı kodu sen yazmadınmı. once hepsınden mesafeyı tek tek oku mesafe1 mesafe2 mesafe3 dıye bırer degıskene yaz sonra bu uc bılgıyı kontrol et ve ses cıkar.
  • yok yazdım da sağdan soldan tutoriallar sayesinde hallettim benim sıkıntım mesafeler ölçümü yapıyor ama susturamıyorum sonra buzzerı

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.