- 1. Arduino Board मान्यता प्राप्त नहीं है
- 2. बोर्ड सिंक में नहीं
- 3. कोड पावर रीसेट पर प्रारंभ नहीं होता है
- 4. अमान्य डिवाइस हस्ताक्षर त्रुटि
- 5. Launch4j त्रुटि
- 6. सीरियल पोर्ट पहले से ही उपयोग में है
- 7: स्केच अपलोड सफलतापूर्वक लेकिन कुछ भी नहीं होता है
- 8. असंतुष्ट लिंक त्रुटि
- 9. स्केच टू लार्ज लार्ज
- 10. java.lang.StackOverflowError
Arduino के साथ एक शुरुआत के रूप में शुरू करना, इलेक्ट्रॉनिक्स पृष्ठभूमि के बिना लोगों के लिए काफी चुनौतीपूर्ण हो सकता है, आप त्रुटियों के साथ आएंगे, जिनमें से कुछ के सरल समाधान हो सकते हैं लेकिन आपको हल करने में दिन लग सकते हैं। इसलिए चीजों को थोड़ा आसान बनाने के लिए, मैंने उनके लिए संभावित समाधानों के साथ 10 सबसे लोकप्रिय Arduino त्रुटियों की एक सूची बनाई है ।
1. Arduino Board मान्यता प्राप्त नहीं है
यह एक ऐसी स्थिति को संदर्भित करता है जहां एक Arduino बोर्ड, कंप्यूटर से जुड़ा कंप्यूटर द्वारा मान्यता प्राप्त नहीं है। जब ऐसा होता है, बोर्ड आमतौर पर Arduino IDE की पोर्ट सूचियों के तहत सूचीबद्ध नहीं होता है और कभी-कभी डिवाइस प्रबंधक के तहत USB2.0 लेबल होता है।
उपाय
ऐसा तब होता है जब आप कुछ सस्ते Arduino क्लोन का उपयोग करते हैं, जो FT3 (FT232RL) और मानक Arduino बोर्डों द्वारा उपयोग किए जाने वाले अन्य के बजाय CH340g USB से सीरियल कनवर्टर चिप का उपयोग करते हैं। मानक Arduino बोर्डों द्वारा उपयोग किए जाने वाले USB से सीरियल चिप्स के लिए ड्राइवरों को हमेशा Arduino IDE सेटअप फ़ाइल के साथ पैक किया जाता है, इसलिए जब आप IDE इंस्टॉल करते हैं, तो ड्राइवर स्वचालित रूप से आपके पीसी पर इंस्टॉल हो जाते हैं। इस CH340g USB को सीरियल कनवर्टर आधारित Arduino बोर्डों में उपयोग करने में सक्षम होने के लिए, आपको चिप के लिए ड्राइवर को डाउनलोड और इंस्टॉल करना होगा। ड्राइवर को इस लिंक से डाउनलोड किया जा सकता है। इसे स्थापित करना उतना ही सरल है जितना नीचे दिखाए गए सेटअप इंटरफ़ेस पर स्थापित बटन पर क्लिक करना।
ऐसा किए जाने के साथ, आपको अब उस पोर्ट का पता लगाने में सक्षम होना चाहिए जिसमें बोर्ड Arduino IDE से जुड़ा है।
2. बोर्ड सिंक में नहीं
आमतौर पर, जब ऐसा होता है, तो आप Arduino बोर्ड में कोड अपलोड नहीं कर पाएंगे (हालाँकि कई बार आईडीई "किया हुआ अपलोडिंग" प्रदर्शित करेगा) और आईडीई त्रुटि कोड प्रदर्शित करेगा; " Avrdude: stk500_getsync (): सिंक में नहीं: सम्मान = 0x00 "।
उपाय
सिंक: resp = 0x00 एक सामान्य प्रतिक्रिया है कि करने के लिए अनुवाद "है Atmega चिप काम नहीं कर रहा Arduino पर"। जब ऐसा होता है, तो चीजों का एक पूरा गुच्छा होता है जो गलत हो सकता है। इस त्रुटि को दूर करने के लिए कुछ कदम उठाए जा सकते हैं।
1. सुनिश्चित करें कि Arduino (ढाल सहित) पर डिजिटल पिन 0 और 1 से जुड़ा कुछ भी नहीं है।
2. सुनिश्चित करें कि सही कॉम पोर्ट और बोर्ड उपकरण मेनू के तहत चुने गए थे।
3. Arduino जोड़े पर रीसेट बटन दबाएं और कोड को फिर से अपलोड करें।
4. Arduino को पीसी से डिस्कनेक्ट और फिर से कनेक्ट करें।
5. Arduino IDE को पुनरारंभ करें।
यदि इनमें से कोई भी काम नहीं करता है, तो पीसी के साथ एक अलग Arduino बोर्ड का उपयोग करने या किसी अन्य पीसी के साथ "दोषपूर्ण" Arduino बोर्ड का उपयोग करने का प्रयास करने का समय हो सकता है। इससे आपको यह पहचानने में मदद मिलेगी कि उनमें से कौन सी समस्या का मूल है। यदि आपको पता है कि समस्या पीसी के साथ है, तो Arduino IDE को पुनर्स्थापित करें । हालांकि, अगर "दोषपूर्ण" Arduino बोर्ड समस्या का स्रोत है, तो एक अंतिम समाधान Arduino फर्मवेयर के साथ बोर्ड को फ्लैश करना होगा । यदि उपरोक्त में से कोई भी काम नहीं करता है, तो आपके लिए Arduino Board को बदलने का समय हो सकता है।
3. कोड पावर रीसेट पर प्रारंभ नहीं होता है
यह उन मामलों को संदर्भित करता है जहां Arduino संचालित होने पर उस पर अपलोड किए गए स्केच को नहीं चलाता है और ज्यादातर मामलों में, बस बूटलोडर से जुड़े ब्लिंक स्केच पर वापस लौट जाता है।
उपाय
जैसे अन्य समस्याओं का इलाज किया जाता है ऐसी कई चीजें हैं जो इसका कारण बन सकती हैं।
यदि बोर्ड लटकता है और कुछ नहीं करता है, तो आपको यह सुनिश्चित करने के लिए अपने कोड की जांच करनी चाहिए कि क्या आप बोर्ड पर सीरियल डेटा नहीं भेज रहे हैं क्योंकि यह आता है । जब Arduino को स्विच किया जाता है, तो बूटलोडर, पहले कुछ सेकंड में, कंप्यूटर को बोर्ड पर अपलोड करने के लिए एक नया स्केच भेजने के लिए सुनता है। यदि कोई नया स्केच प्राप्त नहीं होता है, तो थोड़ी देर के बाद, बूटलोडर समय पर निकल जाएगा और बोर्ड पर अपलोड किए गए अंतिम स्केच को चलाएगा। यदि आपका कोड पहले कुछ मिनटों के दौरान सीरियल डेटा भेज रहा है, तो बूटलोडर टाइम आउट नहीं होगा और बोर्ड पर अपलोड किया गया अंतिम स्केच शुरू नहीं होगा।
यदि बोर्ड पर आते ही सीरियल डेटा भेजना आपके प्रोजेक्ट का एक महत्वपूर्ण हिस्सा है, तो आपको सीरियल डेटा को तुरंत Arduino पर आने से रोकने के लिए इसे देरी से देने का एक तरीका खोजने की आवश्यकता हो सकती है। यदि समायोजन करने से परियोजना को निष्पादित करने वाले कार्य को प्रभावित होगा, तो आपको बाहरी प्रोग्रामर का उपयोग करके अपने स्केच को बोर्ड पर अपलोड करना पड़ सकता है, क्योंकि उनके द्वारा बूटलोडर को बायपास किया जा सकता है।
यदि बोर्ड लटका नहीं है, लेकिन Arduino पलक स्केच पर लौटाता है (प्रत्येक अब और फिर पिन 13 एलईडी पर एलईडी), एक सीधा निर्धारण Arduino बूटलोडर के साथ बोर्ड को फ्लैश करने के लिए होगा, क्योंकि बोर्ड पर एक दूषित हो सकता है ।
4. अमान्य डिवाइस हस्ताक्षर त्रुटि
यह त्रुटि तब दिखाई देती है जब कोड को अपलोड करने का प्रयास किया जाता है, जो एक बोर्ड से अलग होता है, जो Arduino IDE पर टूल> बोर्ड सूची के तहत चयनित एक से भिन्न होता है। यह त्रुटि आमतौर पर लक्ष्य बोर्ड पर डिवाइस हस्ताक्षर के परिणामस्वरूप होती है जो IDE पर चयनित बोर्ड से भिन्न होती है।
उपाय
इस त्रुटि का समाधान उतना ही सरल है जितना कि सही बोर्ड को सुनिश्चित करना Arduino IDE पर चुना गया है। यदि यह काम नहीं करता है, तो Arduino बूटलोडर के नवीनतम संस्करण के साथ माइक्रोकंट्रोलर को फ्लैश करने की आवश्यकता हो सकती है।
5. Launch4j त्रुटि
Arduino IDE लोड करने से पहले कभी-कभी समय लेता है और जब यह लोड होता है, यदि आप किसी भी चीज पर क्लिक करते हैं, तो यह Launch4J त्रुटि प्रदर्शित करेगा जैसा कि ऊपर दिखाया गया है। Launch4j विंडोज देशी निष्पादन योग्य में जावा अनुप्रयोगों (जार) को लपेटने के लिए उपयोग किया जाने वाला एक उपकरण है, जो उन्हें एक नियमित विंडोज प्रोग्राम के रूप में उपयोग करने की अनुमति देता है।
Arduino IDE स्वयं JAVA में लिखा गया है और यह त्रुटि Arduino IDE के साथ आपूर्ति की गई जावा रन टाइम एनवायरनमेंट (JRE) लाइब्रेरी की असंगति के कारण होती है ।
उपाय
अनुभव से, यह त्रुटि आपके पीसी के ब्लूटूथ या वाईफाई कनेक्टिविटी को बंद करने के रूप में सरल रूप से कुछ द्वारा साफ की जा सकती है। हालांकि, एक अधिक पूर्ण और स्थायी समाधान हाल ही के संस्करण के साथ अरुडिनो पैकेज में जेआरई को बदलने के लिए है ।
6. सीरियल पोर्ट पहले से ही उपयोग में है
यह शायद हल करने के लिए सबसे आसान त्रुटियों में से एक है। यह आमतौर पर तब होता है जब आप धारावाहिक मॉनिटर को खोलने के दौरान एक Arduino पर कोड अपलोड करने का प्रयास करते हैं (यह हाल के IDE संस्करणों का उपयोग करते समय कोई समस्या नहीं है) या जब आप Arduino किसी अन्य सॉफ़्टवेयर या डिवाइस से बात कर रहे हैं, तो धारावाहिक मॉनिटर लॉन्च करने का प्रयास करें सीरियल पोर्ट के माध्यम से। अनिवार्य रूप से, यह तब होता है जब आप एक ही समय में दो अलग-अलग चीजों के लिए Arduino सीरियल पोर्ट का उपयोग करने का प्रयास करते हैं।
उपाय
जैसे IDE सुझाया गया है, हर दूसरे सॉफ़्टवेयर / टूल (सीरियल मॉनीटर / प्लॉटर सहित) को बंद करें जो कॉम पोर्ट का उपयोग कर सकता है । यदि आप विशेष सॉफ़्टवेयर के बारे में सुनिश्चित नहीं हैं, तो Arduino को अनप्लग करें। यह उस समय तक जाने के लिए तैयार होना चाहिए जब आप इसे वापस प्लग करते हैं।
7: स्केच अपलोड सफलतापूर्वक लेकिन कुछ भी नहीं होता है
यह त्रुटि पहले से ऊपर दी गई कुछ अन्य त्रुटियों के समान है। इस त्रुटि के लिए, Arduino IDE सुझाव देगा कि कोड सफलतापूर्वक अपलोड किया गया है, लेकिन बोर्ड कुछ नहीं करता है।
उपाय
- सुनिश्चित करें कि IDE में चयनित बोर्ड लक्ष्य बोर्ड के समान है।
- यह स्केच आकार बोर्ड की क्षमता से बड़ा होने के परिणामस्वरूप हो सकता है। स्केच आकार की जाँच करें और आकार को कम करने के लिए ऊपर वर्णित कुछ तरीकों का उपयोग करें।
- अंत में, यह त्रुटि तब हो सकती है जब एक शोर बिजली की आपूर्ति का उपयोग किया जा रहा हो। सुनिश्चित करें कि बिजली की आपूर्ति पर्याप्त स्थिर है।
8. असंतुष्ट लिंक त्रुटि
यह संभवतः एकमात्र दुर्लभ त्रुटि है जिसने इसे इस सूची में बनाया है। यह तब होता है जब आपके पास अपने पीसी पर संचार लाइब्रेरी का एक पुराना संस्करण होता है, जो पिछली स्थापना से सबसे अधिक संभावना है।
उपाय
इस त्रुटि को हल करने के लिए, comm.jar या jcl.jar in /System/Library/Frameworks/JavaVM.framework/ या अपने पीसी के CLASSPATH या PATH पर्यावरण चर पर निर्देशिकाओं में खोजें ।
9. स्केच टू लार्ज लार्ज
यह त्रुटि तब होती है जब आपका कोड उस विशेष Arduino बोर्ड की फ्लैश मेमोरी से बड़ा होता है । उदाहरण के लिए, Arduino Uno की फ्लैश मेमोरी का आकार 32Kb है, जिसमें 2KB पहले से ही Arduino बूटलोडर द्वारा उपयोग किया जा रहा है। यदि आपको 32Kb से अधिक आकार के साथ एक कोड अपलोड करना चाहिए, तो Arduino इस चेतावनी को प्रदर्शित करेगा।
उपाय
जैसा कि ऊपर उल्लेख किया गया है, यह तब होता है जब आपका स्केच आपके द्वारा उपयोग किए जा रहे विशेष बोर्ड की फ्लैश मेमोरी से बड़ा होता है, इस प्रकार, इसे हल करने के लिए, आपको अपने कोड द्वारा कब्जा किए गए स्थान की मात्रा को कम करने के तरीके खोजने होंगे । इसे प्राप्त करने के लिए कुछ युक्तियों में शामिल हैं;
- जहां संभव हो, फ्लोट के स्थान पर पूर्णांक डेटा प्रकारों का उपयोग करें।
- जहां संभव है "वैरिएबल की घोषणा करते समय" कास्ट "क्वालीफायर का उपयोग करें।
- आवश्यक पुस्तकालयों को ही शामिल करें। जहां संभव हो, सबसे महत्वपूर्ण पुस्तकालयों के हल्के संस्करणों का उपयोग करें।
- आमतौर पर कोड में सुधार। ऐसे एल्गोरिदम विकसित करें जो आपके कोड को कम और आम तौर पर हल्के बनाने में मदद कर सकें।
एक अधिक कट्टरपंथी समाधान प्रोजेक्ट को दूसरे बोर्ड पर ले जाएगा , जैसे कि अरुडिनो मेगा, जिसमें ऊनो की तुलना में बड़ी फ्लैश मेमोरी है।
10. java.lang.StackOverflowError
स्केच को संसाधित करते समय, Arduino प्रसंस्करण के लिए कुछ नियमित अभिव्यक्तियों का उपयोग करता है और कभी-कभी भ्रमित हो जाता है जब यह लापता उद्धरणों से संबंधित कुछ स्ट्रिंग संबंधी त्रुटियों का सामना करता है।
उपाय
इस त्रुटि को कोड पर एक दूसरा नज़र डालकर हल किया जाता है, विशेषकर उन भागों में जहां स्ट्रिंग अनुक्रम का उपयोग किया जाता है। सुनिश्चित करें कि उद्धरण पूर्ण हैं, बैकस्लैश का सही उपयोग किया जाता है आदि।
त्रुटियों की संख्या की एक सीमा है जो किसी एकल ट्यूटोरियल में फिट हो सकती है और इस कारण से, हम यहां रुकेंगे। हालाँकि, इस सूची में कुछ सबसे सामान्य त्रुटियां हैं, जिनका सामना Arduin o का उपयोग करते समय किया जाता है । क्या आप किसी विशेष त्रुटि से जूझ रहे हैं, बेझिझक एक टिप्पणी छोड़ सकते हैं, उम्मीद है, हम इसके माध्यम से एक साथ काम कर सकते हैं।
अगली बार।