AN0007 Arduino देखि प्लेटिनम COMM सम्म
“
उत्पादन जानकारी
निर्दिष्टीकरणहरू
- उत्पादनको नाम: ARDUINO देखि PLATINUM COMMS मद्दत कागजात
- निर्माता: डायनामेन्ट लिमिटेड
- ठेगाना: Hermitagई लेन औद्योगिक सम्पत्ति, किंग्स मिल वे,
म्यान्सफिल्ड, नटिङ्घमशायर, NG18 5ER, बेलायत - सम्पर्क: टेलिफोन: ४४ (०)१६२३ ६६३६३६, इमेल: sales@dynament.com,
Webसाइट: www.dynament.com - अंक: १.२, मिति: ०९/०४/२०२५
उत्पादन उपयोग निर्देशन
सेन्सर जडान गर्दै
यो डेटा पानाले Arduino Mega लाई पूर्वको रूपमा प्रयोग गर्दछampले। को रूपमा जडान गर्नुहोस्
निम्नानुसार:
- ५v -> ५v अर्डिनो पिन
- ०v -> अर्डिनो GND
- Tx -> Arduino RX1
- Rx -> सम्भावित विभाजकको आउटपुटमा जान्छ। इनपुट
Arduino Tx मा जान्छ
भोल्युमtagई अनुकूलता
Arduino ले 5v लजिक हाई प्रयोग गर्दछ जबकि प्लेटिनम सेन्सरले प्रयोग गर्दछ
३.३v। भोल्युम प्रयोग गर्नुहोस्tagR1 र R2 को लागि सुझाव गरिएको मानहरू सहित e विभाजक
सेन्सरलाई क्षति हुनबाट रोक्न 4K7।
Arduino IDE सेटअप
- Arduino IDE सफ्टवेयरको नयाँ संस्करण डाउनलोड गर्नुहोस्
अर्डिनो webसाइट। - उपकरणहरूमा Arduino बोर्ड, प्रोसेसर, र पोर्ट चयन गर्नुहोस्
ड्रप-डाउन मेनु।
कोड अपलोड
- दिइएको पूर्व प्रतिलिपि बनाउनुहोस्ampArduino IDE मा कोड।
- तीरमा क्लिक गरेर Arduino मा कोड अपलोड गर्नुहोस्।
- सिरियल मनिटर खोल्नुहोस् view डाटा प्रसारण।
FAQ
प्रश्न: यदि मसँग एउटा मात्र कम्युनिकेसन भएको Arduino Uno छ भने मैले के गर्नुपर्छ?
पोर्ट?
A: प्लेटिनम सेन्सरलाई त्यो पोर्टमा जडान गर्नुहोस्। प्रयोग गर्दा
सिरियल मनिटर, यसले प्रसारित हेक्स पनि देखाउनेछ।
"`
आवेदन नोट AN0007
अर्दुइनो देखि प्लेटिनम कम्स सम्म मद्दत कागजात
डाइनामेन्ट लिमिटेड
हर्मीtagई लेन इन्डस्ट्रियल इस्टेट किंग्स मिल वे म्यान्सफिल्ड नटिङ्घमशायर NG18 5ER युके। टेलिफोन: ४४ (०)१६२३ ६६३६३६
इमेल: sales@dynament.com www.dynament.com
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 1 को 14
सामग्री
डायनामेन्ट लिमिटेड ………………………………………………………………………………………………….१ सेन्सर जडान गर्दै………………………………………………………………………………………………..३ Arduino IDE ……………………………………………………………………………………………………………५ कोड व्याख्या………………………………………………………………………………………………..९ प्याकेट ब्रेकडाउन ………………………………………………………………………………………………….११ Serial.read() प्रयोग गर्दै …………………………………………………………………………………………………………….१३
उन्नत रूपान्तरण नोटहरू………………………………………………………………………….१४
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 2 को 14
सेन्सर जडान गर्दै यो डेटा पानाले Arduino मेगालाई पूर्वको रूपमा प्रयोग गर्दछample। Ardunio Mega ले एक भन्दा बढी कम्युनिकेशन पोर्ट प्रदान गर्दछ, त्यसैले कम्युनिकेशन पोर्ट १ सेन्सरसँग सञ्चार गर्न प्रयोग गरिन्छ र कम्युनिकेशन पोर्ट ० पीसीमा प्रिन्ट गर्न प्रयोग गरिन्छ।
Arduino ले 5v लजिक हाई प्रयोग गर्दछ जबकि प्लेटिनम सेन्सरले 3.3v प्रयोग गर्दछ, त्यसैले सेन्सरलाई क्षति हुनबाट रोक्नको लागि भोल्युमtage डिभाइडर प्रयोग गर्नुपर्छ। R1 र R2 को लागि सुझाव गरिएको मानहरू 4K7 हुन्।
चित्र १: भोल्युम घटाउँछtagप्रयोगयोग्य स्तरमा e
Arduino रिसिभरमा जाने सेन्सर ट्रान्समिट लाइनलाई डिभाइडरको आवश्यकता पर्दैन किनकि 3.3v Arduino को लागि स्वीकार्य इनपुट हो।
सेन्सरलाई पावर दिनको लागि यसलाई 5v र 0v मा जडान गर्नुपर्छ। यो गर्नको लागि तपाईंले Arduino मा भएका पिनहरू प्रयोग गर्न सक्नुहुन्छ।
यो पूरा भएपछि, सेन्सरमा अब निम्न पिनहरू जडान हुनुपर्छ:
५v -> ५v अर्डिनो पिन
०v -> अर्डिनो GND
Tx -> Arduino RX1
Rx -> सम्भावित विभाजकको आउटपुटमा जान्छ। इनपुट Arduino Tx मा जान्छ।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 3 को 14
यो पूरा भएपछि तपाईंको प्लेटिनम सेन्सर देखाइए अनुसार जडान हुनुपर्छ:
चित्र २: सोल्डर एडाप्टरको साथ सेन्सर उल्टो देखाइएको छ।
यदि तपाईं एउटा मात्र कम्युनिकेसन पोर्ट भएको Arduino प्रयोग गर्दै हुनुहुन्छ (जस्तै Arduino Uno) भने तपाईंले त्यसलाई त्यसमा जडान गर्नुपर्नेछ, तर जब तपाईं सिरियल मनिटर प्रयोग गर्नुहुन्छ (पछि देखाइएको छ) यसले प्रसारित हेक्स पनि देखाउनेछ।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 4 को 14
Arduino IDE Arduino मा जानुहोस् webसाइटमा जानुहोस् र Arduino IDE सफ्टवेयरको नयाँ संस्करण डाउनलोड गर्नुहोस्। स्थापना भएपछि तपाईंले निम्न स्क्रिन देख्नु पर्छ:
चित्र ३: Arduino गृह स्क्रिन
टूल्स ड्रप डाउन मेनुमा तपाईंले प्रयोग गरिरहनुभएको Arduino बोर्ड, प्रोसेसर र पोर्ट चयन गर्नुहोस्:
चित्र ४: बोर्ड, प्रोसेसर र पोर्ट विकल्पहरू चयन गर्नुहोस्
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 5 को 14
यस पूर्वमा प्रतिलिपि गर्नुहोस्ampकोड: रिड_लाइभ_डेटा_सिम्पल_भन्नाले(); रिड_लाइभ_डेटा_सिम्पल_भन्नाले();
शून्य सेटअप () { सिरियल.बिगिन(३८४००); सिरियल१.बिगिन(३८४००);
}
शून्य लूप() { पठाउनुहोस्_प्रत्यक्ष_डेटा_सरल(); प्राप्त गर्नुहोस्_प्रत्यक्ष_डेटा_सरल(); ढिलाइ(५०००);
}
void send_read_live_data_simple(){ // 0x10, 0x13, 0x06, 0x10, 0x1F, 0x00, 0x58 Serial1.write(0x10); Serial1.write(0x13); Serial1.write(0x06); Serial1.write(0x10); Serial1.write(0x1F); Serial1.write(0x00); Serial1.write(0x58);
}
शून्य प्राप्त_प्राप्य_प्रत्यक्ष_डेटा_सरल(){ जबकि (सिरियल१.उपलब्ध()) { सिरियल.प्रिन्ट(सिरियल१.रिड(), हेक्स); सिरियल.प्रिन्ट(“|”); } सिरियल.प्रिन्टएलएन();
}
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 6 को 14
चित्र ५: अपलोड गर्नको लागि कोड तयार छ
Arduino मा कोड अपलोड गर्न तीरमा क्लिक गर्नुहोस्। Arduino प्रोग्राम गरिसकेपछि सिरियल मनिटर खोल्नुहोस्।
AN0007
चित्र ६: सिरियल मनिटर खोल्नुहोस्
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 7 को 14
चित्र ७: सिरियल मोन्टरले प्राप्त भएको प्याकेट देखाउँछ।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 8 को 14
कोड व्याख्या Arduino IDE ले Arduino प्रोग्राम गर्न C++ प्रयोग गर्दछ।
यो लाइन एउटा फर्वार्ड घोषणा हो। यो माइक्रोकन्ट्रोलरलाई प्रोग्राममा तल `send_read_live_data_simple' प्रकार्य र `receive_read_live_data_simple' प्रकार्य कल गरिनेछ भनेर बताउन प्रयोग गरिन्छ।
अर्को सेटअप प्रकार्य हो। यो कोड स्टार्टअपमा एक पटक मात्र चल्छ। यसले Serial0 र Serial1 पोर्टहरू सुरु गर्छ। Serial0 भनेको सिरियल मनिटर स्क्रिनमा देखाइएको पोर्ट हो। Serial1 भनेको सेन्सरसँग सञ्चार गर्ने पोर्ट हो।
यो मुख्य लूप हो, यो कोड बारम्बार लूप हुन्छ। तपाईंले फंक्शन नामहरू पढेर देख्न सक्नुहुन्छ कि यसले लाइभ डेटा स्ट्रक्चरको सरलीकृत संस्करण पढ्न अनुरोध पठाउँछ। त्यसपछि यसले जवाफ पढ्नको लागि प्राप्त पोर्ट पढ्छ। यस पछि माइक्रोकन्ट्रोलरले ५०००mS पर्खन्छ।
यो प्रकार्यले प्रत्यक्ष डेटा सरल संरचनालाई सिरियल पोर्ट १ मा प्राप्त गर्न अनुरोध लेख्छ। पहिले उल्लेख गरिएझैं यदि तपाईंसँग एउटा मात्र सिरियल पोर्ट छ भने तपाईंले सिरियल १ लाई सिरियलमा परिवर्तन गर्नुपर्छ। आदेशहरूको पूर्ण सूची हेर्नको लागि, प्रिमियर सेन्सर कम्युनिकेसन प्रोटोकल कागजात हेर्नुहोस्। यहाँ कागजातको त्यो भाग छ जसले तपाईंलाई यो आदेशको लागि के लेख्ने भनेर बताउँछ:
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 9 को 14
प्लेटिनम सेन्सरबाट डेटा प्राप्त हुन बाँकी हुँदा यो प्रकार्यले पढ्ने प्रकार्यलाई लुप गर्छ। Serial1.read() ले सेन्सरमा जडान भएको Serial1 बाट डेटा पढ्छ र यसलाई Serial0 मा प्रिन्ट गर्छ ताकि यसलाई सिरियल मनिटरमा देख्न सकियोस्। त्यसपछि `|' क्यारेक्टर प्रिन्ट गरिन्छ जसले गर्दा प्राप्त हुने प्रत्येक बाइटलाई सिरियल मनिटरमा स्पष्ट हुन्छ।
यो पूरा भएपछि यसले सिरियल मनिटरमा नयाँ लाइन लेख्छ।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 10 को 14
प्याकेट ब्रेकडाउन चित्र ८ र ९ ले प्राप्त र प्रसारण लाइनहरूमा जडान गरिएको सिरियल डिकोडरको आउटपुट देखाउँछ।
चित्र ८: बाहिर जाने प्याकेट
चित्र ९: आगमन प्याकेट
चित्र १० र ११ ले क्रमशः बहिर्गमन र आगमन हेक्स देखाउँछ जसमा स्तम्भले कुन आदेश हो भनेर देखाउँछ।
चित्र १०: बाहिर जाने प्याकेट विवरण
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 11 को 14
चित्र ११: आगमन प्याकेट विवरण
कृपया ध्यान दिनुहोस् कि ग्यास रिडिङ दशमलव हो पूर्णांक होइन। यो दशमलव IEEE-754 ढाँचामा छ, तपाईं यसलाई रूपान्तरण गर्न यो जस्तै अनलाइन कन्भर्टर प्रयोग गर्न सक्नुहुन्छ। यस अवस्थामा ग्यास मानले -२५० देखाउँछ (जस्तै यो त्यतिबेला त्रुटि मोडमा थियो)।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 12 को 14
Serial.read() प्रयोग गर्दै
अघिल्लो कोडले सिरियल मनिटरमा प्राप्त डेटा मात्र प्रिन्ट गर्थ्यो, यदि तपाईं चरहरूमा डेटा बचत गर्न चाहनुहुन्छ भने तपाईंले केही थप प्रशोधन गर्नुपर्नेछ। तपाईंले प्राप्त गर्नुभएको प्याकेट बाइटहरूमा विभाजित छ, यसको कारणले गर्दा तपाईंले यो डेटाको केही भागलाई चरहरूमा जोड्न आवश्यक पर्दछ। Serial1.Read() ले int फर्काउँछ (जुन Arduino को लागि १६ बिट हो), यद्यपि, पहिलो ८ बिटहरू मात्र प्रयोग गरिन्छ। यस कारणले गर्दा हामी यसलाई सानो डेटा प्रकारमा प्रतिलिपि गर्न सक्छौं जुन केवल ८ बिट हो, यस अवस्थामा म char प्रयोग गर्नेछु।
केवल एक बाइट लामो प्याकेटहरूको लागि, यो राम्रोसँग काम गर्दछ:
२ बाइट वा ४ बाइट लामो प्याकेटहरूको लागि तपाईंले डेटा संयोजन गर्न आवश्यक पर्दछ।
तपाईं यो धेरै फरक तरिकाले गर्न सक्नुहुन्छ, यहाँ म के गर्न गइरहेको छु भने डेटालाई बायाँ सार्नुहोस् र त्यसपछि OR गर्नुहोस्।
यो कोड प्रयोग गरेर, यदि readByte1 0x34 छ र readByte2 0x12 छ भने।
(int)readByte2
// यसले ०x१२ लाई ०x००१२ मा रूपान्तरण गर्छ।
(int)readByte2 << ८
// यसले बिटहरूलाई बाइटले परिवर्तन गर्छ र यसलाई ०x१२०० बनाउँछ।
(int)readByte2 << 8 | readByte1 // त्यसपछि यो OR'ed हुन्छ, 0x34 ले 0x1234 बनाउँछ।
यो गर्ने अर्को तरिका भनेको मानहरूलाई एरेमा राख्नु र त्यसपछि एरेलाई तपाईंले चाहनुभएको प्रकारमा रूपान्तरण गर्नु हो:
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 13 को 14
अक्षरहरू बाइट लामो हुन्छन्, जबकि फ्लोट ४ बाइट लामो हुन्छ। यसको कारणले गर्दा यदि हामीले हाम्रो मानहरू सहित ४ अक्षरहरूको एरे बनायौं र प्रकारलाई फ्लोटमा परिवर्तन गर्यौं भने।
यस अवस्थामा readArray भनेको char array को लागि सूचक हो। (float*)readArray यो भागले यसलाई float को लागि सूचकमा कास्ट गर्छ र त्यसपछि float को मान प्राप्त गर्न अगाडि * थपिन्छ।
उन्नत रूपान्तरण नोटहरू
१. Serial.read() ले char को सट्टा int फर्काउँछ किनभने त्रुटिहरूले नकारात्मक मानहरू फर्काउनेछन्। तपाईंको प्रोग्रामले यसको जाँच गर्नुपर्छ।
२. char र int को सट्टा क्रमशः uint2_t र uint8_t प्रयोग गर्नुपर्छ, किनकि यी प्रकारहरूको मानक आकार हुँदैन (मेरो PC मा int ३२ बिट छ भने Arduino मा १६ बिट छ)।
३. कम्स प्रोटोकलमा बाइट स्टफ्ड क्यारेक्टरहरू हुन्छन् (जसलाई नियन्त्रण क्यारेक्टरहरू पनि भनिन्छ), यो tds3 प्रिमियर सेन्सर कम्युनिकेसन प्रोटोकल कागजातमा थप विवरणमा व्याख्या गरिएको छ। यस कारणले गर्दा पढ्ने लाइभ डाटा साधारण प्याकेट कहिलेकाहीं अपेक्षा गरिएको भन्दा ठूलो हुनेछ।
AN0007
अंक २१
११/२/२०२२
नोट ८०५ परिवर्तन गर्नुहोस्
पृष्ठ 14 को 14
कागजातहरू / स्रोतहरू
![]() |
DYNAMENT AN0007 Arduino देखि प्लेटिनम COMM सम्म [pdf] प्रयोगकर्ता गाइड AN0007 Arduino देखि प्लेटिनम COMM, AN0007, Arduino देखि प्लेटिनम COMM, प्लेटिनम COMM, प्लेटिनम COMM |