AD9833 SIN-GEN ARDUINO IDE(SPI lib.)

C++:
int bir = 6;
int onn = 3;
int yuz = 5;
int bin = 7;
int onbin = 7;
int yuzbin = 2;
int birm = 2;
int onm = 4;

Basmak basamak arttırmak için şöyle birşey yaptım.
hepsi 0-9 arası ayrı ayrı encoder ile ayarlanıyor.
hepsinin çarpanı var.

mesela;
yüz değerini 5e ayarladık.

ayarlanan değer x 100 =
çıkan sonuç + frekans çıkış değişkeni.

bu sayede frekans çıkış değişkeni 500Hz ayarkanmış oldu.

bu mantık doğru mu?
 
C++:
void ayar() {
  fin = onn * 10 + bir + 0;
 // fin = bir + 0;
  Serial.println(fin);
  freq0 = round(fin * 10.73741824);

  unsigned int freq0_lo = freq0 & 0x3fff;
  unsigned int freq0_hi = (freq0 >> 14) & 0x3fff;

  digitalWrite(AD9833_CS, LOW);
  SPI.transfer16(0x2000);
  SPI.transfer16(0x4000 | freq0_lo);
  SPI.transfer16(0x4000 | freq0_hi);
  SPI.transfer16(type);
  digitalWrite(AD9833_CS, HIGH);
}

Evet doğru çalışıyor ama sürekli data bastığım için modüle çıkışı kararlı değil birde çıkış on/off butonu eklersem proje final haline gelecek fin değişkeni double
 
Niye sürekli yazıyorsun frekansı yav? AD9833 bir süre sonra unutuyor mu yazılanı? :)
 
şaşırıdım aklıma gelen sorunsuz çalışsa.
C++:
fin = onm * 10000000  + birm * 1000000  + yuzbin * 100000 + onbin * 10000 + bin * 1000 + yuz * 100 + onn * 10 + bir + 0;
Bu hesaplama satırım.
66577 ayarlıyorum 1041 çıkıyor neyi yanlış yaptığımda anlamadım 3999'ü geçince frekans ayarladığoım gibi olmuyor
 
şaşırıdım aklıma gelen sorunsuz çalışsa.
C++:
fin = onm * 10000000  + birm * 1000000  + yuzbin * 100000 + onbin * 10000 + bin * 1000 + yuz * 100 + onn * 10 + bir + 0;
Bu hesaplama satırım.
66577 ayarlıyorum 1041 çıkıyor neyi yanlış yaptığımda anlamadım 3999'ü geçince frekans ayarladığoım gibi olmuyor

Problemin ne olduğunu anlamamız için değişken tiplerini bilmemiz lazım.
 
Ahmet ben bunu alıyorum.
Bunda üçgen dalga var mıydı?
Abi almadan önce @taydin abinin testlerini bekle istersen.
kare sinüs üçgen mevcut
 
Hali hazırda proje;

1 encoder: ayar yapmak için
1 encoder butonu: basamakları seçmek için
1 tane mekanik buton: dalga tipi seçmek için
1 tane daha mekanik buton çıkışı açıp kapatmak için.

Programı vereceğim fakat anlamadığınız yer çok olacaktır.
 
Hali hazırda proje;

1 encoder: ayar yapmak için
1 encoder butonu: basamakları seçmek için
1 tane mekanik buton: dalga tipi seçmek için
1 tane daha mekanik buton çıkışı açıp kapatmak için.

Programı vereceğim fakat anlamadığınız yer çok olacaktır.
Bu kadar butona ne gerek var. Ekrana menü yap encoder butonu ile çevir çevir tıkla.
 

Forum istatistikleri

Konular
5,918
Mesajlar
101,018
Üyeler
2,503
Son üye
Bilgehan

Son kaynaklar

Son profil mesajları

Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
Back
Top