रूसी में Arduino प्रोग्रामिंग। ब्लॉग › Arduino: प्रोग्रामिंग के बिना प्रोग्रामिंग। प्रोग्रामिंग भाषाओं का सामान्य विवरण

नमस्ते! मैं एलिकिन अलेक्जेंडर सर्गेइविच, अतिरिक्त शिक्षा का शिक्षक हूं, मैं सेंट्रल चिल्ड्रन एंड यूथ थिएटर ऑफ लाबिंस्क में "रोबोटिक्स" और "रेडियो इंजीनियरिंग" मंडलियों का नेतृत्व करता हूं। मैं ArduBloсk प्रोग्राम का उपयोग करके Arduino को प्रोग्राम करने के एक सरल तरीके के बारे में थोड़ी बात करना चाहूंगा।

मैंने इस कार्यक्रम को शैक्षिक प्रक्रिया में पेश किया और परिणाम से खुश हूं, यह बच्चों के बीच विशेष मांग में है, खासकर जब सरल कार्यक्रम लिखते हैं या जटिल कार्यक्रमों के कुछ प्रारंभिक चरण बनाते हैं। ArduBloсk एक ग्राफिकल प्रोग्रामिंग वातावरण है, अर्थात सभी क्रियाएं रूसी में हस्ताक्षरित क्रियाओं के साथ खींची गई तस्वीरों के साथ की जाती हैं, जो Arduino प्लेटफॉर्म को सीखने में बहुत सरल बनाती हैं। इस कार्यक्रम की बदौलत दूसरी कक्षा के बच्चे आसानी से Arduino के साथ काम करने में महारत हासिल कर सकते हैं।

हां, कुछ लोग कह सकते हैं कि स्क्रैच अभी भी मौजूद है और यह Arduino प्रोग्रामिंग के लिए एक बहुत ही सरल ग्राफिकल वातावरण भी है। लेकिन स्क्रैच Arduino को फ्लैश नहीं करता है, लेकिन केवल के माध्यम से इसे नियंत्रित करता है यूएसबी केबल. Arduino कंप्यूटर पर निर्भर है और स्वायत्त रूप से काम नहीं कर सकता है। अपनी खुद की परियोजनाएं बनाते समय, Arduino के लिए स्वायत्तता मुख्य बात है, खासकर रोबोटिक उपकरण बनाते समय।

स्टैनफोर्ड द्वारा प्रदान किए जाने वाले 65 पाठ्यक्रमों में से कम से कम आधे को प्रोग्रामिंग कौशल की आवश्यकता होती है। लगभग चार साल पहले वे तथाकथित अकादमिक अकादमियों में दिखाई दिए। मैड्रिड में इंजीनियरिंग सेंटर फॉर टेक्नोलॉजी एंड डिजिटल आर्ट्स की स्नातक प्रमुख लौरा राया का मानना ​​है कि लोगों को बेरोजगार होने से बचाने का एकमात्र तरीका रोबोट को नियंत्रित करना सीखना है। "इस तर्क को समझें कि कैसे और क्यों उपकरण केवल जीवित रहने और स्वायत्त होने के लिए काम करते हैं," वे कहते हैं। उत्पाद अब मैनुअल के साथ नहीं बेचे जाते हैं; किसी से न्यूनतम तकनीकी अंतर्ज्ञान की अपेक्षा की जाती है। हम जो कुछ भी करते हैं वह एल्गोरिथम के अनुरूप होता है।

यहां तक ​​कि जाने-माने लेगो रोबोट, जैसे NXT या EV3, अब Arduino प्रोग्रामिंग में ArduBloсk प्रोग्राम के आगमन के साथ हमारे छात्रों के लिए इतने दिलचस्प नहीं हैं। इसके अलावा, Arduino किसी भी लेगो डिजाइनरों की तुलना में बहुत सस्ता है और कई घटक पुराने उपभोक्ता इलेक्ट्रॉनिक्स से आसानी से लिए जा सकते हैं। ArduBloсk कार्यक्रम न केवल शुरुआती, बल्कि Arduino प्लेटफॉर्म के सक्रिय उपयोगकर्ताओं को भी उनके काम में मदद करेगा।

हर किसी के लिए यह समझने का समय है कि कैसे और क्यों। माइक्रो-कंप्यूटिंग के आगमन के साथ, नया संसार. हमने अपने बंद घंटों में जो बनाया, उसकी तुलना में कंप्यूटर अविश्वसनीय रूप से जटिल थे। यहाँ कंप्यूटर की योजनाबद्ध है। ठीक है, आइए कुछ और उपदेशात्मक प्रयास करें।

कंप्यूटर में निम्नलिखित भाग होते हैं। उदाहरण के लिए, पते 3 शब्द लंबे या 12 बिट थे। यही है, सही शब्दों में, इसने आंतरिक पृष्ठांकन को फ़्लिप किया। घड़ी 740 kHz की थी और यह प्रति सेकंड 600 निर्देश निष्पादित कर सकती थी। माइक्रोकंट्रोलर को व्यक्तिगत कार्यों को स्वतंत्र रूप से, मज़बूती से और मज़बूती से करने के लिए डिज़ाइन किया गया है। आप सेंसर से डेटा पढ़ने के लिए माइक्रोकंट्रोलर को प्रोग्राम कर सकते हैं, मछलीघर का तापमान निर्धारित कर सकते हैं, और यदि यह बहुत कम है, तो हीटर चालू करें। ज्यादा ठंडक बढ़ जाती है।

तो, अर्दुब्लॉक क्या है?जैसा कि मैंने कहा, यह एक ग्राफिकल प्रोग्रामिंग वातावरण है। लगभग पूरी तरह से रूसी में अनुवादित। लेकिन ArduBloсk में, हाइलाइट केवल यही नहीं है, बल्कि यह भी तथ्य है कि हमारे द्वारा लिखे गए ArduBloсk प्रोग्राम को कोड में बदल दिया गया है। अरुडिनो आईडीई. यह प्रोग्राम Arduino IDE प्रोग्रामिंग वातावरण में बनाया गया है, अर्थात यह एक प्लगइन है।

नीचे एक ब्लिंकिंग एलईडी और Arduino IDE में परिवर्तित प्रोग्राम का एक उदाहरण है। कार्यक्रम के साथ सभी कार्य बहुत सरल हैं और कोई भी छात्र इसे समझ सकता है।

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

ऐसे प्रोग्रामर भी थे जहां आपने अपने प्रोग्राम के हेक्स कीपैड में प्रवेश किया था। बहुत लंबे समय से, बहुत लंबे समय तक, माइक्रोकंट्रोलर का स्वामित्व एक बंद समूह, कुछ चुनिंदा लोगों के पास रहा है। वे महंगे थे, उपयोग में कठिन थे, वे शिक्षण उपकरण नहीं थे। किसी भी छात्र के लिए अदृश्य।


कार्यक्रम पर काम करने के परिणामस्वरूप, आप न केवल Arduino को प्रोग्राम कर सकते हैं, बल्कि उन आदेशों का भी अध्ययन कर सकते हैं जो Arduino IDE के पाठ प्रारूप में हमारे लिए समझ से बाहर हैं, लेकिन यदि आप मानक कमांड लिखने के लिए बहुत आलसी हैं, तो आपको जल्दी से स्केच करना चाहिए एक त्वरित माउस हेरफेर के साथ ArduBlok में एक साधारण प्रोग्राम को बाहर करें, और इसे Arduino IDE में डीबग करें।

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

तब आप कहेंगे: "लेकिन कार्डसो बहुत महंगा है।" वर्नर वॉन ब्रौन उसका बन जाएगा सबसे अच्छा दोस्तअगर आपको इन चिप्स का एक बॉक्स पीनमंडे में मिलता है। आप हिटलर के सबसे अच्छे दोस्त बनने का जोखिम उठाते हैं। मूल डिजाइन "डिजाइनरों और कलाकारों" के लिए बनाया गया था, इसलिए इसकी सीखने की अवस्था बहुत उपयोगकर्ता के अनुकूल है। सभी मशीनें जो हमें घेरती हैं और अपने लिए काम करती हैं, करती हैं क्योंकि किसी ने उन्हें सही निर्देश दिए हैं।

ArduBlok को स्थापित करने के लिए, आपको सबसे पहले Arduino IDE को आधिकारिक Arduino वेबसाइट से डाउनलोड और इंस्टॉल करना होगा और साथ काम करते समय सेटिंग्स को समझना होगा अरुडिनो बोर्डसंयुक्त राष्ट्र संघ यह कैसे करना है उसी साइट पर या एम्परक पर वर्णित है, या यूट्यूब पर देखें। ठीक है, जब आपको यह सब पता चल गया, तो आपको यहाँ की आधिकारिक वेबसाइट से ArduBlok को डाउनलोड करना होगा। मैं नवीनतम संस्करणों को डाउनलोड करने की अनुशंसा नहीं करता, वे शुरुआती लोगों के लिए बहुत कठिन हैं, लेकिन 2013-07-12 का संस्करण सबसे महत्वपूर्ण है, यह फ़ाइल वहां सबसे लोकप्रिय है।

प्रयोग 3: एक बार या हमेशा?

कंप्यूटर प्रोग्राम आमतौर पर बहुत मौखिक रूप से लिखे जाते हैं। प्रत्येक ब्लॉक पहली छवि की तरह ही कोड की कई पंक्तियों के बराबर है। इस प्रकार, आप प्रोग्रामिंग भाषाओं के जादुई शब्दों को जाने बिना जटिल प्रोग्राम बना सकते हैं। संक्षेप में, अंतर इस प्रकार है। मुख्य लूप में, आप उन सभी ब्लॉकों को डालते हैं जिन्हें आप कई बार दोहराना चाहते हैं।

यह कार्यक्रम मुख्य लूप के लिए है। आइए बड़े कार्यक्रमों के साथ प्रयोग करें। अंत में, प्रारंभ निर्देश और मास्टर लूप दोनों में ब्लॉक रखने का प्रयास करें।

  • आपके द्वारा पहले बनाए गए प्रोजेक्ट पर वापस जाएं, या फिर से शुरू करें।
  • चुनें कि क्या आप इसे एक बार करना चाहते हैं या इसे हर बार दोहराना चाहते हैं।
  • एक के बाद एक कई ब्लॉक लगाने की कोशिश करें।
प्रोग्राम बनाने का यह तरीका बहुत उपयोगी है।

फिर, हम डाउनलोड की गई फ़ाइल का नाम बदलकर ardublock-all और "दस्तावेज़" फ़ोल्डर में रख देते हैं। निम्नलिखित फ़ोल्डर बनाएँ: Arduino> उपकरण> ArduBlockTool> टूल और बाद में हम डाउनलोड की गई और नाम बदली हुई फ़ाइल को फेंक देते हैं। अर्दुब्लॉक सबके लिए काम करता है ऑपरेटिंग सिस्टम, लिनक्स पर भी, मैंने व्यक्तिगत रूप से XP, Win7, Win8 पर इसका परीक्षण किया, सभी उदाहरण Win7 के लिए हैं। प्रोग्राम की स्थापना सभी प्रणालियों के लिए समान है।


यह प्रोग्राम स्वचालित रूप से जांचता है कि आपके पास कौन सा नियंत्रक कार्ड है और कंप्यूटर कहां स्थित है। वहां कई हैं अलग - अलग प्रकारनियंत्रक बोर्ड। एक कार्यक्रम बनाएं और इसे समुदाय के साथ साझा करें। आप नाच सकते हैं, खेल सकते हैं या कुछ भी कर सकते हैं। यह एक ऐसा टूल है जो बहुत सारे विवरण छिपाकर प्रोग्रामिंग को बहुत सरल करता है।

इसलिए, हमें इस घटक के हार्डवेयर I/O रजिस्टरों को पढ़ना या लिखना चाहिए और पिन नामों और उनके लेआउट को समझने के लिए इसके पिनआउट को देखना चाहिए। प्रोग्रामिंग भाषा क्या है? . किसी भी अन्य भाषा की तरह, एक प्रोग्रामिंग भाषा के अपने सिंटैक्स नियम होते हैं। नकारात्मक पक्ष यह है कि, प्रोग्रामिंग में एक अजनबी के विपरीत, जो आपको समझने की कोशिश करता है, यदि आप सिंटैक्स नियमों का सख्ती से पालन नहीं करते हैं, तो प्रोग्राम नहीं चलेगा। एक महत्वपूर्ण लाभ है: सभी प्रोग्रामिंग भाषाएं समान हैं।

ठीक है, अगर यह आसान है, तो मैंने मेल-डिस्क 7z पर एक संग्रह तैयार किया, जिसे अनपैक करके आपको 2 फ़ोल्डर मिलेंगे। एक पहले से काम कर रहा है Arduino प्रोग्रामआईडीई, और दूसरे फ़ोल्डर में, सामग्री को दस्तावेज़ फ़ोल्डर में भेजा जाना चाहिए।

ArduBlok में काम करने के लिए, आपको Arduino IDE चलाना होगा। फिर हम टूल टैब पर जाते हैं और वहां हमें ArduBlok आइटम मिलता है, उस पर क्लिक करें - और यहाँ यह हमारा लक्ष्य है।

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

चर, स्थिरांक और प्रकार

लेकिन फिर कठिनाई कहाँ है? . मानव गतिविधि को निर्देशों के अनुक्रम में बदलना। उदाहरण। एक व्यक्ति बहुत अच्छी तरह से अपनी आंखों का उपयोग करके अपने सामने आंदोलन का पता लगा सकता है। ये ऐसे सवाल हैं जिनका प्रोग्रामर सामना करते हैं। मान लें कि आपका लक्ष्य एक ऐसा प्रोग्राम सेट करना है जो एक कमरे के तापमान को मापता है। यह जानकारी संग्रहीत करने के लिए चर और स्थिरांक की भूमिका है।


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

मान लीजिए कमरे का तापमान 27° है। Arduino भाषा में हम इस प्रकार लिखेंगे। आपने चर घोषणा के अंत में अर्धविराम देखा होगा। इसलिए आप पहली बार में गलतियाँ करते हैं, और यह बिल्कुल सामान्य है, यह स्वीकृति की आदत है। हमने चर और स्थिरांक के बारे में बात की, यहाँ तापमान एक चर है। यानी इसे प्रोग्राम में कभी भी बदला जा सकता है। ऐसा करने के लिए, कुछ भी आसान नहीं है, मान लीजिए कि तापमान अब 31 ° है, हम इस तरह लिखेंगे।

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


"प्रबंधन" खंड में हम विभिन्न प्रकार के चक्र पाएंगे।


"पोर्ट" अनुभाग में, हम बंदरगाहों के मूल्यों के साथ-साथ ध्वनि उत्सर्जक, सर्वो या उनसे जुड़े अल्ट्रासोनिक निकटता सेंसर का प्रबंधन कर सकते हैं।

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

इस खंड में, हम तीन महत्वपूर्ण तत्व देखेंगे जो आपके कोड लिखने के दौरान आपके काम आएंगे। मान लीजिए कि आपके घर में तीन कमरे का तापमान है और आप घर में औसत तापमान रखना चाहते हैं। आइए चर घोषित करके शुरू करें। औसत तापमान मान की गणना करें।


"संख्या / स्थिरांक" अनुभाग में, हम डिजिटल मान चुन सकते हैं या एक चर बना सकते हैं, लेकिन आप नीचे दिए गए मान का उपयोग करने की संभावना नहीं रखते हैं।


"ऑपरेटर्स" अनुभाग में, हम सभी आवश्यक तुलना और गणना ऑपरेटर पाएंगे।

हम वास्तव में एक वेरिएबल बना सकते हैं और इसे दूसरे वेरिएबल का मान दे सकते हैं या, जैसा कि यहां, कई वेरिएबल का योग है। बेहतर संस्करण में, कोड इस तरह दिखेगा। अब जबकि हमारे पास औसत तापमान है, इसे कहीं रखना अच्छा होगा।

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


यूटिलिटीज अनुभाग ज्यादातर समय के साथ आइकन का उपयोग करता है।


"टिंकरकिट ब्लॉक्स" खरीदे गए टिंकरकिट सेंसर के लिए अनुभाग है। बेशक, हमारे पास ऐसा कोई सेट नहीं है, लेकिन इसका मतलब यह नहीं है कि आइकन अन्य सेटों के लिए काम नहीं करेंगे, इसके विपरीत, लोगों के लिए एलईडी या बटन चालू करने जैसे आइकन का उपयोग करना बहुत सुविधाजनक है। . इन चिन्हों का प्रयोग लगभग सभी कार्यक्रमों में किया जाता है। लेकिन उनकी एक ख़ासियत है - जब उन्हें चुना जाता है, तो बंदरगाहों को इंगित करने वाले गलत आइकन होते हैं, इसलिए उन्हें हटा दिया जाना चाहिए और "संख्याओं / स्थिरांक" अनुभाग से आइकन को प्रतिस्थापित किया जाना चाहिए, सूची में शीर्ष एक।

कुछ भी बहुत बुरा नहीं है, यह आडंबरपूर्ण शब्द केवल दो या दो से अधिक वर्णों के विलय को संदर्भित करता है। अगर आपको वास्तव में यहीं समाधान नहीं मिलता है। कौन सा अच्छा कार्यक्रमनियंत्रण संरचनाओं के बिना होगा? यह एक गैर-गतिशील कार्यक्रम होगा।

अब तक हमने जो छोटे प्रोग्राम इंस्टॉल किए हैं, वे आपको कोड करना सिखाने के लिए एकदम सही हैं, लेकिन थोड़े उबाऊ हैं। प्रोग्रामिंग का लक्ष्य एक स्वायत्त कार्यक्रम बनाना है जो प्रदान की गई चीज़ों के आधार पर निर्णय लेता है। इस भाग में, हम 4 सबसे महत्वपूर्ण शासन संरचनाओं को देखेंगे।


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

आपको तुलना ऑपरेटरों की एक छोटी सी तालिका याद रखनी चाहिए। यह तालिका सभी शासन संरचनाओं के लिए मान्य होगी। ध्यान दें कि समानता के लिए परीक्षण करते समय, हम साधारण बराबर के बजाय डबल बराबर का उपयोग करते हैं, केवल इसलिए कि समान चिह्न पहले से ही चर घोषित करते समय उपयोग किया जाता है।

यह उदाहरण जाँचता है कि 10, 5 से बड़ा है या नहीं। यदि सत्य है, तो हरे रंग से घिरे कोष्ठकों के बीच एक निष्पादित किया जाता है। यदि यह गलत है, तो पीले रंग से घिरे पुरस्कारों के बीच जो लिखा जाता है, उसे निष्पादित किया जाता है। तो, आप इस प्रकार की उपयोगिता को समझना शुरू करते हैं। चूँकि 10, 5 से बड़ा है, शर्त सही है और हरे रंग से घिरे कोष्ठकों में जो है वही करता है। बाद में जो कुछ भी होता है उसे नजरअंदाज कर दिया जाता है।


Seeedstudio Grove - मैंने कभी भी इस खंड के सेंसर का उपयोग नहीं किया है, हालांकि केवल जॉयस्टिक हैं। इस खंड को नए संस्करणों में विस्तारित किया गया है।


और अंतिम खंड "लिंकर किट" है। इसमें दिए गए सेंसर मेरे सामने नहीं आए।

दूसरी ओर, यदि आपको बहुत सी अन्य चीजों की आवश्यकता है, यदि आपको एक अन्य नियंत्रण संरचना पर विचार करने की आवश्यकता है जिसे स्विच कहा जाता है। और खिड़की के ठीक बाद, हम लिखते हैं कि यह चर के परीक्षण के लायक होगा। यानी यदि कोई केस चेक नहीं किया जाता है, तो डिफ़ॉल्ट रूप से जो पाया जाता है उसे निष्पादित किया जाएगा। पर अंग्रेज़ी शब्दमतलब हैक ऑन फ्रेंच. यह निर्देश बहुत उपयोगी है क्योंकि यह आपको प्रोग्राम को यह बताने की अनुमति देता है कि आप स्विच छोड़ना चाहते हैं। आपको पता होना चाहिए कि स्विच प्रत्येक मामले की जांच करता है, भले ही मामले को पहले ही जांचा जा चुका हो।

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

यहाँ भागों का ही सेट है, सब कुछ Amperka वेबसाइट पर खरीदा गया था।


समय और दक्षता में संभावित लाभ। मान लीजिए हम बात कर रहे हैं। हां, व्यंजक सत्य है, इसलिए जब तक यह सत्य है, हम घुंघराले ब्रेसिज़ में जो है उसे निष्पादित करते हैं। एक केवल तभी लौटाया जाता है जब अभिव्यक्ति सत्य हो। आपके द्वारा सेट की गई सेटिंग्स के साथ आप बस लूप को भी समझेंगे। यह एक शक्तिशाली और कभी-कभी खतरनाक उपकरण है।

एक और लूप है जो कुछ ऐसा दिखता है लेकिन कम जोखिम भरा है। यह हमारा अंतिम शासन ढांचा है, यही मंच है। जैसा कि ऊपर बताया गया है, वेतन वृद्धि एक चर में एक संख्या जोड़ने की क्रिया है। रिवर्स को डिक्रीमेंटिंग कहा जाता है, और एक चर से एक संख्या को घटाने का कार्य है। वेतन वृद्धि और कमी अक्सर एक संख्या के साथ की जाती है। हमने देखा है कि हम इस तरह से बढ़ सकते हैं।

  1. AMP-B001 मोटर शील्ड (2 चैनल, 2 A) 1 890 रूबल
  2. AMP-B017 Troyka Shield RUB 1,690
  3. AMP-X053 बैटरी कम्पार्टमेंट 3×2 AA 1 60 RUB
  4. AMP-B018 लाइन सेंसर डिजिटल 2 580 RUB
  5. ROB0049 टू-व्हील प्लेटफॉर्म मिनीक्यू 1 1890 RUB
  6. SEN0019 इन्फ्रारेड बाधा सेंसर 1 390 RUB
  7. इन्फ्रारेड बाधा सेंसर के लिए FIT0032 माउंट 1 90 आरयूबी
  8. A000066 Arduino Uno 1 1150 RUB


शुरू करने के लिए, हम पहिएदार प्लेटफॉर्म को इकट्ठा करेंगे और तारों को इंजनों में मिलाप करेंगे।


फिर हम बोर्ड को माउंट करने के लिए रैक स्थापित करते हैं अरुडिनो यूएनओ, जो पुराने से लिए गए थे मदरबोर्डया अन्य समान अनुलग्नक।


फिर हम इन रैक पर Arduino UNO बोर्ड को माउंट करते हैं, लेकिन हम एक बोल्ट को जकड़ने में सक्षम नहीं होंगे - कनेक्टर्स रास्ते में आते हैं। बेशक, आप उन्हें मिलाप कर सकते हैं, लेकिन यह आप पर निर्भर है।


अगला बांधें अवरक्त संवेदकअपने विशेष पर्वत पर बाधाएं। कृपया ध्यान दें कि संवेदनशीलता नियंत्रण शीर्ष पर है, यह समायोजन में आसानी के लिए है।



अब हम डिजिटल लाइन सेंसर स्थापित करते हैं, यहां हमें उनके लिए कुछ बोल्ट और 4 नट की तलाश करनी है। हम प्लेटफॉर्म और लाइन सेंसर के बीच दो नट स्थापित करते हैं, और बाकी के साथ सेंसर को ठीक करते हैं।


अगला मोटर शील्ड स्थापित करें या किसी अन्य तरीके से आप मोटर चालक को कॉल कर सकते हैं। हमारे मामले में, जम्पर पर ध्यान दें। हम मोटर्स के लिए एक अलग बिजली आपूर्ति का उपयोग नहीं करेंगे, इसलिए इसे इस स्थिति में स्थापित किया गया है। निचले हिस्से को बिजली के टेप से सील कर दिया गया है, ताकि केवल मामले में Arduino UNO के USB कनेक्टर से कोई आकस्मिक शॉर्ट सर्किट न हो।



मोटर शील्ड के ऊपर ट्रॉयका शील्ड स्थापित करें। सेंसर को जोड़ने की सुविधा के लिए यह आवश्यक है। हमारे द्वारा उपयोग किए जाने वाले सभी सेंसर डिजिटल होते हैं, इसलिए लाइन सेंसर पोर्ट 8 और 9 से जुड़े होते हैं, क्योंकि उन्हें पिन भी कहा जाता है, और इन्फ्रारेड बाधा सेंसर पोर्ट 12 से जुड़ा होता है। ध्यान दें कि आप पोर्ट 4, 5, 6, 7 का उपयोग नहीं कर सकते क्योंकि इनका उपयोग मोटर शील्ड द्वारा मोटर्स को नियंत्रित करने के लिए किया जाता है। मैंने इन बंदरगाहों पर विशेष रूप से लाल मार्कर से पेंट किया था ताकि छात्र इसका पता लगा सकें।


यदि आपने पहले ही ध्यान दिया है, तो मैंने एक काली आस्तीन जोड़ी है, बस मामले में, ताकि हमारे द्वारा स्थापित बैटरी कंपार्टमेंट उड़ न जाए। और अंत में, हम एक साधारण रबर बैंड के साथ पूरी संरचना को ठीक करते हैं।

बैटरी कम्पार्टमेंट कनेक्शन 2 प्रकार के हो सकते हैं। Troyka Shield से पहला वायर कनेक्शन। पावर प्लग को मिलाप करना और इसे Arduino UNO बोर्ड से ही जोड़ना भी संभव है।



यहाँ हमारा रोबोट तैयार है। प्रोग्रामिंग शुरू करने से पहले, आपको यह सीखना होगा कि सब कुछ कैसे काम करता है, अर्थात्:
- मोटर्स:
पोर्ट 4 और 5 का उपयोग एक मोटर को नियंत्रित करने के लिए किया जाता है, और 6 और 7 दूसरे का;
हम पोर्ट 5 और 6 पर PWM के साथ मोटर्स की रोटेशन गति को समायोजित करते हैं;
पोर्ट 4 और 7 को सिग्नल करके आगे या पीछे।
- सेंसर:
हम सभी डिजिटल हैं, इसलिए वे 1 या 0 के रूप में तार्किक संकेत देते हैं;
और उन्हें समायोजित करने के लिए, उनके पास विशेष नियामक हैं और एक उपयुक्त स्क्रूड्राइवर की सहायता से उन्हें कैलिब्रेट किया जा सकता है।

विवरण Amperka में पाया जा सकता है। यहाँ क्यों? क्योंकि Arduino के साथ काम करने के बारे में बहुत सारी जानकारी है।

खैर, हमने, शायद, सब कुछ सतही रूप से देखा, अध्ययन किया और निश्चित रूप से, रोबोट को इकट्ठा किया। अब इसे प्रोग्राम करने की आवश्यकता है, यहाँ यह है - लंबे समय से प्रतीक्षित कार्यक्रम!


और कार्यक्रम Arduino IDE में परिवर्तित हो गया:

शून्य सेटअप () (पिनमोड (8, इनपुट); पिनमोड (12, इनपुट); पिनमोड (9, इनपुट); पिनमोड (4, आउटपुट); पिनमोड (7, आउटपुट); पिनमोड (5, आउटपुट); पिनमोड (6 , OUTPUT); ) शून्य लूप () (अगर (डिजिटलरेड (12))) (अगर (डिजिटलरेड (8)) (अगर (डिजिटल रीड (9))) (डिजिटलराइट (4, हाई); एनालॉगराइट (5, 255); एनालॉगराइट ( 6, 255); digitalWrite(7, HIGH); ) और ( digitalWrite(4, HIGH); AnalogWrite(5, 255); AnalogWrite(6, 50); digitalWrite(7, LOW); )) और (अगर (डिजिटलरीड) (9)) (डिजिटलवाइट(4, लो);एनालॉगराइट(5,50);एनालॉगवाइट(6,255);डिजिटलवाइट(7,हाई); )अन्य(डिजिटलवाइट(4,हाई);एनालॉगवाइट(5,255); AnalogWrite(6, 255); digitalWrite(7, High); ) ) ) और ( digitalWrite(4 , High); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7, High); ))

अंत में, मैं कहना चाहता हूं कि यह कार्यक्रम शिक्षा के लिए सिर्फ एक ईश्वर है, यहां तक ​​​​कि स्व-अध्ययन के लिए भी, यह आपको Arduino IDE कमांड सीखने में मदद करेगा। सबसे महत्वपूर्ण हाइलाइट यह है कि 50 से अधिक इंस्टॉलेशन आइकन के साथ, यह "विफल" होने लगता है। हां, वास्तव में, यह एक हाइलाइट है, क्योंकि केवल ArduBlok पर निरंतर प्रोग्रामिंग आपको Arduino IDE में प्रोग्राम करना नहीं सिखाएगी। तथाकथित "गड़बड़" कार्यक्रमों के सटीक डिबगिंग के लिए कमांड को सोचने और याद रखने की कोशिश करना संभव बनाता है।

आपकी सफलता की कामना करते है।

परिचय

Freeduino/Arduino को एक विशेष प्रोग्रामिंग भाषा में प्रोग्राम किया गया है - यह C/C++ पर आधारित है और आपको इसके किसी भी कार्य का उपयोग करने की अनुमति देता है। कड़ाई से बोलते हुए, अलग अरुडिनो भाषामौजूद नहीं है, जैसे कोई Arduino कंपाइलर नहीं है - लिखित प्रोग्राम को C / C ++ प्रोग्राम में परिवर्तित किया जाता है (न्यूनतम परिवर्तन के साथ), और फिर AVR-GCC कंपाइलर द्वारा संकलित किया जाता है। तो वास्तव में, AVR माइक्रोकंट्रोलर के लिए विशेष C / C ++ संस्करण का उपयोग किया जाता है।

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

सहमत हूं, सीरियल पोर्ट के साथ 9600 बिट्स प्रति सेकंड की गति से काम करना शुरू करना बहुत सुविधाजनक है, एक लाइन में कॉल करना:

सीरियल.बेगिन (9600);

और "नंगे" सी / सी ++ का उपयोग करते समय, आपको माइक्रोकंट्रोलर के लिए प्रलेखन से निपटना होगा, और कुछ इस तरह कॉल करना होगा:

UBRR0H = ((F_CPU / 16 + 9600/2) / 9600 - 1) >> 8;
UBRR0L = ((F_CPU / 16 + 9600/2) / 9600 - 1);
एसबीआई (यूसीएसआर0बी, आरएक्सईएन0);
एसबीआई (यूसीएसआर0बी, TXEN0);
एसबीआई (यूसीएसआर0बी, आरएक्ससीआईई0);

यहाँ Arduino प्रोग्रामिंग के मुख्य कार्यों और विशेषताओं का संक्षिप्त विवरण दिया गया है। यदि आप C/C++ भाषाओं के वाक्य-विन्यास से परिचित नहीं हैं, तो हम आपको इस मुद्दे पर किसी साहित्य या इंटरनेट स्रोतों को देखने की सलाह देते हैं।

दूसरी ओर, प्रस्तुत किए गए सभी उदाहरण बहुत सरल हैं, और सबसे अधिक संभावना है कि आपको अतिरिक्त साहित्य पढ़े बिना भी स्रोत ग्रंथों को समझने और अपने स्वयं के कार्यक्रम लिखने में कोई कठिनाई नहीं होगी।

अधिक संपूर्ण दस्तावेज़ीकरण अंग्रेजी भाषा) परियोजना की आधिकारिक वेबसाइट - http://www.arduino.cc पर प्रस्तुत किया गया है। एक मंच भी है, अतिरिक्त पुस्तकालयों के लिंक और उनका विवरण।

Arduino प्रोजेक्ट की आधिकारिक वेबसाइट पर विवरण के अनुरूप, "पोर्ट" माइक्रोकंट्रोलर के संपर्क को संदर्भित करता है, संबंधित संख्या के तहत कनेक्टर को आउटपुट। इसके अलावा, एक सीरियल डेटा पोर्ट (COM पोर्ट) है।

कार्यक्रम संरचना

अपने कार्यक्रम में, आपको दो घोषित करना होगा मुख्य कार्य: सेटअप () और लूप ()।

फ्रीडुइनो बोर्ड के प्रत्येक पावर अप या रीसेट के बाद, सेटअप () फ़ंक्शन को एक बार कॉल किया जाता है। वैरिएबल को इनिशियलाइज़ करने, डिजिटल पोर्ट मोड सेट करने आदि के लिए इसका इस्तेमाल करें।

लूप () फ़ंक्शन क्रमिक रूप से अपने शरीर में वर्णित आदेशों को बार-बार निष्पादित करता है। वे। समारोह समाप्त होने के बाद, इसे फिर से बुलाया जाएगा।

आइए एक साधारण उदाहरण लें:

शून्य सेटअप () // प्रारंभिक सेटिंग्स
{
प्रारंभ सीरियल (9600); // सीरियल पोर्ट स्पीड को 9600 बीपीएस पर सेट करें
पिनमोड (3, इनपुट); // डेटा इनपुट के लिए तीसरा पोर्ट सेट करें
}

// प्रोग्राम उस पर सिग्नल के लिए तीसरे पोर्ट की जांच करता है और एक प्रतिक्रिया भेजता है
// कंप्यूटर के सीरियल पोर्ट पर एक टेक्स्ट संदेश के रूप में
शून्य लूप () // प्रोग्राम बॉडी
{
if (digitalRead(3) == High) // पोलिंग पोर्ट 3 के लिए कंडीशन
सीरियलवाइट ("एच"); // COM पोर्ट को "H" अक्षर के रूप में एक संदेश भेजें
वरना
सीरियलवाइट ("एल"); // COM पोर्ट को "L" अक्षर के रूप में एक संदेश भेजें
देरी (1000); // देरी 1 सेकंड।
}

पिनमोड (पोर्ट, मोड);

विवरण:

सिग्नल को इनपुट या आउटपुट करने के लिए निर्दिष्ट पोर्ट को कॉन्फ़िगर करता है।

विकल्प:

पोर्ट - उस पोर्ट की संख्या जिसका मोड आप सेट करना चाहते हैं (0 से 13 तक पूर्णांक मान)।

मोड - या तो इनपुट (इनपुट) या आउटपुट (आउटपुट)।

पिनमोड (13, आउटपुट); // 13 वां पिन आउटपुट होगा
पिनमोड (12, इनपुट); // और 12 वां इनपुट है

टिप्पणी:

संख्या 14 (एनालॉग इनपुट 0) से 19 (एनालॉग इनपुट 5) द्वारा एक्सेस किए जाने पर एनालॉग इनपुट का उपयोग डिजिटल इनपुट / आउटपुट के रूप में किया जा सकता है

digitalWrite (पोर्ट, मान);

विवरण:

निर्दिष्ट पोर्ट पर वोल्टेज स्तर को उच्च (उच्च) या निम्न (लो) पर सेट करता है।

विकल्प:

पोर्ट: पोर्ट नंबर

मान: उच्च या निम्न

डिजिटलवाइट (13, हाई); // पिन 13 को "उच्च" स्थिति पर सेट करें

मूल्य = डिजिटल रीड (पोर्ट);

विवरण:

निर्दिष्ट पोर्ट पर एक मान पढ़ता है

विकल्प:

पोर्ट: पोलेड पोर्ट नंबर

वापसी मूल्य: प्रकार के पोर्ट (उच्च या निम्न) पर वर्तमान मान लौटाता है int

इंट वैल्यू;
वैल = डिजिटलरेड(12); // 12 वें आउटपुट को पोल करें

टिप्पणी:

यदि रीड पोर्ट से कुछ भी नहीं जुड़ा है, तो digitalRead () फ़ंक्शन बेतरतीब ढंग से उच्च या निम्न लौटा सकता है।

एनालॉग इनपुट / आउटपुट सिग्नल

मान = एनालॉगरेड (पोर्ट);

विवरण:

निर्दिष्ट एनालॉग पोर्ट से एक मान पढ़ता है। फ्रीडुइनो में 6 चैनल हैं, प्रत्येक में 10 बिट ए/डी कन्वर्टर्स हैं। इसका मतलब है कि 0 से 5V के इनपुट वोल्टेज को 0 से 1023 के पूर्णांक मान में बदल दिया जाता है। पढ़ने का संकल्प है: 5V/1024 मान = 0.004883V/मान (4.883mV)। एनालॉग इनपुट मान को पढ़ने में लगभग 100 nS (0.0001 S) लगता है, इसलिए अधिकतम रीडआउट दर लगभग 10,000 बार प्रति सेकंड है।

विकल्प:

वापसी मूल्य: 0 से 1023 की सीमा में एक इंट लौटाता है, निर्दिष्ट पोर्ट से पढ़ा जाता है।

इंट वैल्यू;
वैल = एनालॉगरेड (0); // एनालॉग इनपुट पर मूल्य पढ़ें 0

टिप्पणी:

एनालॉग पोर्ट सिग्नल-इनपुट डिफ़ॉल्ट रूप से परिभाषित होते हैं और, डिजिटल पोर्ट के विपरीत, उन्हें पिनमोड फ़ंक्शन को कॉल करके कॉन्फ़िगर करने की आवश्यकता नहीं होती है।

एनालॉगवर्इट (पोर्ट, वैल्यू);

विवरण:

पोर्ट के अनुरूप मान आउटपुट करता है। यह सुविधा इस पर काम करती है: 3, 5, 6, 9, 10 और 11 फ्रीडुइनो डिजिटल पोर्ट।

एलईडी की चमक को बदलने, मोटर को नियंत्रित करने आदि के लिए इस्तेमाल किया जा सकता है। AnalogWrite फ़ंक्शन को कॉल करने के बाद, संबंधित पोर्ट PWM मोड में तब तक काम करेगा जब तक कि AnalogWrite फ़ंक्शन (या उसी पोर्ट पर digitalRead / digitalWrite फ़ंक्शन) पर अगली कॉल न हो जाए।

विकल्प:

पोर्ट: प्रदूषित एनालॉग इनपुट की संख्या

मान: 0 और 255 के बीच पूर्णांक। 0 का मान निर्दिष्ट पोर्ट पर 0 V उत्पन्न करता है; 255 का मान निर्दिष्ट पोर्ट पर +5 V उत्पन्न करता है। 0 और 255 के बीच के मानों के लिए, पोर्ट 0 और +5V के बीच तेजी से चक्रित होगा - मान जितना अधिक होगा, पोर्ट उतनी ही बार उच्च (5V) उत्पन्न करेगा।

AnalogWrite(9, 128);// पिन 9 को 2.5V . के बराबर मान पर सेट करें

टिप्पणी:

एनालॉगवाइट फ़ंक्शन को कॉल करने से पहले पोर्ट को पिन पर सेट करने के लिए पिनमोड फ़ंक्शन को कॉल करना आवश्यक नहीं है।

सिग्नल जनरेशन फ्रीक्वेंसी लगभग 490 हर्ट्ज है।

समय = मिली ();

विवरण:

फ्रीडुइनो द्वारा वर्तमान कार्यक्रम को निष्पादित करने के बाद से मिलीसेकंड की संख्या लौटाता है। लगभग 9 घंटे के बाद काउंटर ओवरफ्लो हो जाएगा और शून्य पर रीसेट हो जाएगा।

वापसी मूल्य: अहस्ताक्षरित लंबे प्रकार का मान लौटाता है

अहस्ताक्षरित लंबे समय; // अहस्ताक्षरित लंबे प्रकार के समय चर की घोषणा
समय = मिली (); // मिलीसेकंड की संख्या पास करना

देरी (समय_एमएस);

विवरण:

मिलीसेकंड की निर्दिष्ट संख्या के लिए प्रोग्राम को रोकता है।

विकल्प:

time_ms - मिलीसेकंड में कार्यक्रम विलंब समय

देरी (1000); // 1 सेकंड रोकें

देरीमाइक्रोसेकंड

देरीमाइक्रोसेकंड (time_µs);

विवरण:

माइक्रोसेकंड की निर्दिष्ट संख्या के लिए प्रोग्राम को रोकता है।

विकल्प:

time_µs - माइक्रोसेकंड में प्रोग्राम विलंब समय

देरीमाइक्रोसेकंड (500); // 500 माइक्रोसेकंड रोकें

पल्सइन (पोर्ट, वैल्यू);

विवरण:

एक डिजिटल पोर्ट से एक पल्स (उच्च या निम्न) पढ़ता है और माइक्रोसेकंड में पल्स की अवधि देता है।

उदाहरण के लिए, यदि फ़ंक्शन को कॉल करते समय "मान" पैरामीटर उच्च पर सेट होता है, तो पल्सइन () उच्च सिग्नल स्तर प्राप्त करने के लिए पोर्ट की प्रतीक्षा करता है। जिस क्षण से यह आता है, पोर्ट प्राप्त होने तक उलटी गिनती शुरू हो जाती है कम स्तरसंकेत। फ़ंक्शन पल्स लंबाई लौटाता है ( उच्च स्तर) माइक्रोसेकंड में। 10 माइक्रोसेकंड से 3 मिनट तक दालों के साथ काम करता है। ध्यान दें कि यह फ़ंक्शन तब तक परिणाम नहीं लौटाएगा जब तक कि पल्स का पता नहीं चल जाता।

विकल्प:

पोर्ट: उस पोर्ट की संख्या जिससे हम पल्स पढ़ते हैं

मान: पल्स प्रकार उच्च या निम्न

वापसी मूल्य: माइक्रोसेकंड में पल्स की अवधि लौटाता है (प्रकार int)

अंतर अवधि; // प्रकार की अवधि चर की घोषणा int
अवधि = पल्सइन (पिन, हाई); // नाड़ी की अवधि को मापें

धारावाहिक संचार

फ्रीडुइनो में एक अंतर्निर्मित सीरियल कंट्रोलर है जिसका उपयोग फ्रीडुइनो/अरुडिनो उपकरणों या कंप्यूटर के बीच संचार करने के लिए किया जा सकता है। कंप्यूटर पर, संबंधित कनेक्शन को USB COM पोर्ट द्वारा दर्शाया जाता है।

संचार डिजिटल पोर्ट 0 और 1 पर होता है, और इसलिए यदि आप सीरियल डेटा फ़ंक्शन का उपयोग कर रहे हैं तो आप उनका उपयोग डिजिटल I/O के लिए नहीं कर सकते।

Serial.begin (बॉड दर);

विवरण:

बॉड दर सेट करता है कॉम पोर्टसीरियल डेटा ट्रांसफर के लिए प्रति सेकंड बिट्स। कंप्यूटर से संचार करने के लिए, इनमें से किसी एक मानक गति का उपयोग करें: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, या 115200। पोर्ट 0 द्वारा किसी अन्य माइक्रोकंट्रोलर के साथ संचार करते समय आप अन्य गति भी निर्दिष्ट कर सकते हैं। और 1।

विकल्प:

बॉड्रेट: डेटा दर प्रति सेकंड बिट्स में।

सीरियल.बेगिन (9600); // गति को 9600 बीपीएस पर सेट करें

धारावाहिक.उपलब्ध

गिनती = धारावाहिक उपलब्ध ();

विवरण:

सीरियल पोर्ट के माध्यम से प्राप्त बाइट माइक्रोकंट्रोलर के बफर में प्रवेश करते हैं, जहां से आपका प्रोग्राम उन्हें पढ़ सकता है। फ़ंक्शन बफ़र में संचित बाइट्स की संख्या देता है। सीरियल बफर 128 बाइट्स तक स्टोर कर सकता है।

प्रतिलाभ की मात्रा:

एक इंट वैल्यू देता है, सीरियल बफर में पढ़ने के लिए उपलब्ध बाइट्स की संख्या, या 0 अगर कुछ भी उपलब्ध नहीं है।

अगर (सीरियल.उपलब्ध ()> 0) (// यदि बफर में डेटा है
// यहां डेटा प्राप्त करना और संसाधित करना चाहिए
}

चार = सीरियल.रीड ();

विवरण:

सीरियल बफर से अगला बाइट पढ़ता है।

प्रतिलाभ की मात्रा:

सीरियल पोर्ट से आने वाले डेटा का पहला उपलब्ध बाइट, या -1 अगर कोई आवक डेटा नहीं है।

इनकमिंगबाइट = सीरियल.रीड (); // बाइट पढ़ें

विवरण:

सीरियल पोर्ट के इनपुट बफर को साफ करता है। बफ़र्ड डेटा खो जाता है, और आगे Serial.read () या Serial.उपलब्ध () को कॉल करने से Serial.flush () को कॉल के बाद प्राप्त डेटा के लिए समझ में आएगा।

सीरियल फ्लश (); // बफर साफ़ करें - "स्क्रैच से" डेटा प्राप्त करना शुरू करें

विवरण:

सीरियल पोर्ट के लिए डेटा आउटपुट।

विकल्प:

आउटपुट डेटा के प्रकार और प्रारूप के आधार पर फ़ंक्शन में कई कॉल फॉर्म होते हैं।

Serial.print(b, DEC) एक ASCII स्ट्रिंग को प्रिंट करता है, b का दशमलव प्रतिनिधित्व।

इंट बी = 79;

Serial.print(b, HEX) एक ASCII स्ट्रिंग को प्रिंट करता है, जो संख्या b का हेक्साडेसिमल प्रतिनिधित्व है।

इंट बी = 79;

Serial.print(b, OCT) एक ASCII स्ट्रिंग को प्रिंट करता है, जो संख्या b का ऑक्टल प्रतिनिधित्व है।

इंट बी = 79;
सीरियल प्रिंट (बी, अक्टूबर); // स्ट्रिंग "117" को पोर्ट पर आउटपुट करेगा

Serial.print(b, BIN) एक ASCII स्ट्रिंग को प्रिंट करता है, जो संख्या b का बाइनरी प्रतिनिधित्व है।

इंट बी = 79;
सीरियल.प्रिंट (बी, बिन); // पोर्ट पर स्ट्रिंग "1001111" आउटपुट करेगा

Serial.print(b, BYTE) b के लो बाइट को प्रिंट करता है।

इंट बी = 79;
सीरियल.प्रिंट (बी, बाइट); // 79 नंबर (एक बाइट) प्रिंट करता है। मॉनिटर में
// सीरियल पोर्ट हमें "O" अक्षर मिलता है - इसका
// कोड 79 . है

Serial.print(str) यदि str एक स्ट्रिंग या वर्णों की एक सरणी है, तो str को COM पोर्ट बाइट द्वारा बाइट द्वारा भेजता है।

चार बाइट्स = (79, 80, 81); // 79,80,81 के मूल्यों के साथ 3 बाइट्स की सरणी
Serial.print ("यहां हमारे बाइट्स:"); // स्ट्रिंग को प्रिंट करता है "यहां हमारे बाइट्स:"
सीरियल प्रिंट (बाइट्स); // आउटपुट 3 वर्ण कोड 79,80,81 के साथ -
// ये "OPQ" अक्षर हैं

Serial.print(b) यदि b बाइट या चार प्रकार का है, तो नंबर b को पोर्ट पर ही प्रिंट करता है।

चार्ब = 79;
सीरियल प्रिंट (बी); // पोर्ट को "O" अक्षर जारी करेगा

Serial.print(b) यदि b एक पूर्णांक है, तो b के दशमलव निरूपण को पोर्ट पर प्रिंट करता है।

इंट बी = 79;
सीरियल प्रिंट (बी); // पोर्ट पर स्ट्रिंग "79" आउटपुट करेगा

विवरण:

Serial.println फ़ंक्शन Serial.print फ़ंक्शन के समान है, और इसमें समान कॉल विकल्प हैं। केवल अंतर यह है कि डेटा के बाद दो अतिरिक्त वर्ण आउटपुट होते हैं - एक कैरिज रिटर्न (ASCII 13, या "\r") और एक न्यूलाइन कैरेक्टर (ASCII 10, या "\n")।

उदाहरण 1 और उदाहरण 2 एक ही चीज़ को पोर्ट पर आउटपुट करेंगे:

इंट बी = 79;
सीरियल.प्रिंट (बी, डीईसी); // पोर्ट पर स्ट्रिंग "79" आउटपुट करेगा
सीरियल.प्रिंट ("\ r \ n"); // "\r\n" अक्षर प्रदर्शित करेगा - न्यूलाइन
सीरियल.प्रिंट (बी, हेक्स); // पोर्ट पर स्ट्रिंग "4F" आउटपुट करेगा
Serial.print("\r\n");// "\r\n" अक्षरों को प्रिंट करेगा - न्यूलाइन

इंट बी = 79;
Serial.println (बी, डीईसी); // पोर्ट पर स्ट्रिंग "79\r\n" आउटपुट करेगा
Serial.println (बी, हेक्स); // पोर्ट पर स्ट्रिंग "4F\r\n" आउटपुट करेगा

सीरियल पोर्ट मॉनिटर में हमें मिलता है।