Arduino ile nasıl yüksek frekans üretilir?

kağan cengiz

Femtopat
Katılım
21 Mart 2021
Mesajlar
6
Üzerinde çalıştığım bir projede 100 KHz'in üzerinde bir kare dalga sinyalini ihtiyaç duyuyorum o yüzden bunu Arduino UNO ve nano üzerinde tone kodu ile üretmeyi denedim ama tone komutu 16 bit integer kullandığı için sayıyı maksimum 65536 yapabiliyorum yani maksimum 65 KHz frekans üretebiliyorum. Bu yüzden de Arduino üzerinde baska bir frekans üretme yoluna ihtiyacım var ve okuyarak zamanınızı ayırdığınız için teşekkürler.
 

Dosya Ekleri

  • 20220126_043801.jpg
    20220126_043801.jpg
    238,5 KB · Görüntüleme: 24
Son düzenleyen: Moderatör:

TerabyteForever

Megapat
Katılım
5 Mart 2017
Mesajlar
6.523
Makaleler
7
Çözümler
56
AVR'deki ton üretimi de çoğu şey (sleep() mesela) gibi timer'a bağlı olarak yapılıyormuş. Elinde 16 bit bir timer olduğu için maksimum 65535 Hz ton üretebiliyorsun, bu da 16 bitlik tamsayıların limitidir.
 

İbrahim Zdemir

Terapat
Sosyal Tayfı
Katılım
2 Haziran 2015
Mesajlar
13.602
Makaleler
107
Çözümler
119
PWM için mutlak maksimum ~62 KHz.

Zamanlayıcı 8 Bit olduğundan overflow için için 256 tick gerekiyor. 16MHz / 256 =~ 62kHz.

ESP32 ya da STM32F1 / F4 kullanarak bu sorunu çözebilirsin ancak. Çünkü UNO'da bir şekilde 100 KHz alsan bile sistemdeki timer fonksiyonların çalışmayacak.
 
Yukarı