Daftar Isi:

Generator Sinyal AD9833: 3 Langkah
Generator Sinyal AD9833: 3 Langkah

Video: Generator Sinyal AD9833: 3 Langkah

Video: Generator Sinyal AD9833: 3 Langkah
Video: Генератор на чипе AD9833 2024, Juli
Anonim
Generator Sinyal AD9833
Generator Sinyal AD9833
Generator Sinyal AD9833
Generator Sinyal AD9833

Generator sinyal adalah alat uji yang sangat berguna. Yang ini menggunakan modul AD9833 dan Arduino Nano - itu saja, bahkan bukan PCB. Anda dapat secara opsional menambahkan layar OLED. AD9833 dapat menghasilkan gelombang sinus, segitiga, dan persegi dari 0,1 Hz hingga 12,5 MHz - perangkat lunak dalam proyek ini dibatasi hingga 1Hz hingga 100kHz.

Ada Instruksi lain yang menggunakan Arduino dan AD9833, di sini dan di sini. Ini lebih sederhana dan dapat digunakan sebagai generator penyapu. Generator sapu membantu menguji respons frekuensi filter, amplifier, dan sebagainya. Berbeda dengan desain Instructables lainnya, ini tidak termasuk amplifier atau kontrol amplitudo tetapi Anda dapat menambahkannya jika Anda mau.

Langkah 1: Generator Sinyal Paling Sederhana

Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana
Generator Sinyal Paling Sederhana

Untuk Signal Generator paling sederhana, Anda tinggal menyolder modul AD9833 ke bagian belakang Arduino Nano. Tidak ada PCB yang dibutuhkan.

Modul AD9833 yang saya pilih mirip dengan modul ini. Saya tidak mengatakan itu pemasok terbaik atau termurah tetapi Anda harus membeli yang terlihat seperti foto itu (atau foto di atas).

Koneksi antar modul adalah:

  • alasan terhubung bersama-sama
  • D2 = FSync
  • D3 = Clk
  • D4 = Data
  • D6 = Vcc dari AD9833

AD9833 ditenagai dari pin data D6 Arduino - Arduino dapat memasok arus yang cukup. Saya telah menambahkan kapasitor decoupling 100n karena saya pikir saya "harus" tetapi saya tidak dapat melihat perbedaan - sudah ada kapasitor decoupling pada papan modul AD9833.

Jika Anda sedang mewah, Anda mungkin khawatir tentang "tanah analog" vs "tanah digital" tetapi jika Anda sedang mewah, Anda akan menghabiskan lebih dari £4.

Generator Sinyal paling sederhana dikendalikan dan diberi daya melalui kabel USB dari PC. USB mengemulasi port serial yang berjalan pada 115200bps (8-bit, tanpa paritas). Perintah-perintahnya adalah:

  • '0'..'9': menggeser digit ke dalam larik frekuensi "min"
  • 'S': atur frekuensi AD9833 dan hasilkan gelombang sinus
  • 'T': mengatur frekuensi dan menghasilkan gelombang segitiga
  • 'Q': mengatur frekuensi dan menghasilkan gelombang persegi
  • 'R': setel ulang AD9833
  • 'M': salin larik frekuensi "min" ke larik "maks"
  • 'G': menyapu dari "min" ke "maks" selama 1 detik
  • 'H': menyapu dari "min" ke "maks" selama 5 detik
  • 'I': menyapu dari "min" ke "max" selama 20 detik

Program Arduino berisi dua larik 6 karakter "min" dan "maks. Jika Anda mengirimkan sebuah digit maka angka tersebut akan digeser ke dalam larik "min". Jika Anda mengirim 'S' maka karakter larik "min" diubah menjadi frekuensi longint dan dikirim ke AD9833. Jadi mengirim string

002500S

akan mengatur output AD9833 ke gelombang sinus 2500Hz. Anda harus selalu mengirim semua 6 digit. Frekuensi minimum adalah 000001 dan frekuensi maksimum adalah 999999.

Jika Anda mengirim 'M' maka larik "min" disalin ke larik "maks". Jika Anda mengirim 'H' maka AD9833 berulang kali mengeluarkan frekuensi yang meningkat secara bertahap selama 5 detik. Ini dimulai pada frekuensi "min" dan 5 detik kemudian pada frekuensi "maks". Jadi

020000M000100SH

menyapu dari 100Hz ke 20kHz. Perubahan frekuensi adalah logaritmik sehingga setelah 1 detik frekuensinya menjadi 288Hz, setelah 2 detik 833Hz kemudian 2402, 6931 dan 20000. Frekuensi berubah setiap milidetik.

Loop berhenti ketika Arduino menerima karakter lain jadi berhati-hatilah untuk tidak mengirim perintah diikuti dengan carriage-return atau line-feed. Karakter ekstra itu akan menghentikan loop. Jika Anda menggunakan Serial Monitor, ada kotak di kanan bawah yang mungkin mengatakan misalnya "Baik NL & CR" yang (saya pikir) mengirim karakter setelah perintah Anda. Setel ke "Tidak ada akhir baris".

Anda dapat mengunduh program Windows EXE di bawah ini yang akan mengirimkan perintah yang diperlukan atau Anda dapat menulisnya sendiri. File Arduino INO juga ada di sini.

Langkah 2: Tambahkan OLED

Tambahkan OLED
Tambahkan OLED
Tambahkan OLED
Tambahkan OLED
Tambahkan OLED
Tambahkan OLED

Jika Anda menambahkan OLED dan dua tombol, generator sinyal dapat bekerja sendiri tanpa PC.

Anda yang telah membaca Instruksi osiloskop saya akan mengenali kesamaannya. Modul AD9833 dapat ditambahkan ke osiloskop saya untuk menghasilkan "Osiloskop dan Generator Sinyal dalam Kotak Korek Api".

Layarnya adalah OLED 1,3 yang berjalan pada 3,3V yang dikendalikan oleh chip SH1106 melalui bus I2C.

Cari eBay untuk 1,3" OLED. Saya tidak ingin merekomendasikan penjual tertentu karena tautan cepat kedaluwarsa. Pilih salah satu yang terlihat seperti foto itu, bertuliskan "I2C" atau "IIC" dan memiliki empat pin berlabel VDD GND SCL SDA (Beberapa tampilan tampaknya memiliki pin dalam urutan yang berbeda. Periksa mereka. Nama yang tepat untuk jam I2C adalah "SCL" tetapi di eBay papan dapat diberi label "SCK" seperti yang saya lihat di foto.)

Deskripsi yang lebih lengkap dari pustaka OLED ada di osiloskop saya. Dapat diinstruksikan di Langkah 8. Anda harus mengunduh dan menginstal pustaka driver SimpleSH1106.zip yang ada di Langkah 8. (Saya tidak ingin mengunggah salinan lain di sini dan harus menyimpan dua salinan.)

File INO dapat diunduh di bawah ini. Nomor pin yang digunakan untuk OLED dideklarasikan di sekitar baris 70. Jika Anda telah membuat "Osiloskop dan Generator Sinyal dalam Kotak Korek Api" dan ingin menguji file INO ini dengannya, nomor pin alternatif diaktifkan melalui #define.

Saya telah menunjukkan tata letak stripboard untuk sirkuit. Ada dua stripboard - satu untuk Nano dan AD9833 dan satu lagi untuk layar. Mereka harus membentuk sandwich. Papan ditampilkan dari sisi komponen. Kabel fleksibel halus bergabung dengan dua papan. Pasang papan bersama dengan stand-off yang disolder. Dalam diagram saya, tembaga stripboard ditampilkan dalam warna cyan. Garis merah adalah tautan kawat pada stripboard atau kabel fleksibel yang menyatukan papan. Saya belum menunjukkan kekuatan dan "sinyal" lead.

Modul AD9833 disolder di sisi tembaga stripboard - di sisi berlawanan dari Nano. Pin solder ke strip tembaga kemudian pasang AD9833 ke atasnya dan solder.

Layar menunjukkan frekuensi tunggal atau frekuensi "min" dan "maks".

Ada dua tombol: tombol "Horizontal" untuk memilih digit frekuensi dan tombol "Vertikal" untuk mengubah digit itu.

Saya menyalakan generator sinyal dari sirkuit yang saya kembangkan - saya selalu memiliki 5V yang tersedia di stasiun kerja saya.

Langkah 3: Perkembangan Masa Depan

Perkembangan Masa Depan
Perkembangan Masa Depan

Mungkinkah itu bertenaga baterai? Ya, cukup tambahkan 9V PP3 yang terhubung ke pin RAW Nano. Biasanya menggunakan 20mA.

Mungkinkah itu didukung oleh sel lithium tunggal? Saya tidak mengerti mengapa tidak. Anda harus menghubungkan OLED Vdd dan resistor pull-upnya ke baterai 3.7V (saya ragu apakah output 3.3V dari Arduino akan berfungsi dengan baik).

Generator sapuan lebih berguna saat menguji respons frekuensi filter jika Anda dapat membuat grafik amplitudo vs frekuensi. Mengukur amplitudo sinyal itu rumit - Anda harus menukar peluruhan detektor amplop vs riak untuk frekuensi rendah dan waktu respons untuk frekuensi tinggi. Setelah membangun detektor amplitudo Anda, Anda dapat memasukkan outputnya ke ADC Arduino dari "Generator Sinyal Paling Sederhana" kemudian mengirimkan hasilnya, bersama dengan frekuensi saat ini ke PC.

Halaman ini adalah titik awal yang berguna atau cari Google untuk "pendeteksi amplop" atau "pendeteksi puncak". Pada rangkaian yang disarankan di atas, Anda akan mengatur frekuensi sinyal, tunggu hingga stabil, setel pin Arduino A0 ke output digital rendah, tunggu debit C, setel A0 ke input, tunggu, lalu ukur dengan ADC. Beri tahu saya bagaimana Anda melanjutkan.

Direkomendasikan: