चीनी चिप ADC Hx711 के साथ काम करें

इस पोस्ट को लिखने का कारण Hx711 चिप पर आधारित मॉड्यूल 24 बिट डेल्टा सिग्मा एडीसी कनवर्टर से निपटने की इच्छा है। निर्माता द्वारा सुझाए गए स्विचिंग सर्किट के अनुसार कनवर्टर स्वयं तैयार मॉड्यूल के रूप में इकट्ठा होता है। एंड्री गेरासिमेंको के ब्लॉग में इस मॉड्यूल पर इस मॉड्यूल के संचालन पर टिप्पणियां भी हैं "3.3V से ADC 711- चीनी दस्तावेज पर विश्वास न करें और न ही ..."

इस मॉड्यूल का परीक्षण करने के लिए, ATmega16 माइक्रोकंट्रोलर, ADC मॉड्यूल, BC1602 दो-लाइन एलसीडी, HD44780 नियंत्रक पर आधारित एक सर्किट, चार बटन इकट्ठे किए गए थे। विकास के वातावरण के रूप में, हमने कोड विज़न AVR प्रोग्राम, संस्करण 1.25.9 प्रोफेशनल, AVR स्टूडियो 4, संस्करण 4.09.0.338, AVR JTAG USB प्रोग्रामर का उपयोग किया, जो न केवल क्रिस्टल को प्रोग्रामिंग करने देता है, बल्कि यदि आवश्यक हो, तो माइक्रोकंट्रोलर में प्रोग्राम निष्पादन पर कदम से कदम भी रखता है। लगभग वास्तविक समय में।



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



खैर, अंतिम स्रोत "GOST 29329-92 है। स्थिर वजन के लिए तराजू। सामान्य तकनीकी आवश्यकताएं। ” यह GOST वजन मापने वाले उपकरणों के गुणों को परिभाषित करता है। एक्सेल ऑफिस प्रोग्राम के साथ काम करना भी महत्वपूर्ण है। मैं एक्सेल 2003 XP3 का उपयोग कर रहा हूं। यह आपको तैयार तरीकों का उपयोग करके परिणामों को जल्दी से संसाधित करने की अनुमति देता है।

मुझे उम्मीद है कि मेरे प्रयोगों को दोहराने के लिए आवश्यक सभी जानकारी पूरी तरह से दी गई है।

अब प्रोग्राम ही जो मैं मॉड्यूल के साथ काम करने के लिए उपयोग करता हूं। कार्यक्रम CHECK पर केंद्रित है, और शायद ही सीधे, अर्थात्। बदलाव के बिना, इसे कुछ लागू जरूरतों के लिए लागू किया जा सकता है। हालांकि, जैसा कि वे कहते हैं, "जहां आवेदन करना है, उसके आधार पर।"

कार्यक्रम स्वयं एक ब्लॉक संरचना है। इसमें 4 दिनचर्याएँ और पाँचवाँ मुख्य मुख्य होता है। पहला सबरूटीन: ReadCount, ADC मॉड्यूल से डेटा पढ़ता है और उन्हें चर गणना में उत्पन्न करता है।

CreatInput, 32 मानों से रूपांतरण डेटा का एक इनपुट सरणी उत्पन्न करता है।

CreatOutput, ADC रूपांतरण डेटा के आउटपुट सरणी को 16 डेटा की विंडो आकार के साथ एक चलती औसत का आयोजन करके उत्पन्न करता है।

कुंजी, कीस्ट्रोक्स का जवाब देने के लिए एक सरल कार्यक्रम।

तो वह सब है। चर मूल रूप से सभी वैश्विक हैं, खासकर जब से मेगा संसाधनों की अनुमति है।



मुख्य कार्यक्रम CreatInput इनपुट सरणी बनाने के द्वारा शुरू होता है, फिर इनपुट डेटा को चलती औसत विधि का उपयोग करके फ़िल्टर किया जाता है। इस फिल्टर का चयन निम्नलिखित पर आधारित है। जब प्रोग्राम चल रहा होता है, तो डिस्प्ले पर मौजूद डेटा काफी बड़ी रेंज में अपना मूल्य बदल देता है। मैंने मंच पर शून्य प्रयास में एडीसी के मूल्यों को लिया है और सारणीबद्ध किया है। AVR स्टूडियो वातावरण में JATAG USB डीबगर का उपयोग करके मान प्राप्त किए गए थे।



एक्सेल फ़ाइल "डेटा अधिग्रहण" में, "मूविंग एवरेज" टैब पर, 3.12.16 अंतराल की औसत विंडो के साथ इनपुटबफ डेटा (436 इकाइयों के दोलन आयाम) को फ़िल्टर करने का परिणाम दिखाया गया है। परिणाम A37-A40 कोशिकाओं में दिखाया गया है। जिससे यह देखा जाता है कि सबसे प्रभावी, इस मामले में, 16 नमूनों की खिड़की के साथ एक चलती औसत है।

निर्मित रेखांकन यह स्पष्ट रूप से दिखाते हैं। डेटा को एक कार्य नियंत्रक से लिया जाता है, जो डेटा प्रदर्शन प्रक्रिया में संक्रमण के क्षण में रोक दिया जाता है। चित्रों में ऐसे डेटा कैप्चर के उदाहरण दिए गए हैं।



विभिन्न डिजिटल फिल्टर के उपयोग के माध्यम से डेटा फ़िल्टरिंग की कोई विधि किसी भी तरह से इनपुट उतार-चढ़ाव को "वश में" नहीं कर सकती है। यदि आप इनपुट डेटा के ग्राफ को देखते हैं, तो यहां गौसियन वितरण "गंध" भी नहीं करता है। जैसा कि ब्लॉग में उपयोगकर्ता Nikopol_86 द्वारा पुष्टि की गई है ... "चीनी प्रलेखन पर विश्वास न करें"

Nikopol_86 5 फरवरी 2019 को 09:27 0 पर


ईमानदार होने के लिए, उसके पास सभी अनुपातों पर पर्याप्त शोर है। मैंने इनपुट सर्किट के साथ जारी एडीसी कोड के घनत्व वितरण पर कुछ शोध किया, और इसलिए 1000 1_5V तक फैला हुआ है और निफ़गा एक सामान्य वितरण कानून नहीं है, जो बताता है कि या तो बोर्ड वायरिंग की समस्या है, या एडीसी के साथ, या सभी को एक साथ लिया गया है। । मैंने यह भी देखा कि उसके पास तापमान स्थिरीकरण भी नहीं है, और दावा किया गया ऑपरेटिंग तापमान रेंज वास्तविकता के अनुरूप नहीं है। यदि केवल इसलिए कि जब आप ADC से 5 किलो स्ट्रेन गेज कनेक्ट करते हैं, तो कमरे में तापमान को 1 डिग्री से बदलकर रीडिंग को 2 ग्राम तक ले जाया जाएगा, और यदि आप अपनी उंगली से माइक्रोक्रेसीट को गर्म करते हैं, तो रीडिंग 5-7 ग्राम तक उड़ जाती है। सामान्य तौर पर, मैंने अपने लिए निष्कर्ष निकाला कि इस उपकरण पर केवल एक बिल्ली का भोजन बनाने की मशीन बनाई जा सकती है,जहां एक ट्राम स्टॉप में सटीकता पर्याप्त से अधिक होगी। और अफसोस, सामान्य समाधान सस्ते नहीं हैं, क्योंकि आपको एओ या टी 1 से उच्च गुणवत्ता वाले एडीसी का उपयोग करना होगा।

जैसा कि आप देख सकते हैं, निष्कर्ष की पुष्टि की गई थी। सच है, वही सच है:
जुशराबूसर 4 फरवरी, 2019 को दोपहर 12:52 बजे
शोर अनुपात <1 के संकेत के साथ, यह कभी भी मदद नहीं करेगा।
यहां तक ​​कि एक पुल सर्किट के साथ।

इसलिए, सामान्य परिस्थितियों में (विशेष गणित और / या सर्किटरी के बिना) कम से कम 8 कम-क्रम बिट्स बकवास (सबसे अधिक संभावना) को बाहर करते हैं।

350 रूबल के लिए 24 ईमानदार चीनी बिट्स? मेरी चप्पल मत बताओ।
यदि लोहा स्वयं "झूठ बोल रहा है" - तो आप इसके बारे में क्या कर सकते हैं?
यहां, यहां तक ​​कि एक तीसरे क्रम का नॉनलाइनर फिल्टर भी मदद नहीं करेगा, क्योंकि स्रोत डेटा एक केक नहीं है।

यह इस जगह से था कि मैं यह देखना चाहता था कि तराजू की संरचना में यह मॉड्यूल क्या सक्षम है। ADC के अंतिम बिट्स की घबराहट के साथ समस्याओं के लिए नेटवर्क खोजना, मंच kazus.ru/forums/showthread.php?t=105320&page=4 के लिए नेतृत्व किया।। यहाँ रीडिंग को स्थिर करने के बारे में पूरी चर्चा है। हालाँकि, प्रस्तावित गणितीय विधियों में से कोई भी मेरे द्वारा प्राप्त इनपुट डेटा को "शांत" नहीं करता है। "हार्डवेयर" से, रीडिंग को स्थिर करने के लिए, इसे पेश किया गया था: डिजिटल और एनालॉग ग्राउंड का कनेक्शन, साथ ही साथ इनपुट बी के शॉर्ट सर्किट को जमीन पर। हमने कंट्रोलर सर्किट से अलग 6v बैटरी (इसके बाद एक स्टेबलाइजर 7805) से मॉड्यूल को पूरा परिरक्षण और शक्ति प्रदान किया। कोई परिणाम नहीं है, इनपुट डेटा झूल रहा है ...

इसलिए, "स्वच्छ" 24 वीं श्रेणी प्राप्त नहीं की जा सकती है और यहां कारण मुझे खराब-गुणवत्ता वाला एम / सर्किट लगता है। इसलिए आपको परिणामी रूपांतरण सीमा को ट्रिम करना होगा। इसके लिए, रीडकाउंट प्रोग्राम में, एक लाइन को 100 से डेटा को विभाजित करने के साथ पेश किया गया था। 100 2 से 8 डिग्री से थोड़ा कम है। सेवा। AD रूपांतरण 16 बिट्स में आता है। हालांकि, इस तरह की सीमा ने भी गवाही को विश्वसनीय नहीं बनाया। और यहाँ कारण तनाव गेज गुण है।

इसलिए, अंशांकन प्रक्रिया (एडीसी के मूल्य और प्लेटफॉर्म पर वजन को जोड़ने) को लागू करने के बाद, वजन को ग्राम में प्रदर्शित किया जाता है। वह 500 ग्राम को 500, एक किलो को 1000 के रूप में प्रदर्शित करता है। विभाजन की कीमत 1 ग्राम है। उन। हमें 40 किग्रा सेंसर 40,000 डिवीजनों के साथ मिलता है। लोड सेल के तकनीकी आंकड़ों के अनुसार, हम सेंसर से केवल 3,000 डिवीजनों (सेंसर के नाम पर प्रतीक C3) प्राप्त कर सकते हैं। तो विभाजन की कीमत (40000/3000) = 13.3 ग्राम होनी चाहिए। हालांकि, GOST 29329 के अनुसार, वजन मेट्रोलॉजी संख्या 3 के साथ काम नहीं करती है। अंकों का उपयोग किया जाना चाहिए:

2.1.3 बड़े पैमाने पर अंशांकन विभाजन मूल्य (ई), स्केल डिवीजन मूल्य (डी) और रीडिंग रिज़ॉल्यूशन (डीडी) के मूल्य को निम्नलिखित में से चुना जाना चाहिए: 1X10a; 2X10a; 5X10a, जहां एक सकारात्मक, नकारात्मक पूर्णांक या शून्य है।

सेवा। इस सेंसर के लिए विभाजन मूल्य, निर्माता द्वारा 10 ग्राम की गारंटी। यही है, आउटपुट स्वरूप 0.0x किलोग्राम होना चाहिए। जहाँ x = 1,2,3, ... .0। आइए 5 ग्राम का विभाजन मूल्य बनाने का प्रयास करें। प्रासंगिक प्रोग्रामेटिक क्रियाएं सूचीबद्ध हैं। इस तरह के प्रतिबंध के बाद, हम सेंसर 40,000 / 5 = 8,000 डिवीजनों से "लेते हैं", जो अनुमेय की तुलना में 2.6 गुना अधिक है। इन मान्यताओं के बाद, परिणामी तराजू काफी तेजी से काम करते हैं।

लागू लोड सेल और इसके "रिज़ॉल्यूशन" के बारे में उपरोक्त टिप्पणी हमें निर्णायक रूप से यह बताने की अनुमति नहीं देती है कि यह मॉड्यूल 24-बिट रूपांतरण का उत्पादन नहीं कर सकता है। हालाँकि, मैंने एक अन्य डिवाइस पर 1 ग्राम के संकल्प के साथ ऑपरेशन के लिए इस सेंसर का परीक्षण किया है, एक अलग एडी कनवर्टर के साथ। इस उपकरण पर, सेंसर का संचालन और रूपांतरण को संतोषजनक माना जा सकता है, क्योंकि वजन में उतार-चढ़ाव 3 ग्राम से अधिक नहीं था।

वाणिज्य में इस एडीसी के उपयोग की क्या अनुमति नहीं है? खैर, पहली और सबसे महत्वपूर्ण बात तापमान पर माप की निर्भरता है। दूसरा, विशेष रूप से 8 बिट्स के लिए ATMEGA में निर्मित डिवीजन और गुणा संचालन का उपयोग करके, इन परिस्थितियों में पूरे वजन सीमा पर तराजू को कैलिब्रेट करना मुश्किल है। यह ध्यान में रखा जाना चाहिए कि कार्यक्रम किसी भी तरह से सेंसर अधिभार पर प्रतिक्रिया नहीं करता है।

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

दूसरा कठिन है। सारणीबद्ध और कतरनी संचालन द्वारा गुणन और विभाजन की प्रक्रिया को बदलें। मुझे लगता है कि वजन बढ़ाने के अभ्यास में इस मॉड्यूल का उपयोग करने का यह सबसे अच्छा तरीका है।

तराजू के लिए एक कार्यक्रम बनाने के लिए आवश्यकताओं के विवरण को पूरा करने के लिए, प्रत्येक संतुलन से जुड़े "मेट्रोलॉजिकल (प्रमाणन) तराजू के अंशांकन" के कार्यक्रम का उपयोग करना आवश्यक है। निष्कर्ष

M / s Hx711 पर आधारित तराजू का निर्माण तराजू के लिए सभी मेट्रोलॉजिकल आवश्यकताओं के अधीन संभव है। रूपांतरण की तापमान निर्भरता में संशोधन की शुरूआत एक अलग प्रक्रिया के लिए प्रदान की जानी चाहिए। 16 बिट से अधिक के रिज़ॉल्यूशन वाले मॉड्यूल का उपयोग करने के लिए एक अलग दृष्टिकोण और नियंत्रण की आवश्यकता होती है।

Source: https://habr.com/ru/post/undefined/


All Articles