Çözüldü Arduino ile Birden Fazla Buzzer Nasıl Çalıştırılır?

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

G3258

Kilopat
Katılım
9 Temmuz 2015
Mesajlar
1.657
Makaleler
5
Çözümler
5
Arduino ile birden fazla pasif buzzer nasıl çaldırılır? Bildiğiniz üzere "tone()" fonksiyonu ile pasif buzzer çaldırılıyor. 1 tane pasif buzzer taktığımda gayet ses veriyor. İkinciyi taktığımda ise birincisi yine ses veriyor fakat ikincisi ses vermiyor. Nasıl ikisinide çalıştırabilirim?

Diğer bir deyişle şöyle ifade edeyim: 2. pine bağlı buzzer çalışırken, 3. pine bağlı buzzer çalışmıyor. Yardımcı olabilir misiniz?

Kod:
void setup() {

  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);

}

  void loop() {

  tone(2,2000);
  tone(3,2000);
}
 
Çözüm
@G3258 Arduino'da aynı anda iki işlem yapmanın doğal bir uygulaması olmadığından dolayı bu problemi yaşıyorsunuz. İlk başta olacağını düşündüm çünkü daha önce tone() ile çalışmam olmadı; tone()'nun çalışma mantığını yap ve bitir olarak düşünmüştüm (digitalWrite gibi) ama aslında devamlı kare dalga sinyali verdiğinden dolayı noTone() kullanana kadar başka bir pin'den işlem yapıp yararlanamıyorsunuz.

noTone(), tone() metodu ile başlayan kare dalga sinyalin sonlandırılması için kullanılır. Aynı anda sadece tek pin'den sinyal alabilirsiniz. Bu sebepten diğer pin'den de sinyal almak istersek noTone() metodu ile daha önceden başlamış bir sinyali sonlandırıp yenisine geçebilirsiniz.

Sizin için çözüm önerim şudur sadece bir dijital pini kullanıp iki buzzer'ı paralel bağlayın. Böylece daha yüksek ses elde etme amacınıza ulaşmış olursunuz.
2.pinden mi ses gelmiyor? Yanlış hatırlamıyorsam 'tone' sadece PWM pinleri ile çalışıyor onlarda 3, 5, 6, 9, 10 ve 11. dijital pinler.

Uno, Nano, Mini3, 5, 6, 9, 10, 11490 Hz (pins 5 and 6: 980 Hz)
Mega2 - 13, 44 - 46490 Hz (pins 4 and 13: 980 Hz)
Leonardo, Micro, Yún3, 5, 6, 9, 10, 11, 13490 Hz (pins 3 and 11: 980 Hz)

Use of the tone() function will interfere with PWM output on pins 3 and 11 (on boards other than the Mega).

Hocam 3. ve 11. dijital pinleri kullanabiliyormuşsunuz. Siz 2. pini kullandığınız için çalıştıramamaşıssınız sanırım.
 
Son düzenleme:
2.pinden mi ses gelmiyor? Yanlış hatırlamıyorsam 'tone' sadece PWM pinleri ile çalışıyor onlarda 3, 5, 6, 9, 10, 11 ve 13. dijital pinler.
2. pinden ses geliyor, 3. pinden ses gelmiyor. Yani bir buzzer takılı iken diğerinden ses alamıyorum.
Araya saniye koymayı dener misiniz? Yani şunu koymayı deneyin:

C++:
delay(1000);
Ama ben ikisinin de aynı anda çalmasını istiyorum. Böylelikle daha şiddetli bir ses edebilirim.
 
3. ve 11. pinleri dener misin?

2. pinden ses geliyor, 3. pinden ses gelmiyor. Yani bir buzzer takılı iken diğerinden ses alamıyorum.

Ama ben ikisinin de aynı anda çalmasını istiyorum. Böylelikle daha şiddetli bir ses edebilirim.
 
3. ve 11. pinleri dener misin?
Teşekkürler. Deneyip sonucu yazacağım.
3. ve 11. pinleri dener misin?
Yine olmadı.


Kodu bu şekilde yazarsam, 3. pine bağlı buzzer çalıyor. 11. pine bağlı buzzer çalmıyor.
Kod:
void setup() {

  pinMode(3,OUTPUT);
  pinMode(11,OUTPUT);

}

void loop() {

  tone(3,2000);
  tone(11,2000);
 
}


Kodu bu şekilde yazarsam, 11. pine bağlı buzzer çalıyor. 3. pine bağlı buzzer çalmıyor.
Kod:
void setup() {

  pinMode(3,OUTPUT);
  pinMode(11,OUTPUT);

}

void loop() {

  tone(11,2000);
  tone(3,2000);
 
}
@orkunyilmaz
 
Son düzenleme:
@G3258 Arduino'da aynı anda iki işlem yapmanın doğal bir uygulaması olmadığından dolayı bu problemi yaşıyorsunuz. İlk başta olacağını düşündüm çünkü daha önce tone() ile çalışmam olmadı; tone()'nun çalışma mantığını yap ve bitir olarak düşünmüştüm (digitalWrite gibi) ama aslında devamlı kare dalga sinyali verdiğinden dolayı noTone() kullanana kadar başka bir pin'den işlem yapıp yararlanamıyorsunuz.

noTone(), tone() metodu ile başlayan kare dalga sinyalin sonlandırılması için kullanılır. Aynı anda sadece tek pin'den sinyal alabilirsiniz. Bu sebepten diğer pin'den de sinyal almak istersek noTone() metodu ile daha önceden başlamış bir sinyali sonlandırıp yenisine geçebilirsiniz.

Sizin için çözüm önerim şudur sadece bir dijital pini kullanıp iki buzzer'ı paralel bağlayın. Böylece daha yüksek ses elde etme amacınıza ulaşmış olursunuz.
 
Son düzenleme:
Çözüm

Geri
Yukarı