AD9833 SIN-GEN ARDUINO IDE(SPI lib.)

gürcistan'dan mal almak yatar.

Zaten bizim gümrük tam bir baş belası, bir de Gürcü gümrüğü ile uğraşmak istemezsin. Allah bilir heriflerin prizi veya şebeke voltajı da farklıdır sonra ucuza getireceğim derken bir sürü ilave masraf çıkarırsın. Bozulur garanti hizmeti alamazsın. Uygun bir zaman TDS Mühendislikten al. Öğrenci olduğunu söyle indirim de yaparlar.
 
Zaten bizim gümrük tam bir baş belası, bir de Gürcü gümrüğü ile uğraşmak istemezsin. Allah bilir heriflerin prizi veya şebeke voltajı da farklıdır sonra ucuza getireceğim derken bir sürü ilave masraf çıkarırsın. Bozulur garanti hizmeti alamazsın. Uygun bir zaman TDS Mühendislikten al. Öğrenci olduğunu söyle indirim de yaparlar.
onun çeşitli yolları var kutu,fatura,irsaliye yoksa kimse o üründen vegi alamaz ister kapıkule ister farklı gümrükler.

sadece cihazı sırtlayıp getirirsen sorun yok.
ama 1-2bin tl ucuza gelecek diye dediklerinden vazgeçmek ahmaklık olur abi.
yarı yarıa gelseydi alırdım gürcistandan.

şebekemiz aynı gürcistan ile ordan gelen bir akü şarj aletimiz var arabanın aküsünü dolduroyurz oradada şebeke 220v
 
yeniden ad9833 setup'unu kurdum programı biraz sadeleştirdim.
Kod:
//D13---->MODÜL CLOCK
//D11---->MODÜL DATA
//D10---->MODÜL SYNC
//

#include <SPI.h>
#define cs 10
unsigned long frequency = 550;//İSTENEN FREKANSI BURAYA YAZIN


void setup() {

  pinMode(cs, OUTPUT);

  SPI.begin();
  SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE2));

}
void loop() {

  long frq = (frequency * pow(2, 28)) / 25000000;
  int frq1 = (frq & 0x3FFF);

   frq1 |= 0x4000;

  digitalWrite(cs, LOW);
  SPI.transfer16(0x2100);

  SPI.transfer16(frq1);

  SPI.transfer16(0xC000);

   SPI.transfer16(frq1);
 
  SPI.transfer16(0x2000);//İSTENEN DALGAYI BURAYA YAZIN
  digitalWrite(cs, HIGH);

  delay(5500);
  frequency = frequency +5;

Frekans hesabını değiştirmedim çünkü daha deneyemedim onun çalışıp çalışmadığını.

önce 14'e frekans yazıorum sonra 15i seçip yazıyorum ama yine'de olmuyor
 
Datasheet'e göre programın şöyle olması lazım. AD9833 olmadan sadece UNO ile denedim bunu, değerler doğru gözüküyor. Burada Serial ile ilgili olan herşey çıkarılabilir, onlar programın doğru çalıştığını anlamak için konan şeyler.

Kod:
#include <SPI.h>

#define AD9833_CS 10

static double frequency = 120000.0;

void setup()
{
  Serial.begin(115200);

  pinMode(AD9833_CS, OUTPUT);

  digitalWrite(AD9833_CS, HIGH);

  SPI.begin();
  SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE2));
}

void loop()
{
  char buffer[100];

  unsigned long freq0 = round(frequency * 10.73741824);

  snprintf(buffer, sizeof(buffer), "freq0 = %lu\n", freq0);
  Serial.print(buffer);

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

  snprintf(buffer, sizeof(buffer), "freq0_lo = 0x%04X, freq0_hi = 0x%04X\n", freq0_lo, freq0_hi);
  Serial.print(buffer);

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

  while (1)
  {
    ;
  }
}
 
ufak tefek tuzakları atlatııktan sonra artık süsleme kısmına geldik.

1 encoder.
1 lcd display.
ve birkaç program müdahalesi
 
Çalıştı mı? Özellikle yüksek frekansları dene, mesela 3 MHz.
 
6m.jpg
3.5m.jpg

6 ve 3.5MHz'deki çıktılar bu şekilde.

NOT:ölçümler osiloskop probu ile yapılmamıştır. bir ucu krokodil diğer ucu BNC olan kablo ile yapılmıştır bu sapmalar büyük ihtimalle bu sebepten bu kadar yüksek frekans için üreitlmiş kablolar değil.

 
Pek çalışmışa benzemiyor yav ... Sinüs olması gereken birşey yanlışlıkla kare dalga olmaz. Tam tersi olur, sen temiz kare dalga istersin, ekrandaki gibi pis kare dalga veya sinüs çıkar.
 
Pek çalışmışa benzemiyor yav ... Sinüs olması gereken birşey yanlışlıkla kare dalga olmaz. Tam tersi olur, sen temiz kare dalga istersin, ekrandaki gibi pis kare dalga veya sinüs çıkar.
ya ben kare dalgaya ayarladıysam abi :)

Kod:
  SPI.transfer16(0x2000);
  SPI.transfer16(0x4000 | freq0_lo);
  SPI.transfer16(0x4000 | freq0_hi);
  SPI.transfer16(0x2028);
 
böyle çizimler yaptım hangi dalga şekli seçili olduğunu göstermek için.

ünlem'in amacı anlık çıkış olup olmadığını göstermek.
ünlem yanıyorsa dikkat et frekans çıkıyor demek yanmıyorsa frekans çıkışı yok demek.
 

Ekler

  • vid.mp4
    11.6 MB
@taydin abi düzeni nasıl yapayım.
mesela 1MHz'ye ayarlamak için binlerce tur çevirmek gerekiyoır bunun pratiği nasıl olabilir?
 
@taydin abi düzeni nasıl yapayım.
mesela 1MHz'ye ayarlamak için binlerce tur çevirmek gerekiyoır bunun pratiği nasıl olabilir?

Hem tuş takımı olacak, hem de 4 yön ok tuşu, hem de enkoder tekerleği :) Bu bütün kullanım senaryolarını kapsıyor.
 
Hem tuş takımı olacak, hem de 4 yön ok tuşu, hem de enkoder tekerleği :) Bu bütün kullanım senaryolarını kapsıyor.
@Gokrtl abinin kurduğu düzen mi abi.
O kadar tuşa ne ekleyeceğiz ya.

Benim istediğim tekerlek ile ayar encoder üstündeki dahili buton ile çıkışı on/off yapma birde harici bir buton ile dalga tipi değiştirme.
Ama bu yöntem'de 1MHz ayarlamak en az 15 dakikakımızı alacak daha pratik bir frekans ayarlama yöntemi düşünüyorum ama aklıma gelmedi
 
Bu gün projeyi bitirmeye odaklanıyorum kullanılabilir bir cihaz haline gelecek.
 
enkoder ve ekran kullanaak ayarladığım frekansı çıkışa aktarabiliyorum.

hazır program kullanmayı pek sevmem ama @taydin abinin rotary encoder programını enjekte ettim.
 

Ekler

  • WhatsApp Image 2022-07-12 at 09.02.05.jpeg
    WhatsApp Image 2022-07-12 at 09.02.05.jpeg
    241.4 KB · Görüntüleme: 88
  • WhatsApp Image 2022-07-12 at 09.02.20.jpeg
    WhatsApp Image 2022-07-12 at 09.02.20.jpeg
    342.6 KB · Görüntüleme: 88
Aldım bunu. Marka ismi olarak kullanacağım :D

singen marka.png
 

Forum istatistikleri

Konular
7,275
Mesajlar
123,010
Üyeler
2,934
Son üye
YALNIZ KURT

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top