Mundarija:

AD9833 signal generatori: 3 qadam
AD9833 signal generatori: 3 qadam

Video: AD9833 signal generatori: 3 qadam

Video: AD9833 signal generatori: 3 qadam
Video: AD9833 Programmable Waveform Generator 2024, Iyul
Anonim
AD9833 signal generatori
AD9833 signal generatori
AD9833 signal generatori
AD9833 signal generatori

Signal generatori - bu sinov uskunasining juda foydali qismi. Bu AD9833 moduli va Arduino Nano -dan foydalanadi - bu hammasi, hatto tenglikni ham emas. Siz ixtiyoriy ravishda OLED -displeyni qo'shishingiz mumkin. AD9833 sinus, uchburchak va kvadrat to'lqinlarni 0,1 Gts dan 12,5 MGts gacha o'tkaza oladi - bu loyihadagi dasturiy ta'minot 1 Gts dan 100 kHz gacha.

Bu erda va bu erda Arduino va AD9833 dan foydalanadigan boshqa ko'rsatmalar mavjud. Bu oddiyroq va tozalash generatori sifatida ishlatilishi mumkin. Tozalash generatorlari filtrlar, kuchaytirgichlar va boshqalarning chastotali javobini tekshirishga yordam beradi. Boshqa Instructables dizaynidan farqli o'laroq, bu kuchaytirgich yoki amplitudani boshqarishni o'z ichiga olmaydi, lekin agar xohlasangiz, ularni qo'shishingiz mumkin.

1 -qadam: Eng oddiy signal generatori

Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori
Eng oddiy signal generatori

Eng oddiy signal generatori uchun siz AD9833 modulini Arduino Nanoning orqa tomoniga lehimlaysiz. PCB kerak emas.

Men tanlagan AD9833 moduli ham shunga o'xshash. Men bu eng yaxshi yoki eng arzon etkazib beruvchi deb aytmayman, lekin siz o'sha fotosuratga (yoki yuqoridagi rasmga) o'xshashini sotib olishingiz kerak.

Modullar orasidagi aloqa quyidagicha:

  • asoslar bir -biriga bog'langan
  • D2 = FSync
  • D3 = Clk
  • D4 = Ma'lumot
  • D6 = AD9833 yilgi Vcc

AD9833 Arduino D6 ma'lumot pinidan quvvatlanadi - Arduino etarli oqim bilan ta'minlay oladi. Men 100n ajratish kondansatörünü qo'shdim, chunki men "kerak" deb o'yladim, lekin hech qanday farq ko'rmadim - AD9833 modul kartasida allaqachon ajratuvchi kondansatör bor.

Agar siz xayolparast bo'lsangiz, "analog zamin" va "raqamli er" haqida qayg'urishingiz mumkin, lekin agar siz chiroyli bo'lsangiz, siz 4 funtdan ko'proq pul sarflagan bo'lar edingiz.

Eng oddiy signal generatori kompyuterdan USB orqali boshqariladi va quvvatlanadi. USB 115200 soniyada ishlaydigan ketma-ket portni taqlid qiladi (8 bitli, tengliksiz). Buyruqlar:

  • '0'.. '9': raqamni "min" chastota qatoriga o'tkazish
  • 'S': AD9833 chastotasini o'rnating va sinus to'lqin hosil qiling
  • "T": chastotani o'rnating va uchburchak to'lqin hosil qiling
  • 'Q': chastotani o'rnating va kvadrat to'lqin hosil qiling
  • 'R': AD9833 -ni tiklash
  • 'M': "min" chastota massivini "max" qatoriga nusxalash
  • 'G': 1 soniyadan "min" dan "maksimal" gacha siljiting
  • 'H': 5 soniya davomida "min" dan "max" gacha siljiting
  • "Men": 20 soniya davomida "min" dan "maksimal" gacha siljiting

Arduino dasturi 6 ta belgidan iborat ikkita "min" va "max. Massivni o'z ichiga oladi. Agar siz raqamni uzatsangiz, u" min "qatoriga o'tkaziladi. Agar siz" S "ni yuborsangiz," min "qatori belgilariga aylanadi. longint chastotasi va AD9833 ga yuborilgan

002500S

AD9833 chiqishini 2500Hz sinus to'lqiniga o'rnatadi. Siz har doim 6 ta raqamni yuborishingiz kerak. Minimal chastota - 000001, maksimal chastota - 999999.

Agar siz "M" ni yuborsangiz, "min" qatori "max" qatoriga ko'chiriladi. Agar siz "H" ni yuborsangiz, AD9833 5 sekundda asta -sekin o'sib boruvchi chastotani chiqaradi. U "min" chastotada boshlanadi va 5 soniyadan so'ng "maksimal" chastotada bo'ladi. Shunday qilib

020000M000100SH

100 gigagertsdan 20 kHz gacha tezlikda ishlaydi. Chastotaning o'zgarishi logarifmikdir, shuning uchun 1 soniyadan so'ng 288 Gts, 2 sekunddan keyin 833 Gts, keyin 2402, 6931 va 20000 bo'ladi. Chastotani har milliSekundda o'zgartiriladi.

Arduino boshqa belgini olganda, tsikl to'xtaydi, shuning uchun buyruqni qaytarib yuborish yoki chiziqli chiziqni yuborishdan ehtiyot bo'ling. Bu qo'shimcha belgi loopni tugatadi. Agar siz ketma -ket monitordan foydalansangiz, o'ng pastki qismida, masalan, "Ham NL, ham CR" yozilishi mumkin, bu sizning buyrug'ingizdan keyin belgilar yuboradi (menimcha). Uni "Oxirgi satr yo'q" deb belgilang.

Siz quyida kerakli buyruqlarni yuboradigan yoki o'zingiz yozishingiz mumkin bo'lgan Windows EXE dasturini yuklab olishingiz mumkin. Arduino INO fayli ham shu erda.

2 -qadam: OLED qo'shing

OLED qo'shing
OLED qo'shing
OLED qo'shing
OLED qo'shing
OLED qo'shing
OLED qo'shing

Agar siz OLED va ikkita tugma qo'shsangiz, signal generatori kompyutersiz yolg'iz ishlashi mumkin.

Mening Instructable osiloskopimni o'qiganlar, o'xshashlikni tan olishadi. AD9833 moduli mening osiloskopimga qo'shilishi mumkin, u "Matchboxda osiloskop va signal generatori" ni ishlab chiqaradi.

Displey 1,3 dyuymli OLED bo'lib, 3,3V kuchlanishli bo'lib, uni I2C avtobus orqali SH1106 chipi boshqaradi.

EBay -dan 1,3 "OLED qidiring. Men ma'lum bir sotuvchiga maslahat bermoqchi emasman, chunki havolalar tezda eskiradi." I2C "yoki" IIC "deb yozilgan va VDD GND SCL SDA deb nomlangan to'rtta pinli rasmni tanlang. (Ba'zi displeylarda pinlar boshqacha tartibda ko'rinadi. Ularni tekshiring. I2C soatining to'g'ri nomi - "SCL", lekin eBay -da taxtadagi rasmdagi kabi "SCK" deb yozilishi mumkin.)

OLED kutubxonasining to'liq tavsifi 8 -qadamda ko'rsatiladigan mening osiloskopimda. Siz 8 -qadamda joylashgan SimpleSH1106.zip haydovchi kutubxonasini yuklab olishingiz va o'rnatishingiz kerak. (Men bu erga boshqa nusxasini yuklamoqchi emasman va ikkita nusxasini saqlashim kerak).)

INO faylini quyida yuklab olish mumkin. OLED uchun ishlatiladigan pin raqamlari taxminan 70 -satrda e'lon qilinadi. Agar siz mening "osiloskop va signal generatorini mos keladigan qutiga" o'rnatgan bo'lsangiz va u bilan ushbu INO faylini sinab ko'rmoqchi bo'lsangiz, muqobil pin raqamlari #define orqali yoqiladi.

Men sxema uchun tasma taxtasini ko'rsatdim. Ikkita lenta mavjud - biri Nano va AD9833 uchun, ikkinchisi displey uchun. Ular sendvich hosil qilishlari kerak. Plitalar komponentlar tomonidan ko'rsatilgan. Yupqa moslashuvchan simlar ikkita taxtaga ulanadi. Plitalarni lehimli tayanchlar bilan biriktiring. Mening diagrammada tasma misining rangi ko'k rangda ko'rsatilgan. Qizil chiziqlar - bu tasma ustidagi simlar yoki taxtalarni bir -biriga bog'laydigan egiluvchan simlar. Men kuch va "signal" chizig'ini ko'rsatmadim.

AD9833 moduli lentaning mis tomonida - Nanoning qarama -qarshi tomonida lehimli. Mis tasmalarga lehim pimlari qo'yiladi, so'ngra ularga AD9833 o'rnatiladi va lehimlanadi.

Displey bitta chastotani yoki "min" va "maksimal" chastotalarni ko'rsatadi.

Ikkita tugma mavjud: chastotalar raqamini tanlash uchun "Gorizontal" tugmasi va bu raqamni o'zgartirish uchun "Vertikal" tugmasi.

Men signal generatorini o'zim ishlab chiqayotgan sxemadan quvvatlantiraman - ish stantsiyamda har doim 5V mavjud.

3 -qadam: kelajakdagi o'zgarishlar

Kelajakdagi o'zgarishlar
Kelajakdagi o'zgarishlar

Bu batareyadan ishlay oladimi? Ha, faqat Nano RAW piniga ulangan 9V PP3 ni qo'shing. Odatda 20 mA quvvat sarflaydi.

U bitta lityum hujayradan quvvat olishi mumkinmi? Nima uchun bunday emasligini tushunmayapman. Siz OLED Vdd va uning tortish qarshiligini 3.7V batareyaga ulashingiz kerak (men Arduino-ning 3.3V chiqishi to'g'ri ishlayotganiga shubha qilaman).

Agar siz amplitudani chastotaga va grafigiga chizib qo'ysangiz, filtr generatorining chastotali javobini sinab ko'rishda generator ko'proq foydali bo'ladi. Signalning amplitudasini o'lchash juda qiyin - siz konvert detektorining parchalanishini past chastotalarga va yuqori chastotalarga javob berish vaqtiga almashtirishingiz kerak. Amplitudali detektorni o'rnatganingizdan so'ng, siz uning chiqishini "eng oddiy signal generatori" Arduino ADC -ga etkazib berishingiz, so'ngra natijani kompyuterga joriy chastota bilan yuborishingiz mumkin.

Bu sahifa foydali boshlang'ich nuqtadir yoki Google -dan "konvert detektori" yoki "tepalik detektori" ni qidiradi. Yuqorida tavsiya etilgan sxemada siz signal chastotasini o'rnatasiz, uning barqarorlashishini kutasiz, Arduino A0 pinini raqamli past darajaga chiqarasiz, C tushishini kutasiz, A0 ni kirishga qo'yasiz, kutasiz va keyin ADC bilan o'lchaysiz. Menga qanday davom etayotganingizni ayting.

Tavsiya: