विषयसूची:

Arduino कैलकुलेटर: 6 कदम
Arduino कैलकुलेटर: 6 कदम

वीडियो: Arduino कैलकुलेटर: 6 कदम

वीडियो: Arduino कैलकुलेटर: 6 कदम
वीडियो: #61 Arduino Calculator || PR ROBOTICS 2024, नवंबर
Anonim
Arduino कैलकुलेटर
Arduino कैलकुलेटर

प्रोग्रामिंग हमेशा मजेदार होती है और यदि आप अभी एंबेडेड प्रोग्रामिंग के साथ शुरुआत कर रहे हैं तो Arduino एक अद्भुत प्लेटफॉर्म है। इस ट्यूटोरियल में हम Arduino के साथ अपना खुद का कैलकुलेटर बनाएंगे। मानों को कीपैड (4×4 कीपैड) के माध्यम से भेजा जा सकता है और परिणाम एलसीडी स्क्रीन (16×2 डॉट-मैट्रिक्स) पर देखा जा सकता है। यह कैलकुलेटर पूर्ण संख्याओं के साथ जोड़, घटाव, गुणा और भाग जैसे सरल संचालन कर सकता है। लेकिन एक बार जब आप अवधारणा को समझ लेते हैं तो आप Arduino के अंतर्निहित कार्यों के साथ वैज्ञानिक कार्यों को भी लागू कर सकते हैं। इस परियोजना के अंत में आप जानेंगे कि Arduino के साथ 16x2 LCD और कीपैड का उपयोग कैसे किया जाता है और यह भी कि उनके लिए आसानी से प्रोग्राम करना कितना आसान है उपलब्ध पुस्तकालय। आप यह भी समझेंगे कि किसी विशेष कार्य को पूरा करने के लिए अपने Arduino को कैसे प्रोग्राम किया जाए।

चरण 1: आवश्यक चीज़ें

Arduino Uno (कोई भी संस्करण काम करेगा)16×2 LCD डिस्प्ले4×4 कीपैड9V बैटरीब्रेडबोर्ड और कनेक्टिंग वायर

चरण 2: सर्किट आरेख

सर्किट आरेख
सर्किट आरेख

चरण 3: Arduino कैलकुलेटर प्रोग्राम

इस प्रोजेक्ट के लिए पूरा Arduino प्रोग्राम इस प्रोजेक्ट के अंत में दिया गया है। कोड को छोटे सार्थक भागों में विभाजित किया गया है और नीचे समझाया गया है। जैसा कि पहले बताया गया था कि हम पुस्तकालयों का उपयोग करके Arduino के साथ एक LCD और कीपैड को इंटरफ़ेस करने जा रहे हैं। तो चलिए पहले उन्हें अपने Arduino IDE में जोड़ते हैं। एलसीडी के लिए पुस्तकालय डिफ़ॉल्ट रूप से आपके Arduino में पहले से ही शामिल है, इसलिए हमें इसके बारे में चिंता करने की आवश्यकता नहीं है। कीपैड लाइब्रेरी के लिए इसे जीथब से डाउनलोड करने के लिए लिंक पर क्लिक करें। आपको एक ज़िप फ़ाइल मिलेगी, फिर इस lib को Arduino में स्केच द्वारा जोड़ें -> लाइब्रेरी शामिल करें ->. ZIP फ़ाइल जोड़ें और इस डाउनलोड की गई फ़ाइल को स्थान इंगित करें। एक बार हो जाने के बाद हम प्रोग्रामिंग के लिए पूरी तरह तैयार हैं। भले ही हमने कीपैड का उपयोग करने के लिए एक पुस्तकालय का उपयोग किया है, हमें Arduino के कीपैड के बारे में कुछ विवरण (नीचे दिखाया गया है) का उल्लेख करना होगा। चर ROWS और COLS बताएंगे कि हमारे कीपैड में कितनी पंक्तियाँ और स्तंभ हैं और कीमैप उस क्रम को दिखाता है जिसमें कीबोर्ड पर कुंजियाँ मौजूद हैं। इस प्रोजेक्ट में मैं जिस कीपैड का उपयोग कर रहा हूं, वह नीचे की तरह दिखता है, कुंजी मानचित्र भी उसी का प्रतिनिधित्व करता है। आगे नीचे हमने उल्लेख किया है कि कीपैड चर सरणी rowPins और colPins.const बाइट ROWS = 4 का उपयोग करके किन पिनों से जुड़ा है; // चार पंक्तियों कांस्ट बाइट COLS = 4; // तीन कॉलम // कीमैपचर कुंजियों को परिभाषित करें [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' बी'}, {'7', '8', '9', 'सी'}, {'*', '0', '#', 'डी'}};बाइट रोपिन्स [आरओडब्ल्यूएस] = { 0, 1, 2, 3};// कीपैड ROW0, ROW1, ROW2 और ROW3 को इन Arduino pins.byte colPins[COLS] = {4, 5, 6, 7} से कनेक्ट करें; // कीपैड COL0, COL1 और COL2 को इन Arduino पिन से कनेक्ट करें। एक बार जब हमने उल्लेख किया कि हम किस प्रकार के कीपैड का उपयोग कर रहे हैं और यह कैसे जुड़ा हुआ है, तो हम नीचे की लाइन का उपयोग करके उन विवरणों का उपयोग करके कीपैड बना सकते हैं।), RowPins, colPins, ROWS, COLS); // कीपैड बनाएं इसी तरह हमें यह भी बताना होगा कि एलसीडी किस Arduino के पिन से जुड़ा है। हमारे सर्किट आरेख के अनुसार परिभाषाएं नीचे की तरह होंगी int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // पिन जिनसे LCD जुड़ा हैLiquidCrystal LCD(rs, en, d4, d5, d6, d7); // सेटअप फ़ंक्शन के अंदर एलसीडी बनाएं, हम केवल प्रोजेक्ट का नाम प्रदर्शित करते हैं और फिर उस लूप पर आगे बढ़ते हैं जहां मुख्य प्रोजेक्ट निहित है। मूल रूप से, हमें यह जांचना होगा कि कीपैड पर कुछ भी टाइप किया जा रहा है, अगर टाइप किया गया है तो हमें पहचानना होगा क्या टाइप किया जा रहा है और फिर इसे एक वेरिएबल में बदल दें जब "=" दबाया जाता है तो हमें परिणाम की गणना करनी होती है और फिर अंत में इसे एलसीडी पर प्रदर्शित करना होता है। यह ठीक वैसा ही है जैसा लूप फ़ंक्शन के अंदर किया जाता है जैसा कि नीचे दिखाया गया है = kpd.getKey (); // दबाए गए कुंजी मान को एक charif (कुंजी! = NO_KEY) डिटेक्टबटन (); यदि (परिणाम == सत्य) कैलकुलेट रिसेट (); डिस्प्ले रिसेट (); प्रत्येक फ़ंक्शन के अंदर क्या होता है, यह टिप्पणी पंक्तियों का उपयोग करके समझाया गया है, नीचे दिए गए पूरे कोड के माध्यम से जाएं, यह समझने के लिए कि यह वास्तव में कैसे काम करता है, इसके साथ फील करें। यदि आपको किसी विशिष्ट लाइन पर कोई संदेह है, तो बेझिझक टिप्पणी अनुभाग या मंचों का उपयोग करें।

चरण 4:

चरण 5: Arduino कैलकुलेटर का कार्य

Arduino कैलकुलेटर का कार्य
Arduino कैलकुलेटर का कार्य

सर्किट आरेख के अनुसार कनेक्शन बनाएं और नीचे दिए गए कोड को अपलोड करें। यदि यह त्रुटि दिखाता है तो सुनिश्चित करें कि आपने ऊपर दिए गए निर्देश के अनुसार पुस्तकालय जोड़ा है। आप यह जांचने के लिए सिमुलेशन का भी प्रयास कर सकते हैं कि समस्या आपके हार्डवेयर के साथ है या नहीं। यदि सब कुछ वैसा ही किया जाता है जैसा कि माना जाता है, तो आपका हार्डवेयर नीचे कुछ इस तरह दिखाई देगा जिसमें एलसीडी इस Arduino कैलक्यूलेटर को 4x4 कीपैड का उपयोग करके प्रदर्शित करेगा क्योंकि यहां इस्तेमाल किए गए कीपैड पर उचित अंकन नहीं है, मैंने अक्षर को ऑपरेटर के रूप में माना है नीचे सूचीबद्ध कीपैड पर वर्ण "ए" के रूप में माना जाता है (+) "बी" घटाव (-) "सी" गुणा (*) "डी" डिवीजन (/) "*" साफ़ करें (सी) "#" बराबर (=) आप कर सकते हैं यह लिखने के लिए मार्कर का उपयोग करें कि प्रत्येक बटन वास्तव में क्या दर्शाता है। ऐसा करने के साथ, आप सीधे कैलकुलेटर का उपयोग करना शुरू कर सकते हैं। नंबर टाइप करें और दूसरी लाइन पर दिखाई देगा ऑपरेंड दबाएं और अपना दूसरा नंबर टाइप करें अंत में अपना परिणाम प्राप्त करने के लिए "#" कुंजी दबाएं। आप इस टचस्क्रीन आधारित Arduino कैलकुलेटर को बनाने का भी प्रयास कर सकते हैं।

चरण 6: कोड

/* * Arduino कीपैड कैलकुलेटर प्रोग्राम */#include // https://www.arduino.cc/en/Reference/LiquidCrystal#include // से कीपैड के लिए हैडर फ़ाइल https://github.com/ से एलसीडी के लिए हेडर फ़ाइल क्रिस--ए/कीपैडकॉन्स्ट बाइट ROWS = 4; // चार पंक्तियों कांस्ट बाइट COLS = 4; // तीन कॉलम // कीमैपचर कुंजियों को परिभाषित करें [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' सी'}, {'1', '2', '3', 'बी'}, {'*', '0', '#', 'ए'}};बाइट रोपिन्स [आरओडब्ल्यूएस] = { 0, 1, 2, 3};// कीपैड ROW0, ROW1, ROW2 और ROW3 को इन Arduino pins.byte colPins[COLS] = {4, 5, 6, 7} से कनेक्ट करें; // कीपैड COL0, COL1 और COL2 को इन Arduino पिन से कनेक्ट करें। कीपैड kpd = कीपैड (मेककेमैप (कुंजी), रोपिन, कॉलपिन, ROWS, COLS); // Keypadconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // पिन जिनसे LCD जुड़ा हैLiquidCrystal LCD(rs, en, d4, d5, d6, d7); लंबी संख्या 1, संख्या 2, संख्या; चार कुंजी, क्रिया; बूलियन परिणाम = झूठा; शून्य सेटअप () {lcd.begin (16, 2); // हम एक 16*2 LCD डिस्प्ले LCD.print ("DIY कैलकुलेटर") का उपयोग कर रहे हैं; // एक परिचय संदेश प्रदर्शित करें LCD.setCursor (0, 1); // कर्सर को कॉलम 0, लाइन 1 LCD.print ("-CircuitDigest"); पर सेट करें; // एक परिचय संदेश विलंब प्रदर्शित करें (2000); // जानकारी प्रदर्शित करने के लिए प्रदर्शन की प्रतीक्षा करें LCD.clear (); // फिर इसे साफ करें} शून्य लूप () {कुंजी = kpd.getKey (); // दबाए गए कुंजी मान को एक charif (कुंजी! = NO_KEY) डिटेक्टबटन (); यदि (परिणाम == सत्य) कैलकुलेट रिसेट (); डिस्प्ले रिसेट (); }void DetectButtons(){lcd.clear(); // फिर इसे साफ करें अगर (कुंजी == '*') // यदि रद्द करें बटन दबाया जाता है {Serial.println ("बटन रद्द करें"); संख्या = संख्या १ = संख्या २ = ०; परिणाम = झूठा;} अगर (कुंजी == '1') // यदि बटन 1 दबाया जाता है {Serial.println ("बटन 1"); अगर (संख्या == 0) संख्या = 1; अन्य संख्या = (संख्या * 10) + 1; // दो बार दबाया गया } अगर (कुंजी == '4') // यदि बटन 4 दबाया जाता है {Serial.println ("बटन 4"); अगर (संख्या == 0) संख्या = 4; अन्य संख्या = (संख्या * 10) + 4; // दो बार दबाया गया } अगर (कुंजी == '7') // यदि बटन 7 दबाया जाता है {Serial.println ("बटन 7"); अगर (संख्या == 0) संख्या = 7; अन्य संख्या = (संख्या * 10) + 7; // दो बार दबाया गया } अगर (कुंजी == '0') {Serial.println ("बटन 0"); // बटन 0 दबाया जाता है अगर (संख्या == 0) संख्या = 0; अन्य संख्या = (संख्या * 10) + 0; // दो बार दबाया गया } अगर (कुंजी == '2') // बटन 2 दबाया जाता है {Serial.println ("बटन 2"); अगर (संख्या == 0) संख्या = 2; अन्य संख्या = (संख्या * 10) + 2; // दो बार दबाया गया } अगर (कुंजी == '5') {Serial.println ("बटन 5"); अगर (संख्या == 0) संख्या = 5; अन्य संख्या = (संख्या * 10) + 5; // दो बार दबाया गया } अगर (कुंजी == '8') {Serial.println ("बटन 8"); अगर (संख्या == 0) संख्या = 8; अन्य संख्या = (संख्या * 10) + 8; // दो बार दबाया गया } अगर (कुंजी == '#') {Serial.println ("बटन समान"); संख्या २ = संख्या; परिणाम = सत्य; } अगर (कुंजी == '3') {Serial.println ("बटन 3"); अगर (संख्या == 0) संख्या = 3; अन्य संख्या = (संख्या * 10) + 3; // दो बार दबाया गया } अगर (कुंजी == '6') {Serial.println ("बटन 6"); अगर (संख्या == 0) संख्या = ६; अन्य संख्या = (संख्या * 10) + 6; // दो बार दबाया गया } अगर (कुंजी == '9') {Serial.println ("बटन 9"); अगर (संख्या == 0) संख्या = 9; अन्य संख्या = (संख्या * 10) + 9; // दो बार दबाया गया} अगर (कुंजी == 'ए' || कुंजी == 'बी' || कुंजी == 'सी' || कुंजी == 'डी') // कॉलम 4 पर बटन का पता लगाना {Num1 = संख्या; संख्या = 0; अगर (कुंजी == 'ए') {Serial.println ("जोड़"); क्रिया = '+';} अगर (कुंजी == 'बी') {Serial.println ("घटाव"); क्रिया = '-'; } अगर (कुंजी == 'सी') {Serial.println ("गुणा"); क्रिया = '*';} अगर (कुंजी == 'डी') {Serial.println ("Devesion"); क्रिया = '/';} देरी (100); }}void कैलकुलेट रिसेट(){ अगर (कार्रवाई=='+') नंबर = Num1+Num2; अगर (क्रिया == '-') संख्या = संख्या 1-संख्या 2; अगर (क्रिया == '*') संख्या = संख्या 1 * संख्या 2; अगर (क्रिया == '/') संख्या = संख्या 1/संख्या 2; }void DisplayResult(){lcd.setCursor(0, 0); // कर्सर को कॉलम 0, लाइन 1 LCD.print(Num1) पर सेट करें; एलसीडी.प्रिंट (कार्रवाई); LCD.प्रिंट (Num2); अगर (परिणाम == सच) {एलसीडी.प्रिंट ("="); LCD.print(Number);} // परिणाम प्रदर्शित करें LCD.setCursor(0, 1); // कर्सर को कॉलम 0, लाइन 1 LCD.print (नंबर) पर सेट करें; // परिणाम प्रदर्शित करें}

सिफारिश की: