विषयसूची:

सिग्नल जेनरेटर AD9833: 3 चरण
सिग्नल जेनरेटर AD9833: 3 चरण

वीडियो: सिग्नल जेनरेटर AD9833: 3 चरण

वीडियो: सिग्नल जेनरेटर AD9833: 3 चरण
वीडियो: Генератор на чипе AD9833 2024, नवंबर
Anonim
सिग्नल जेनरेटर AD9833
सिग्नल जेनरेटर AD9833
सिग्नल जेनरेटर AD9833
सिग्नल जेनरेटर AD9833

एक संकेत जनरेटर परीक्षण गियर का एक बहुत ही उपयोगी टुकड़ा है। यह एक AD9833 मॉड्यूल और एक Arduino नैनो का उपयोग करता है - बस इतना ही, एक PCB भी नहीं। आप वैकल्पिक रूप से OLED डिस्प्ले जोड़ सकते हैं। AD9833 साइन, त्रिकोण और वर्ग तरंगों को 0.1 हर्ट्ज से 12.5 मेगाहर्ट्ज तक उत्पन्न कर सकता है - इस परियोजना में सॉफ्टवेयर 1 हर्ट्ज से 100 किलोहर्ट्ज़ तक सीमित है।

यहाँ और यहाँ एक Arduino और AD9833 का उपयोग करते हुए अन्य निर्देश दिए गए हैं। यह सरल है और इसका उपयोग स्वीप जनरेटर के रूप में किया जा सकता है। स्वीप जनरेटर फिल्टर, एम्पलीफायरों आदि की आवृत्ति प्रतिक्रिया का परीक्षण करने में मदद करते हैं। अन्य इंस्ट्रक्शंस डिज़ाइनों के विपरीत, इसमें एक एम्पलीफायर या आयाम नियंत्रण शामिल नहीं है, लेकिन आप चाहें तो उन्हें जोड़ सकते हैं।

चरण 1: सरलतम सिग्नल जेनरेटर

सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर
सरलतम सिग्नल जेनरेटर

सबसे सरल सिग्नल जेनरेटर के लिए, आप सिर्फ AD9833 मॉड्यूल को Arduino नैनो के पीछे मिलाप करते हैं। पीसीबी की जरूरत नहीं है।

मेरे द्वारा चुना गया AD9833 मॉड्यूल इसी के समान है। मैं यह नहीं कह रहा हूं कि यह सबसे अच्छा या सबसे सस्ता आपूर्तिकर्ता है, लेकिन आपको वह खरीदना चाहिए जो उस फोटो (या ऊपर की तस्वीर) जैसा दिखता हो।

मॉड्यूल के बीच संबंध हैं:

  • एक साथ जुड़े मैदान
  • D2 = FSync
  • डी3 = क्लिक
  • D4 = डेटा
  • D6 = AD9833 का Vcc

AD9833 Arduino के डेटा पिन D6 से संचालित है - Arduino पर्याप्त करंट की आपूर्ति कर सकता है। मैंने एक 100n डिकूपिंग कैपेसिटर जोड़ा है क्योंकि मुझे लगा कि मुझे "चाहिए" लेकिन मुझे कोई अंतर नहीं दिख रहा है - AD9833 मॉड्यूल बोर्ड पर पहले से ही एक डिकूपिंग कैपेसिटर है।

यदि आप फैंसी थे, तो आप "एनालॉग ग्राउंड" बनाम "डिजिटल ग्राउंड" के बारे में चिंता कर सकते हैं, लेकिन यदि आप फैंसी थे, तो आप £ 4 से अधिक खर्च कर रहे होंगे।

सबसे सरल सिग्नल जेनरेटर एक पीसी से यूएसबी लीड पर नियंत्रित और संचालित होता है। USB 115200bps (8-बिट्स, नो पैरिटी) पर चलने वाले सीरियल पोर्ट का अनुकरण करता है। आदेश हैं:

  • '0'..'9': अंक को "न्यूनतम" आवृत्ति सरणी में शिफ्ट करें
  • 'एस': AD9833 आवृत्ति सेट करें और साइन तरंग उत्पन्न करें
  • 'टी': आवृत्ति सेट करें और त्रिभुज तरंग उत्पन्न करें
  • 'क्यू': आवृत्ति सेट करें और वर्ग तरंग उत्पन्न करें
  • 'आर': AD9833 रीसेट करें
  • 'एम': "न्यूनतम" आवृत्ति सरणी को "अधिकतम" सरणी में कॉपी करें
  • 'जी': 1 सेकंड में "मिनट" से "अधिकतम" तक स्वीप करें
  • 'एच': 5 सेकंड में "न्यूनतम" से "अधिकतम" तक स्वीप करें
  • 'I': 20 सेकंड में "न्यूनतम" से "अधिकतम" तक स्वीप करें

Arduino प्रोग्राम में दो 6-कैरेक्टर एरे "मिन" और "मैक्स" होते हैं। यदि आप एक अंक संचारित करते हैं तो इसे "मिन" एरे में स्थानांतरित कर दिया जाता है। यदि आप एक 'एस' भेजते हैं तो "मिन" एरे कैरेक्टर एक में परिवर्तित हो जाते हैं लॉन्गिंट फ़्रीक्वेंसी और AD9833 को भेजी गई। इसलिए स्ट्रिंग भेजना

००२५००एस

AD9833 आउटपुट को 2500Hz साइन वेव पर सेट करेगा। आपको हमेशा सभी 6 अंक भेजने चाहिए। न्यूनतम आवृत्ति 000001 है और अधिकतम आवृत्ति 999999 है।

यदि आप 'एम' भेजते हैं तो "न्यूनतम" सरणी को "अधिकतम" सरणी में कॉपी किया जाता है। यदि आप 'H' भेजते हैं तो AD9833 बार-बार 5 सेकंड में धीरे-धीरे बढ़ती आवृत्ति को आउटपुट करता है। यह "न्यूनतम" आवृत्ति पर शुरू होता है और 5 सेकंड बाद "अधिकतम" आवृत्ति पर होता है। इसलिए

020000M000100SH

100Hz से 20kHz तक स्वीप करता है। फ़्रीक्वेंसी परिवर्तन लॉगरिदमिक है इसलिए 1 सेकंड के बाद फ़्रीक्वेंसी 288Hz होगी, 2 सेकंड के बाद 833Hz फिर 2402, 6931 और 20000। फ़्रीक्वेंसी हर मिलीसेकंड में बदल जाती है।

जब Arduino एक और चरित्र प्राप्त करता है तो लूप बंद हो जाता है, इसलिए सावधान रहें कि कैरिज-रिटर्न या लाइन-फीड के बाद कमांड न भेजें। वह अतिरिक्त चरित्र लूप को समाप्त कर देगा। यदि आप सीरियल मॉनिटर का उपयोग कर रहे हैं, तो नीचे दाईं ओर एक बॉक्स है जो उदाहरण के लिए "एनएल और सीआर दोनों" कह सकता है जो (मुझे लगता है) आपके आदेश के बाद वर्ण भेजता है। इसे "नो लाइन एंडिंग" पर सेट करें।

आप नीचे Windows EXE प्रोग्राम डाउनलोड कर सकते हैं जो आवश्यक कमांड भेजेगा या आप अपना खुद का लिख सकते हैं। Arduino INO फ़ाइल भी यहाँ है।

चरण 2: एक OLED जोड़ें

एक OLED जोड़ें
एक OLED जोड़ें
एक OLED जोड़ें
एक OLED जोड़ें
एक OLED जोड़ें
एक OLED जोड़ें

यदि आप एक OLED और दो बटन जोड़ते हैं, तो सिग्नल जनरेटर बिना पीसी के अकेले काम कर सकता है।

आप में से जिन्होंने मेरा आस्टसीलस्कप इंस्ट्रक्शनल पढ़ा है, वे समानता को पहचानेंगे। AD9833 मॉड्यूल को "मैचबॉक्स में ऑसिलोस्कोप और सिग्नल जेनरेटर" बनाने के लिए मेरे ऑसिलोस्कोप में जोड़ा जा सकता है।

डिस्प्ले एक 1.3 OLED है जो 3.3V पर चल रहा है जिसे I2C बस के माध्यम से SH1106 चिप द्वारा नियंत्रित किया जाता है।

1.3" OLED के लिए eBay खोजें। मैं किसी विशेष विक्रेता की सिफारिश नहीं करना चाहता क्योंकि लिंक जल्दी पुराने हो जाते हैं। उस तस्वीर की तरह दिखने वाला एक चुनें, जैसे "I2C" या "IIC" और इसमें VDD GND SCL SDA लेबल वाले चार पिन हों। (कुछ डिस्प्ले में पिन अलग क्रम में होते हैं। उन्हें जांचें। I2C की घड़ी का उचित नाम "SCL" है, लेकिन eBay पर बोर्डों को "SCK" लेबल किया जा सकता है जैसे कि फोटो में मेरा है।)

ओएलईडी पुस्तकालय का एक पूर्ण विवरण मेरे आस्टसीलस्कप में चरण 8 में निर्देश योग्य है। आपको ड्राइवर लाइब्रेरी को डाउनलोड और इंस्टॉल करना चाहिए SimpleSH1106.zip जो कि चरण 8 में है। (मैं यहां एक और प्रति अपलोड नहीं करना चाहता और दो प्रतियां बनाए रखना है ।)

INO फ़ाइल को नीचे डाउनलोड किया जा सकता है। OLED के लिए उपयोग किए जाने वाले पिन नंबर 70 के आसपास घोषित किए जाते हैं। यदि आपने मेरा "ऑसिलोस्कोप और सिग्नल जेनरेटर एक माचिस में बनाया है" और इसके साथ इस INO फ़ाइल का परीक्षण करना चाहते हैं, तो वैकल्पिक पिन नंबर #define के माध्यम से सक्षम होते हैं।

मैंने सर्किट के लिए स्ट्रिपबोर्ड लेआउट दिखाया है। दो स्ट्रिपबोर्ड हैं - एक नैनो और AD9833 के लिए और एक डिस्प्ले के लिए। उन्हें एक सैंडविच बनाना चाहिए। बोर्ड घटक पक्ष से दिखाए जाते हैं। महीन लचीले तार दो बोर्डों को जोड़ते हैं। टांका लगाने वाले स्टैंड-ऑफ के साथ बोर्डों को एक साथ संलग्न करें। मेरे आरेख में, स्ट्रिपबोर्ड का तांबा सियान में दिखाया गया है। लाल रेखाएँ स्ट्रिपबोर्ड पर तार की कड़ियाँ या बोर्डों को एक साथ जोड़ने वाले लचीले तार होते हैं। मैंने शक्ति और "सिग्नल" लीड नहीं दिखाया है।

AD9833 मॉड्यूल स्ट्रिपबोर्ड के तांबे की तरफ - नैनो से विपरीत दिशा में मिलाप किया गया है। तांबे की पट्टियों पर मिलाप पिन फिर उन पर AD9833 फिट करें और उस पर मिलाप करें।

प्रदर्शन या तो एकल आवृत्ति या "न्यूनतम" और "अधिकतम" आवृत्तियों को दिखाता है।

दो पुशबटन हैं: आवृत्तियों के अंक का चयन करने के लिए "क्षैतिज" बटन और उस अंक को बदलने के लिए "वर्टिकल" बटन।

मैं अपने द्वारा विकसित किए जा रहे सर्किट से सिग्नल जनरेटर को पावर देता हूं - मेरे पास मेरे वर्कस्टेशन पर हमेशा 5V उपलब्ध होता है।

चरण 3: भविष्य के विकास

भविष्य में होने वाली घटनाक्रम
भविष्य में होने वाली घटनाक्रम

क्या यह बैटरी से संचालित हो सकता है? हां, बस नैनो के रॉ पिन से जुड़ा एक 9V PP3 जोड़ें। यह आमतौर पर 20mA का उपयोग करता है।

क्या इसे एकल लिथियम सेल द्वारा संचालित किया जा सकता है? मैं नहीं देखता क्यों नहीं। आपको OLED Vdd और इसके पुल-अप रेसिस्टर को 3.7V बैटरी से कनेक्ट करना चाहिए (मुझे संदेह है कि Arduino का 3.3V आउटपुट ठीक से काम करेगा)।

यदि आप आयाम बनाम आवृत्ति ग्राफ़ कर सकते हैं तो फ़िल्टर की आवृत्ति प्रतिक्रिया का परीक्षण करते समय एक स्वीप जनरेटर अधिक उपयोगी होता है। सिग्नल के आयाम को मापना मुश्किल है - आपको कम आवृत्तियों के लिए अपने लिफाफा डिटेक्टर बनाम लहर के क्षय और उच्च आवृत्तियों के लिए प्रतिक्रिया समय का व्यापार करना होगा। अपने आयाम डिटेक्टर का निर्माण करने के बाद, आप इसके आउटपुट को "सरलतम सिग्नल जेनरेटर" के Arduino के ADC में फीड कर सकते हैं, फिर पीसी को वर्तमान आवृत्ति के साथ परिणाम भेज सकते हैं।

यह पृष्ठ एक उपयोगी प्रारंभिक बिंदु है या "लिफाफा डिटेक्टर" या "पीक डिटेक्टर" के लिए Google पर खोजें। ऊपर सुझाए गए सर्किट में, आप सिग्नल फ़्रीक्वेंसी सेट करेंगे, इसके स्थिर होने की प्रतीक्षा करेंगे, Arduino A0 पिन को डिजिटल लो आउटपुट पर सेट करेंगे, C को डिस्चार्ज करने के लिए प्रतीक्षा करें, A0 को इनपुट पर सेट करें, प्रतीक्षा करें, फिर ADC के साथ मापें। मुझे बताएं कि आप किस प्रकार से आगे बढ़ेंगे।

सिफारिश की: