Arduino Yok DAC SINEWAVE

Arduino Yok DAC SINEWAVE

İçindekiler:

Anonim

/ * DAYANIKLI LADDER DAC ÇIKIŞI

BU BİR SİNAVİ YARATACAKTIR Her bir pime 1 Meg direnç bağlayın. Tüm dirençleri birbirine bağlayın. Ortak noktada bir SINE WAVE ölçeceksiniz. Bir osiloskopla. Faydalı bir çıktı oluşturmak için yüksek empedanslı bir amplifikatör gereklidir. * /

void setup () {pinMode (2, OUTPUT); pinMode (3, ÇIKIŞ); pinMode (4, ÇIKIŞ); pinMode (5, ÇIKIŞ); pinMode (6, ÇIKIŞ); pinMode (7, ÇIKIŞ); pinMode (8, ÇIKIŞ); pinMode (9, ÇIKIŞ); pinMode (10, ÇIKIŞ); }

void loop () {// Max Frequency döngüsünü 10.000 kez arayın (işaretsiz int lt = 0; lt <= 10000; lt ++) {// lt = döngü süresi MaxFrequency (); } gecikme (200); // Maksimum frekans döngüsü END // DÜŞÜK FREKANS döngüsünü 10,000 kez arayın (işaretsiz int LFlt = 0; LFlt <= 10000; LFlt ++) {// LFlt = Düşük Frekans döngü süresi Frekans (10); // 10 delayMicroseconds} gecikme (200); // HİÇBİR FREKANSI döngüsünü 10.000 kez daha uzun bir gecikme ile (adımlar imzasız int LFlt = 0; LFlt <= 10000; LFlt ++) {10 LFlt = Düşük Frekans döngü süresi Frekansı (100); // 100 delayMicroseconds} gecikme (200); // Düşük Frekans END / * Süpürmeyi etkinleştirmek için bu bloğu uncomment // Frekans işlevini 200 kez çağırın döngü süresi çok daha uzun, bu yüzden daha az döngü (imzasız int St = 0; St <= 200; St ++) // ST = Süpürme süresi {için (int F = 1; F <= 30; F = F + 1) // F = Gecikme Daha uzun gecikme = düşük frekans {Frekans (F); // (F = 50; F> = 1; F = F - 1) {Frekans (F); } gecikme (200); } // Süpürme Sıklığı LOOP END * / // Süpürmeyi etkinleştirmek için uncoment}

void MaxFrequency () {((int UP = 2; UP <= 10; UP ++) için // UP UP pinleri 2 - 10 Pinleri buraya değiştirin veya ekleyin {digitalWrite (UP, HIGH); } (int DOWN = 10; DOWN> = 2; DOWN--) // Pimleri Geri Say 10 - 2 Pimleri buraya ekle veya değiştir {digitalWrite (DOWN, LOW); }}

void Frekans (int TIME) // TIME = Gecikme süresi {için (int UP = 2; UP <= 10; UP ++) // Pinleri sayma 2 - 10 Pimleri burada değiştirin veya ekleyin {digitalWrite (UP, HIGH); delayMicroseconds (SAAT); } (int DOWN = 10; DOWN> = 2; DOWN--) // Pimleri Geri Say 10 - 2 Pimleri buraya ekle veya değiştir {digitalWrite (DOWN, LOW); delayMicroseconds (SAAT);

} delayMicroseconds (10); // Osiloskop senkronizasyonu için bu ayarı yap

Gereçler:

1. Adım: Beni Oku

Arduino-No-DAC-SINWAVE-

Arduino'nuza sadece dirençli bir sinüs dalgası verin. Eğer bir sinüs dalgası istiyorsanız, bir DAC'ye ihtiyacınız yoktur. Sadece bir dizi pime dirençli bir dizi ekleyin. Bir otobüs sonlandırıcı kullandım. Sekiz 1 meghm direnç bağlandı. Her pim ortak noktaya ek akım sağlar. Bir sayım döngüsü oluşturarak, iç içe döngüleri saymakla 1-8 sonra 8-1 elde edersiniz. Bir osiloskop kullanarak bir sinüs dalgası göreceksiniz. Bu yöntem hemen hemen hiç akım sağlayacaktır. Çıktıyı kullanışlı hale getirmek için yüksek empedanslı bir amplifikatör gerekecektir. Tam hızda yükselme ve düşme süresi çıktıyı yumuşatır. Her adım arasına gecikme eklerken, frekansı düşürürsünüz ancak daha kademeli bir dalga şekli görürsünüz. İçerdiği kod tam hız ve ardından daha düşük bir hız gösterecektir. Ayrıca, gecikme ekleyen bir gecikme dalgası ekledim, sonra da gecikmeyi çıkardım. Testi kolaylaştırmak için tarama işlemini yorumlayacağım. Maksimum frekans sistem saatine bağlı olacaktır. Daha hızlı bir yöntemin mümkün olduğunu biliyorum ama bunu anlamak kolaydır.

Adım 2: