मंगलवार, 31 जनवरी 2017

Arduino Uno in Marathi - DigitalReadSerial


इलेक्ट्रॉनिक्सच्या कॉम्पोनंट्सबद्दल शिकण्यासाठी आर्डूइनो उनो हा एक उत्तम प्लॅटफॉर्म आहे. जेव्हा एखादा कॉम्पोनंट तुम्ही आर्डूइनोशी जोडून वापरता तेव्हा त्या कॉम्पोनंट सोबत वेगवेगळे  प्रयोग करून पाहता येतात. त्याच बरोबर आर्डूइनोमध्ये त्या कॉम्पोनंटला हाताळण्यासाठी प्रोग्राम पण लिहिता येतो. वेगवेगळे प्रोग्राम लिहून कोणताही कॉम्पोनंट वेगवेगळ्या प्रकारे वापरून पाहता येतो


आज आपण आर्डूइनो उनो सोबत एक प्रयोग करून पाहू.  हा प्रयोग किंवा याचा प्रोग्राम आर्डूइनोच्या IDE मध्ये दिलेला आहे.



या प्रयोगात आपण एक टॅक्टाइल स्विच वापरू. माझ्या आर्डूइनोच्या किट सोबत असे पाच टॅक्ट स्विच मिळाले आहेत. तुम्ही जर अजून आर्डूइनोचा किट घेतला नसेल तर हा किट तुम्ही घेऊ शकता. अॅमॅझॉनवर मिळणाऱ्या या किटमध्ये इतर किट्सपेक्षा कितीतरी जास्त कॉम्पोनंट्स आहेत. आपण त्या सर्वांचा वापर करून वेगवेगळे प्रयोग करून पाहू.





या स्विचला चार पिना आणि दोन बाजू असतात. प्रत्येक बाजूला दोन पिना. या स्विचला खालील  बाजूने पाहिले असता प्रत्येक बाजूच्या दोन पिनांमध्ये एक एक प्लास्टिकची पट्टी वजा रेघ दिसते, यावरून एका बाजूच्या पिना कोणत्या ते ओळखता येते. 

त्याचबरोबर हे स्विच ब्रेडबोर्डच्या मध्यभागात असलेल्या खाचेच्या वर बसवले जाते. ते तुम्ही पहिल्या चित्रामध्ये पाहू शकता.  अशा रीतीने स्विच बसवताना तो फक्त एकाच बाजूने बसवता येतो. कारण स्विचची  एक बाजू ही दुसऱ्या बाजूपेक्षा आखूड असते. 

स्विच ब्रेडबोर्डवर बसवताना घ्यावयाची काळजी - जर तुम्ही आखूड बाजूने स्विचला बोर्डवर बसवण्याचा प्रयत्न केला तर तो बसणार नाही आणि असे करताना  स्विचच्या पिना वाकड्या होण्याची पण शक्यता असते. त्याचबरोबर तुमच्या ब्रेडबोर्डवर कॉम्पोनंट्स बसवताना जर जास्त जोर द्यावा लागत असेल तर अशा वेळी स्विच बसवण्यापूर्वी एखाद्या वायरीने ब्रेडबोर्डच्या छिद्रांमध्ये टोचून त्याला थोडेसे ढिले करून घ्या म्हणजे  कॉम्पोनंटच्या पिना वाकड्या होण्याचा धोका टाळता येतो. आर्डूइनोच्या किट सोबत ज्या वायरी मिळतात त्यांच्या टोकांना जाड पिन बसवलेली असते त्यामुळे त्या ब्रेडबोर्डवर सहजपणे बसवता येतात 


वरील चित्रामध्ये या प्रयोगाचे सर्किट डायग्राम दाखवलेले आहे. या ठिकाणी स्विचच्या एका बाजूला 5V च्या पॉइंटशी लाल रंगाच्या वायरीने जोडलेले आहे. तर दुसऱ्या बाजूला 10 किलो ओहमचा एक रेजिस्टर जोडलेला आहे. या रेजिस्टरच्या दुसऱ्या टोकाला एक काळ्या रंगाची वायर जोडून ती आर्डूइनोच्या ग्राउंडच्या पॉइंटला जोडली आहे.  स्विचच्या याच टोकाला एक पिवळ्या रंगाची वायर जोडून ती आर्डूइनोच्या पिन क्रमांक 2 ला जोडलेली आहे. आणि तुम्हाला हवे असल्यास वरील चित्रावर क्लिक करून त्याला मोठे करून पाहू शकता.

अशा रितीने सर्किट जोडून झाल्यावर आर्डूइनोच्या बोर्डला कॉम्प्युटरशी USB केबलने जोडून घ्यावे. 

आता आर्डूइनोची IDE उघडून त्यामध्ये "DigitalReadSerial" हा प्रोग्राम उघडावा. या प्रोग्रला मी थोडेसे संक्षिप्त करून खाली लिहिले आहे, त्यामुळे हा प्रोग्राम कसा लिहिला गेला आहे हे आपल्याला लवकर समजेल.



या प्रोग्राममध्ये दोन फंक्शन आहेत  setup आणि loop. आपण कॉम्प्युटर आणि आर्डूइनोच्या बोर्ड मध्ये ( serial communication ) सीरिअल कम्युनिकेशनची सुरवात करतो आणि त्यानंतर पिन क्रमांक 2 ला इनपुट म्हणून ठरवतो. आर्डूइनोचा प्रोग्राम लिहिताना आपल्याला कोणती पिन इनपुट किंवा आउटपुटसाठी वापरायची आहे ते पिनमोड या  फंक्शन मध्ये लिहावे लागते.

 loop या फंक्शन मध्ये आपण पिन क्रमांक 2 ला मिळत असलेले इनपुट  digitalRead()  या फंक्शनचा वापर करून नोंदवतो आणि त्याची नोंद ही x या इंटीजर व्हॅरिएबल मध्ये साठवतो .  त्यानंतर आपण Serial.println() या फंक्शनचा वापर करून x ची व्हॅल्यू कॉम्प्युटरच्या स्क्रीनवर पाहू शकतो .

आता तुम्ही उघडलेला प्रोग्राम आर्डूइनोच्या  बोर्डवर अपलोड करा, त्यासाठी अपलोडच्या आईकॉनवर क्लिक करा. अपलोड पूर्ण झाल्यानंतर Tools या मेनू मधून Serial Plotter किंवा Serial monitor उघडा. 

त्यावेळी तुम्हाला प्लॉटरमध्ये एक लाईन दिसेल आणि जर मॉनिटर उघडलेला असेल तर ० हा अंक दिसेल. आणि जर तुम्ही स्विच दाबला तर  प्लॉटरचा ग्राफ वर जाईल आणि जेव्हापर्यंत तुम्ही स्विच दाबून ठेवाल तेव्हापर्यंत तो वरच राहील. तर सीरिअल मॉनिटर मध्ये 1 हा अंक दिसू लागेल. 

या ठिकाणी आपण 5V  चा सप्लाय स्विचला दिलेला आहे. जेव्हा स्विच दाबलेला नसतो त्यावेळी 0V इतकी वीज स्विच मधून वाहते म्हणजे वीज वहात नाही, त्यावेळी 0 हा अंक आपल्याला स्क्रीन वर मिळतो, ज्यावेळी आपण स्विच दाबतो त्यावेळी 5V ची वीज स्विच मधून वाहते, आणि त्यावेळी 1 हा अंक आपल्याला स्क्रीनवर मिळतो. तर अशा रीतीने स्विचच्या हालचालीला आर्डूइनो उनो मार्फत संगणकावर पाहता येते. या ठिकाणी आर्डूइनो च्या बोर्ड वर ० व्होल्ट च्या आउटपुटला ० तर 5 व्होल्टच्या आउटपुटला 1 या अंकामध्ये बदलले जाते. हे digitalRead() या फंक्शन मध्ये केले जाते.  



यापुढील प्रयोगामध्ये आपण याचा वापर इतर प्रयोगामध्ये करून पाहू.