- RDA5807M आईसी
- आईसी PT2258
- ढांच के रूप में
- अवयव आवश्यक
- हम Google सहायक से डेटा कैसे प्राप्त कर रहे हैं?
- संचार के लिए एक प्रवेश खाता स्थापित करना
- एफएम रेडियो के लिए एक IFTTT ब्रोकर की स्थापना
- Arduino कोड और स्पष्टीकरण
- Arduino का उपयोग करके वॉयस कंट्रोल्ड एफएम रेडियो का परीक्षण
- आगे की वृद्धि
आजकल हम में से ज्यादातर लोग अपने स्मार्टफोन के साथ संगीत सुनना पसंद करते हैं। लेकिन कुछ साल पहले, यह मामला नहीं था, उस समय, एफएम रेडियो संगीत, पॉडकास्ट, समाचार, और अन्य लोगों को सुनने के लिए पहली पसंद थे। आजकल कोई भी संगीत, समाचार और अन्य लोगों के लिए रेडियो नहीं सुनता, दादी और दादा अपवाद हैं।
इसलिए, इस परियोजना में एफएम रेडियो की पुरानी महिमा को थोड़ा पुनर्जीवित करने के लिए, मैं Google सहायता और लोकप्रिय RDA5870M सुपरहीटरोडाइन रिसीवर आईसी का उपयोग करके एक आवाज-नियंत्रित एफएम रेडियो का निर्माण करने जा रहा हूं ।
इसके अलावा, हमारे पिछले एफएम रेडियो सर्किट की जाँच करें:
- Arduino आधारित एफएम रेडियो
- स्मार्ट फोन Arduino का उपयोग कर एफएम रेडियो नियंत्रित
- सरल एफएम ट्रांसमीटर सर्किट
- एफएम ट्रांसमीटर सर्किट का निर्माण कैसे करें
RDA5807M आईसी
RDA5807M एक पूरी तरह से एकीकृत सिंथेसाइज़र, IF चयनात्मकता, RDS / RBDS और MPX डिकोडर के साथ एक बहुत ही आधुनिक सिंगल-चिप FM स्टीरियो रेडियो ट्यूनर है जो कि 50MHz से 115MHz फ़्रीक्वेंसी रेंज को सपोर्ट करता है। यह एक बहुत सस्ता सिंगल-चिप एफएम रिसीवर आईसी है जिसे कार्यात्मक रूप से संचालित करने के लिए बहुत कम बाहरी घटकों की आवश्यकता होती है। यह आईसी किसी भी मास्टर डिवाइस के साथ संवाद करने के लिए I2C इंटरफ़ेस का उपयोग करता है, इसलिए यह सभी सुविधा पोर्टेबल उपकरणों के लिए बहुत उपयुक्त है।
इस आईसी में एक आंतरिक ऑडियो प्रोसेसर है जो इसकी महान ऑडियो गुणवत्ता के लिए जिम्मेदार है।
बुनियादी सुविधाओं में से कुछ में शामिल हैं-
- दुनिया भर में आवृत्ति बैंड के लिए समर्थन
- RDS / RBDS के लिए समर्थन
- डिजिटल कम-IF ट्यूनर
- पूरी तरह से एकीकृत डिजिटल आवृत्ति सिंथेसाइज़र
- डिजिटल ऑटो लाभ नियंत्रण (AGC)
- मंद्र को बढ़ाना
- सीधे समर्थन 32Ω प्रतिरोध लोड हो रहा है
- एकीकृत एलडीओ नियामक और अधिक
आप RDA5807 का उपयोग करके इस प्रोजेक्ट Arduino आधारित FM रेडियो पर जाकर इस IC के बारे में अधिक जान सकते हैं।
आईसी PT2258
PT2258 एक आईसी है जिसे 6-चैनल इलेक्ट्रॉनिक वॉल्यूम नियंत्रक के रूप में उपयोग किया जाता है , यह आईसी विशेष रूप से मल्टी-चैनल ऑडियो-वीडियो अनुप्रयोगों के लिए डिज़ाइन की गई CMOS तकनीक का उपयोग करता है।
यह IC 1dB / स्टेप पर 0 से -79dB के क्षीणन रेंज के साथ I2C कंट्रोल इंटरफेस प्रदान करता है और 20-पिन DIP या SOP पैकेज में आता है।
कुछ मूलभूत सुविधाओं में शामिल हैं-
- 6-इनपुट और आउटपुट चैनल (5.1 होम ऑडियो सिस्टम के लिए)
- चयन योग्य I2C पता (डेज़ी-चेन एप्लिकेशन के लिए)
- उच्च चैनल पृथक्करण (कम शोर के लिए आवेदन)
- एस / एन अनुपात> 100 डीबी
- ऑपरेटिंग वोल्टेज 5 से 9 वी है
हमने पहले इस IC के बारे में PT2258 डिजिटल ऑडियो वॉल्यूम कंट्रोल प्रोजेक्ट में बताया था। यदि आप इस आईसी के बारे में अधिक जानना चाहते हैं तो आप उस परियोजना की जांच कर सकते हैं।
ढांच के रूप में
Google सहायक नियंत्रित एफएम रेडियो के लिए सर्किट आरेख नीचे दिया गया है:
अवयव आवश्यक
- NodeMCU माइक्रोकंट्रोलर - 1
- PT2258 डिजिटल वॉल्यूम नियंत्रक - 1
- RDA5807 FM रेडियो मॉड्यूल - 1
- एसपीडीटी रिले 6 वी - 1
- 1 एन 4007 डायोड - 1
- पेंच टर्मिनल 5 मिमी 2 - 1
- 3.5 मिमी हेडफोन जैक - 1
- तर्क स्तर कनवर्टर - 1
- 10K रेसिस्टर, 5% - 4
- 150K रेसिस्टर, 5% - 4
- 100K रेसिस्टर, 5% - 2
- 10uF संधारित्र - 6
- 0.1uF संधारित्र - 1
- जम्पर वायर - 10
हम Google सहायक से डेटा कैसे प्राप्त कर रहे हैं?
उपरोक्त छवि आपको Google सहायक और NodeMCU के बीच संचार प्रक्रिया का मूल विचार देती है।
Google सहायक को Adafruit IO सर्वर में डेटा को संशोधित करने का अधिकार है कि वह MQTT के साथ IFTTT ब्रोकर के रूप में काम कर रहा है।
यदि सर्वर-साइड (Adafruit IO) पर कोई डेटा परिवर्तन होता है, जो कि NodeMCU पक्ष पर परिलक्षित होता है। इसे प्राप्त करने के लिए, आपको नीचे दिए गए निर्देश का पालन करना होगा-
संचार के लिए एक प्रवेश खाता स्थापित करना
सबसे पहले, एक प्रवेश IO खाता बनाएं। यदि आपके पास कोई खाता नहीं है तो अपने क्रेडेंशियल के साथ IO में प्रवेश करें या साइन अप करें। हमने पहले एलेक्सा नियंत्रित एलईडी, रास्पबेरी पाई होम ऑटोमेशन, और कई अन्य IoT आधारित परियोजनाओं के निर्माण के लिए Adafruit IO का उपयोग किया था।
Adafruit खाते में प्रवेश करने के बाद, डैशबोर्ड पर क्लिक करें , फिर एक्शन> एक नया डैशबोर्ड बनाएं पर क्लिक करें ।
इसके बाद, हम अपने नए डैशबोर्ड में एक नया नाम और संक्षिप्त विवरण जोड़ने जा रहे हैं ।
डैशबोर्ड बनाने के बाद, आपको Arduino कोड में आवश्यक रूप से उपयोगकर्ता नाम और सक्रिय कुंजी को अपने खाते से प्राप्त करना होगा। आप KEY आइकन पर क्लिक करके प्राप्त कर सकते हैं।
उसके बाद, तीन ब्लॉक बनाएं ; एक टॉगल ब्लॉक, एक गेज ब्लॉक, एक टेक्स्ट ब्लॉक।
ब्लॉक बहुत महत्वपूर्ण हैं, क्योंकि ये ब्लॉक Google सहायता और NodeMCU के बीच संचार के लिए जिम्मेदार हैं।
ब्लॉक करने के लिए, आपको ऊपरी दाएं कोने में + साइन पर क्लिक करना होगा।
आगे, हम ब्लॉक बनाने जा रहे हैं।
अगला, आपको प्रत्येक ब्लॉक सेट करने की आवश्यकता है, इसके लिए आपको एक विशेष ब्लॉक पर टिक करने की जरूरत है और अगला चरण क्लिक करें ।
इस परियोजना के लिए, टॉगल बटन को छोड़कर किसी भी सेटिंग को बदलने की आवश्यकता नहीं है।
टॉगल बटन में पाठ बड़े अक्षरों में है, आपको इसे एक छोटा अक्षर बनाने और परिवर्तनों को अपडेट करने की आवश्यकता है।
यह वही है, यह सभी चीजें हैं जो आपको प्रवेश IO में स्थापित करने की आवश्यकता है।
मेरी अंतिम स्क्रीन इस तरह दिखती है-
एफएम रेडियो के लिए एक IFTTT ब्रोकर की स्थापना
हमेशा की तरह, साइन अप करें यदि आपके पास कोई खाता नहीं है या यदि आपके पास पहले से खाता है तो साइन इन करें ।
अब, आपको एक एप्लेट बनाने की आवश्यकता है । उसके लिए, नीचे दिए गए चरणों का पालन करें:
एक एप्लेट बनाने के लिए, अपने अकाउंट आइकन पर क्लिक करें और क्रिएट पर क्लिक करें।
Create screen में, अगर के बाद + आइकन पर क्लिक करें ।
उसके बाद, आपको अपने Google खाते तक पहुंचने की अनुमति देने की आवश्यकता है ।
उसके लिए आपको सर्च बार में गूगल असिस्टेंट सर्च करना होगा और गूगल असिस्टेंट आइकन पर क्लिक करना होगा।
अगली स्क्रीन में, हमें एक ट्रिगर चुनना होगा, याद रखें, हमने Adafruit IO सर्वर में तीन ब्लॉक बनाए हैं , हमें उन तीन ब्लॉकों के लिए ट्रिगर करने की आवश्यकता है ।
सबसे पहले, रेडियो स्टेशन ब्लॉक, इसके लिए, हमें एक पाठ घटक के साथ एक वाक्यांश कहें का चयन करने की आवश्यकता है ।
अगली स्क्रीन में, हमें यह लिखना है कि आप क्या कहना चाहते हैं और Google सहायक को आपके साथ क्या उत्तर देना चाहिए।
इसके बाद क्रिएट ट्रिगर बटन पर क्लिक करें।
के रूप में आप पूरा कर लिया है अगले स्क्रीन कुछ इस तरह लग रहा है, तो हिस्सा है, के लिए यह समय तो , भाग क्लिक करें + के बाद संकेत तो ।
आपको नीचे की छवि की तरह एक स्क्रीन के साथ प्रस्तुत किया जाएगा, Adafruit की खोज करें , और Adafruit आइकन पर क्लिक करें।
इसके बाद, IFTTT के साथ अपने प्रवेश पत्र को अधिकृत करें, फिर कनेक्ट करें पर क्लिक करें।
इसके बाद, आपको Adafruit IO को सेंड डेटा पर क्लिक करना होगा ।
फिर आपको उन फ़ीड की एक ड्रॉपडाउन के साथ प्रस्तुत किया जाएगा जो आपने Adafruit खाते में पहले बनाई हैं।
कोई भी चुनें और क्रिएट एक्शन पर क्लिक करें , आपको तीनों के लिए ऐसा करने की आवश्यकता है।
और इसके साथ, IFTTT प्रक्रिया के अंत को चिह्नित करता है, मेरी अंतिम एप्लेट स्क्रीन इस तरह दिखती है,
Arduino कोड और स्पष्टीकरण
Arduino कोड IC के बीच सभी संचार और Adafruit IO IFTTT और WIFI के बीच संचार का प्रबंधन करने के लिए है। इस ट्यूटोरियल के अंत में Arduino नैनो FM रेडियो का पूरा कोड दिया गया है। कोड थोड़ा लंबा और जटिल है, यहां हमने लाइन द्वारा पूरा कोड लाइन समझाया है।
सबसे पहले, हमें सभी आवश्यक पुस्तकालयों को शामिल करने की आवश्यकता है, वे हैं:
#शामिल
फिर, WI-FI के लिए SSID और पासवर्ड को परिभाषित करें, यह SSID और आपके राउटर का पासवर्ड है।
const char * ssid = "Android"; // आपके राउटर का एसएसआर कास्ट चार * पासवर्ड = "12345678"; // आपका राउटर का पासवर्ड
फिर हम दो बूलियन और एक चर को परिभाषित करते हैं, बूलियन का उपयोग आईसी के संचार की स्थिति को पकड़ने के लिए किया जाता है, और वॉल्यूम चर का उपयोग वॉल्यूम स्तर निर्धारित करने के लिए किया जाता है।
बूल पॉटस्टैटस; // 1 जब संचार एमसीयू और आईसी बूल रेडियोस्टैटस के बीच स्थापित होता है; // 1 जब संचार एमसीयू और आईसी इंट वॉल्यूम = 15 के बीच स्थापित होता है; // डिफ़ॉल्ट वॉल्यूम स्तर आईसी के साथ शुरू होता है
फिर, हमने एम्पलीफायर चालू या बंद करने के लिए रिले_पिन नाम का एक जीपीओ पिन स्थापित किया ।
#define Relay_Pin D7 // इस पिन का उपयोग रेडियो को चालू और बंद करने के लिए किया जाता है
अगला, हमें Adafruit IO के साथ संवाद करने के लिए सभी आवश्यक परिभाषित करने की आवश्यकता है।
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 // SSL #define AIO_USERNAME "debashis13" के लिए 8883 का उपयोग करें। अपने उपयोगकर्ता नाम के साथ बदलें #define AIO_KEY "aio_Qyal47xo1fyh555h5555h5558
नीचे दी गई परिभाषाएँ FIX_BAND एक मालिकाना परिभाषा है जिसका उपयोग पुस्तकालय द्वारा किया जाता है।
अगला परिभाषित विवरण मॉड्यूल की आंतरिक मात्रा निर्धारित करता है।
#define FIX_BAND RADIO_BAND_FM // <इस स्केच द्वारा बैंड को ट्यून किया जाएगा एफएम है। #define FIX_RADIO_VOLUME 6 /// <मॉड्यूल का डिफ़ॉल्ट वॉल्यूम।
इसके बाद, PT2258, RDA5807M और WiFiClient के लिए आवश्यक वस्तुएं बनाएं।
PT2258 digitalPot; // PT2258 ऑब्जेक्ट RDA5807M रेडियो; // RDA5807M ऑब्जेक्ट WiFiClient क्लाइंट; // WiFiClient ऑब्जेक्ट
फिर WiFi क्लाइंट और MQTT सर्वर और लॉगिन विवरण में पास होकर MQTT क्लाइंट क्लास सेट करें।
Adafruit_MQTT_Client mqtt (और ग्राहक, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
// WiFi क्लाइंट और MQTT सर्वर और लॉगिन विवरण में पास करके MQTT क्लाइंट क्लास सेटअप करें।
फिर हमें एक फ़ीड की सदस्यता लेने की आवश्यकता है। इससे क्या हो सकता है कि आप पूछें?
यदि कुछ मान, कुछ पैरामीटर Adafruit सर्वर में बदल जाते हैं, तो परिवर्तन यहां दिखाई देंगे।
Adafruit_MQTT_Subscribe Radio_Station = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Radio_Station"); // एक फ़ीड Adafruit_MQTT_Subscribe Toggle_FM = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Toggle_FM") की सदस्यता के लिए उपयोग की जाने वाली विधियाँ; // एक फ़ीड Adafruit_MQTT_Subscribe Volume = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / Volume") की सदस्यता के लिए उपयोग की जाने वाली विधियाँ; // फ़ीड्स की सदस्यता के लिए उपयोग की जाने वाली विधियाँ
नीचे MQTT_connect () फ़ंक्शन के लिए फ़ंक्शन प्रोटोटाइप है।
शून्य MQTT_connect (); // फ़ंक्शन प्रोटोटाइप MQTT कनेक्ट के लिए
फिर हम अपनी सेटअप प्रक्रिया शुरू करते हैं। सबसे पहले, हम शुरुआत विधि के साथ UART संचार शुरू करते हैं।
सीरियल.बेगिन (9600); // UART की शुरुआत Serial.println (); // Serial.println () रिक्ति के लिए एक अतिरिक्त रेखा जोड़ता है; // Spaces के लिए एक अतिरिक्त रेखा जोड़ता है, हम WiFI **************** से जुड़ने के लिए सभी सामान्य काम करते हैं। सभी सामान्य एक वाईफाई कनेक्शन *********************** / के लिए आवश्यक चीजों Serial.print ("से कनेक्ट कर"); सिरियल.प्रिंट (ssid); WiFi.mode (WIFI_STA); WiFi.begin (ssid, पासवर्ड); जबकि (WiFi.status ()! = WL_CONNECTED) {विलंब (500); सीरियल.प्रिंट ("।"); } Serial.println (""); Serial.println ("वाईफाई कनेक्ट"); Serial.println ("आईपी पता:"); Serial.println (WiFi.localIP ()); / **************** वाईफाई कनेक्शन के लिए आवश्यक सभी सामान्य चीजें *********************
इसके बाद, I2C कनेक्शन को तत्काल करने के लिए वायर . begin () विधि को कॉल करें और I2C आवृत्ति को 100KHz पर ठीक करने के लिए हम वायर . setClock () विधि को कॉल करते हैं क्योंकि यह PT2258 IC की पूर्ण गति है।
तार.बेगिन (); // I2C की शुरुआत अनुक्रम वायर से शुरू करें ।सेटक्लॉक (100000); // I2C घड़ी को 100KHz पर सेट करना
इसके बाद, पीटी २२५ the और आरडीए ५ and०, आईसी दोनों के लिए इनिट () पद्धति को कॉल करें और पहले से परिभाषित बूलियन में वापसी की स्थिति को पकड़ें।
potStatus = digitalPot.init (); RadioStatus = radio.init ();
अगला, जांचें कि क्या एमसीयू आईसी के साथ संवाद करने में सक्षम था या नहीं। हम दो के साथ ऐसा करते हैं अगर बयान देते हैं।
if (potStatus) {Serial.println ("पाया PT2258 डिवाइस!"); } और {Serial.println ("PT2258 आरंभ करने में विफल"); } अगर (रेडियोस्टैटस) {Serial.println ("पाया RDA5807M डिवाइस!"); } और {Serial.println ("RDA5807M आरंभ करने में विफल"); }
अगला, MQTT लाइब्रेरी से सदस्यता विधि को कॉल करें। यदि हमारे सब्सक्राइब्ड फीड में कोई परिवर्तन हुआ है तो हमें MQTT सर्वर द्वारा सूचित किया जाएगा।
mqtt.subscribe (& Radio_Station); // सेटअप MQTT सदस्यता के लिए Radio_Station फ़ीड mqtt.subscribe (& Toggle_FM); // सेटअप MQTT सदस्यता के लिए Toggle_FM फ़ीड mqtt.subscribe (& Volume); // वॉल्यूम फ़ीड के लिए सेटअप MQTT सदस्यता
अगला, हम रिले पिन को आउटपुट के रूप में और पिन स्थिति को LOW पर सेट करते हैं
पिनमोड (D7, OUTPUT); digitalWrite (D7, LOW);
अगला, एक पूर्व निर्धारित रेडियो वॉल्यूम सेट करें, यह पैरामीटर RDA5807 आईसी की आंतरिक मात्रा सेट करता है, जो हमारी सेटअप प्रक्रिया के अंत को चिह्नित करता है।
Radio.setVolume (FIX_RADIO_VOLUME); // अगले हम सामान्यीकृत रेडियो वॉल्यूम रेडियो सेट करें ।सेटमोनो (गलत); // हमें मोनो आउटपुट रेडियो देने के लिए चिप नहीं चाहिए ।सेटम्यूट (झूठा); // हम नहीं चाहते कि चिप शुरू में म्यूट हो जाए
हम MQTT_connect () फ़ंक्शन को कॉल करके लूप शुरू करते हैं जो MQTT सर्वर से कनेक्शन स्थापित करता है।
MQTT कनेक्ट फ़ंक्शन में, हम MQTT सर्वर से कनेक्शन बनाने के लिए तीन बार प्रयास करते हैं।
यदि यह सफल होता है, तो हमें एक सक्सेस मैसेज मिलता है, और हमें एक एरर मैसेज मिलेगा।
शून्य MQTT_connect () {int8_t ret; // 8 बिट पूर्णांक रिटायर स्टोर करने के लिए // बंद करो अगर पहले से ही जुड़ा हुआ है। if (mqtt.connected ()) {वापसी; } Serial.print ("MQTT से कनेक्ट हो रहा है…"); uint8_t रिट्रीज़ = 3; जबकि ((रिट = mqtt.connect ())! = 0) {// कनेक्टेड Serial.println (mqtt.connectErrorString (रिट)) के लिए 0 वापस आ जाएगा; Serial.println ("5 सेकंड में MQTT कनेक्शन प्राप्त करना…"); mqtt.disconnect (); देरी (5000); // 5 सेकंड प्रतीक्षा करें-- अगर (पुन: प्रयास करता है == 0) {// मूल रूप से मर जाते हैं और मुझे (1) रीसेट करने के लिए डब्ल्यूडीटी की प्रतीक्षा करें; }} Serial.println ("MQTT कनेक्टेड!"); }
इसके बाद, Adafruit_MQTT_Subscribe ऑब्जेक्ट के लिए पॉइंटर बनाकर शुरू करें । हम इसका उपयोग यह निर्धारित करने के लिए करेंगे कि कौन सी सदस्यता प्राप्त की गई थी।
Adafruit_MQTT_Subscribe * सदस्यता;
अगला, हम एक सदस्यता संदेश की प्रतीक्षा करते हैं।
MQTT सर्वर से आने वाले किसी भी संदेश के लिए mqtt.readSubscription (timeInMilliseconds) एक निश्चित समय सुनेंगे।
यदि इसे टाइमआउट से पहले एक संदेश मिलता है, तो यह एक पॉइंटर के साथ सब्सक्राइबर को जवाब देगा या बस समय समाप्त हो जाएगा और 0. वापस आ जाएगा। उस स्थिति में, यह 2 सेकंड के लिए इंतजार करेगा।
जबकि (सदस्यता = mqtt.readSubscription (20000)))
यदि कोई टाइमआउट होता है, जबकि लूप फिल विफल हो जाता है। यदि नहीं, तो हम किस सदस्यता की तुलना करते हैं और हमारे ज्ञात सदस्यता प्राप्त करेंगे।
इस कोड में, हम अपने तीनों सब्सक्राइब्ड फीड्स के लिए ऐसा करते हैं।
अगर (सदस्यता == & टॉगल_एफएम) अगर (सदस्यता == & रेडियो_स्टेशन) यदि (सदस्यता == और वॉल्यूम)
ये मुख्य तीन पैरामीटर थे जिन्हें आपको लूप सेक्शन में समझने की आवश्यकता है।
कोड का यह खंड Toggle_FM फ़ीड की निगरानी और सेट करने के लिए उपयोग किया जाता है ।
if (सदस्यता == & Toggle_FM) // क्या यह Toggle_FM फ़ीड {Serial.print (F ("Got:")) से एक संदेश है; सिरियल.प्रिंटल ((चार *) टॉगल_एफएम.स्ट्रेड); // फ़ीड डेटा को केवल डिबगिंग के लिए प्रिंट करें यदि (स्ट्रिंग ((चार *) Toggle_FM.lastread) == स्ट्रिंग ("पर")) // हम प्राप्त डेटा की तुलना एक ज्ञात पैरामीटर से करते हैं इस मामले में हम उम्मीद कर रहे हैं कि " "हम गंभीर से आ रहे हैं // // लेकिन इससे पहले कि हम करते हैं कि हमें इसे एक स्ट्रिंग बनाना होगा जो तुलनात्मक सुपर आसान डिजिटलव्रीट (डी 7, हाई) बनाता है; // अगर हमें सर्वर से हम" स्ट्रिंग "प्राप्त कर रहे हैं; D7 पिन हाई} अगर (स्ट्रिंग ((चार *) Toggle_FM.lastread) == स्ट्रिंग ("बंद")) // फिर हम स्ट्रिंग के लिए जाँच कर रहे हैं {digitalWrite (D7, LOW); // अगर हमें a। सर्वर से "ऑफ" स्ट्रिंग हम D7 पिन कम कर रहे हैं}}
कोड का यह खंड Radio_Station फ़ीड की निगरानी और सेट करने के लिए उपयोग किया जाता है ।
if (सदस्यता == & Radio_Station) {Serial.print (F ("Got:")); Serial.println ((char *) Radio_Station.lastread); if (String ((char *) Radio_Station.lastread) == स्ट्रिंग ("बिग FM")) // सुनें हम स्ट्रिंग बिग FM {Radio.setBandFrequency (FIX_BAND, 9270) की जाँच कर रहे हैं; // यदि उपरोक्त शर्त सही है, तो हम त्रैमासिक चैनल को 92.7 मेगाहर्ट्ज पर सेट कर रहे हैं} // ऊपर उल्लिखित कहावत नीचे जारी है अगर (स्ट्रिंग (चार *) Radio_Station.lastread) == स्ट्रिंग ("रेड एफएम") { Radio.setBandFreququency (FIX_BAND, 9350); } अगर (स्ट्रिंग ((चार *) Radio_Station.lastread) == स्ट्रिंग ("रेडियो मिर्ची")) {Radio.setBandFrequency (FIX_BAND, 9830); }}
वॉल्यूम फ़ीड की निगरानी और सेट करने के लिए कोड के इस खंड का उपयोग किया जाता है।
अगर (सदस्यता == और वॉल्यूम) // // हम स्ट्रिंग वॉल्यूम के लिए जाँच कर रहे हैं और यह स्ट्रिंग प्रारूप में पूर्णांक मान है। // हमें PT2258 की मदद से वॉल्यूम बदलने के लिए इसे एक पूर्णांक में बदलना है। आईसी सीरियल.प्रिंट (एफ ("गॉट:")); सिरियल.प्रिंट्लन ((चार *) वॉल्यूम.स्ट्रेडर); आयतन = अटोई ((चार *) आयतन। // हम एक चरित्र सूचक को पूर्णांक आयतन = मानचित्र (आयतन, 0,100,79,0) में परिवर्तित करने के लिए अटोई () मेथोड का उपयोग कर रहे हैं; // map (मान,Low, fromHigh, toLow, toHigh) // जैसा कि pt2258 dB में पूर्णांक मानों को समझता है // हम 0dB - 79dB मान को 0% - 100% पर मैप कर रहे हैं। digitalPot.setChannelVolume (खंड, 0); // सब के बाद हम PT2258 आईसी digitalPot.setChannelVolume (वॉल्यूम, 1) के चैनल 0 के लिए वॉल्यूम सेट कर रहे हैं; // आखिरकार हम PT2258 IC} के चैनल 1 के लिए वॉल्यूम सेट कर रहे हैं}
Arduino का उपयोग करके वॉयस कंट्रोल्ड एफएम रेडियो का परीक्षण
सर्किट का परीक्षण करने के लिए, निम्नलिखित उपकरण का उपयोग किया गया था-
- एक ट्रांसफार्मर जिसमें 13-0-13 टैप होता है
- लोड के रूप में दो 4 Two 20W स्पीकर।
- Google सहायक का उपयोग करने के लिए फ़ोन।
पिछले लेख में, मैंने आपको TDA2050 IC के साथ एक सरल 2x32 वाट ऑडियो एम्पलीफायर बनाने का तरीका दिखाया है, मैं इस प्रदर्शन के लिए भी इसका उपयोग करने जा रहा हूं, मैंने मैकेनिकल पोटेंशियोमीटर को अव्यवस्थित किया है और दो छोटे जम्पर केबल के साथ दो लीड को छोटा किया है। अब, दो पुश-बटन की मदद से, मैं एम्पलीफायर की मात्रा को बदलने में सक्षम था।
आगे की वृद्धि
इस सर्किट में कई और संवर्द्धन किए जा सकते हैं।
- विभिन्न शोर मुद्दे हैं क्योंकि एनओडीएमसीयू के बगल में एक ऑडियो स्रोत काम कर रहा है, इसलिए हमें प्रतिरक्षा में सुधार के लिए अतिरिक्त परिरक्षण को लागू करने की आवश्यकता है।
- एक पीसीबी में समग्र सर्किट का निर्माण शोर प्रतिरक्षा में सुधार करेगा।
- शोर को खत्म करने के लिए इस आईसी में अतिरिक्त फिल्टर जोड़े जा सकते हैं।
मुझे उम्मीद है कि आपको यह लेख पसंद आया होगा और इसमें से कुछ नया सीखा जाएगा। यदि आपको कोई संदेह है, तो आप नीचे टिप्पणी में पूछ सकते हैं या विस्तृत चर्चा के लिए हमारे मंचों का उपयोग कर सकते हैं।