toneMultiple

Bu örnek, birden çok çıkışta farklı notaları çalmak için tone () komutunun nasıl kullanılacağını gösterir.

Tone () komutu, Atmega'nın dahili zamanlayıcılarından birini devralarak, istediğiniz frekansa ayarlayarak ve bir çıkış pinini atmak için zamanlayıcıyı kullanarak çalışır. Yalnızca bir zamanlayıcı kullandığından, aynı anda yalnızca bir nota çalabilirsiniz. Bununla birlikte, notları farklı pimler üzerinde sırayla çalabilirsiniz. Bunu yapmak için, bir sonrakine geçmeden önce bir pim için zamanlayıcıyı kapatmanız gerekir.

Bunu açıkladığı için Greg Borenstein'a teşekkürler.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • 3 8 ohm hoparlör
  • 3100 ohm direnç
  • bağlantı telleri
  • breadboard

Devre

Şematik

büyütmek için resme tıklayın

Kod

Aşağıdaki çizim, hoparlörlerin her birinde sırayla bir ton çalıyor ve önce önceki hoparlörü kapatıyor. Her tonun süresinin, onu izleyen gecikme ile aynı olduğunu unutmayın.

İşte ana taslak:

/*
  Multiple tone player

  Plays multiple tones on multiple pins in sequence

  circuit:
  - three 8 ohm speakers on digital pins 6, 7, and 8

  created 8 Mar 2010
  by Tom Igoe
  based on a snippet from Greg Borenstein

  This example code is in the public domain.

  http:egitim.aspx?e=Tone4
*/


void setup() {

}

void loop() {
  // turn off tone function for pin 8:
  noTone(8);
  // play a note on pin 6 for 200 ms:
  tone(6, 440, 200);
  delay(200);

  // turn off tone function for pin 6:
  noTone(6);
  // play a note on pin 7 for 500 ms:
  tone(7, 494, 500);
  delay(500);

  // turn off tone function for pin 7:
  noTone(7);
  // play a note on pin 8 for 300 ms:
  tone(8, 523, 300);
  delay(300);
}
[Kodu Al]

See Also