विषयसूची:

Arduino UNO (मेनू और फ़ंक्शंस बनाना): 4 चरण
Arduino UNO (मेनू और फ़ंक्शंस बनाना): 4 चरण

वीडियो: Arduino UNO (मेनू और फ़ंक्शंस बनाना): 4 चरण

वीडियो: Arduino UNO (मेनू और फ़ंक्शंस बनाना): 4 चरण
वीडियो: Amazing arduino project 2024, जुलाई
Anonim
Arduino UNO (मेनू और कार्य बनाना)
Arduino UNO (मेनू और कार्य बनाना)
Arduino UNO (मेनू और कार्य बनाना)
Arduino UNO (मेनू और कार्य बनाना)

इस निर्देशयोग्य में हम खोज करेंगे कि कैसे मेनू बनाएं, TC74A0 सेंसर से तापमान पढ़ें और "मान" (इस मामले में सेलफोन नंबर) को इस तरह से प्रदर्शित करें जो अनंत है, लेकिन arduino की ऑन बोर्ड मेमोरी तक सीमित है।

हम उपयोग करेंगे

-सरणी

-लिक्विड क्रिस्टल डिस्प्ले

-कीपैड

उपयोगकर्ता गाइड अंतिम चरण में शामिल है।

चरण 1: अवयव

Arduino Uno

· 4x4 कीपैड

· TC74A0 डिजिटल तापमान सेंसर

I2c 16x2 एलसीडी मॉड्यूल

· 16x2 लिक्विड क्रिस्टल डिस्प्ले

· जम्पर तार

· ब्रेड बोर्ड

· निजी कंप्यूटर

· अरुडिनो आईडीई

· स्थानांतरण केबल

चरण 2: घटक वायरिंग

एसडीए और एससीएल (ए 4, ए 5) के लिए एक ही लाइन पर जुड़े टेम्प सेंसर और एलसीडी

एलसीडी (I2c मॉड्यूल)

o Arduino पर SDA से A5

o Arduino पर SCL से A4 तक

o Arduino पर VCC से 5V तक

o Arduino पर GND से GND

· 4 x 4 कीपैड

o कीपैड पर पिन 1 - 8 को क्रमशः Arduino पर पिन 9 - 2 से जोड़ा जाता है

TC74A0 अस्थायी सेंसर

o Arduino पर TC74A0 पिन 2 से SDA तक

o Arduino पर TC74A0 पिन 3 से GND तक

o Arduino पर TC74A0 पिन 4 से SCL तक

o Arduino पर TC74A0 पिन 5 से 5V

चरण 3: कोड

#शामिल करें // संकलन करते समय पुस्तकालय शामिल करें

#शामिल

#शामिल

#पासवर्ड परिभाषित करें_लंबाई 5

#define Command_Lenght 3

# सेलनंबर 10 परिभाषित करें

इंट उपयोगकर्ता = 0;

इंट डिस्प्ले = 0;

इंट एड्रेस = 72; //tc74a0 पता

इंट मैं = 0;

इंट यूजर;

इंट एक्स = 0;

इंट एक्सवाई = 0;

अंतर अस्थायी;

इंट टेम्पप्रे = 0;

चार उपयोगकर्ता संख्या [१०] [१०] = {{}, {}, {}};

चार डेटा [पासवर्ड_लंबाई];

चार मास्टर [पासवर्ड_लेंथ] = "५४६६"; //पासवर्ड

चार ExitData [Command_Lenght]; //

चार मास्टर 1 [कमांड_लेंथ] = "**";//

चार मेनू आइटम;

चार सेलअरेए [१०];

चार सेलअरेबी [१०];

चार सेलअरेसी [१०];

कॉन्स्ट बाइट ROWS = 4; // चार पंक्तियाँ

कॉन्स्ट बाइट COLS = 4; // चार कॉलम

बाइट रोपिन्स [पंक्तियाँ] = {५, ४, ३, २};

बाइट कॉलपिन्स [COLS] = {9, 8, 7, 6};

बाइट डेटा_काउंट = 0, मास्टर_काउंट = 0;

बूल पास_इस_गुड;

लिक्विड क्रिस्टल_आई2सी एलसीडी (0x26, 16, 2);

चार हेक्साकीज़ [पंक्तियाँ] [COLS] = // कीपैड शुरू करना

{

{'1', '2', '3', 'ए'}, {'4', '5', '6', 'बी'}, {'7', '8', '9', 'सी'}, {'*', '0', '#', 'डी'}

};

कीपैड कस्टमकीपैड = कीपैड (मेककेमैप (हेक्साके), रोपिन, कॉलपिन, रो, कोल्स);

व्यर्थ व्यवस्था()

{

सीरियल.बेगिन (९६००); // यह सीरियल मॉनिटर बनाता है

वायर.बेगिन (); // यह एक वायर ऑब्जेक्ट बनाता है

LCD.begin (16, 2);

एलसीडी प्रकाश();

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("कृपया 3 प्रतीक्षा करें"); // लोडिंग स्क्रीन

देरी (1000);

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("कृपया 2 प्रतीक्षा करें");

देरी (1000);

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("कृपया 1 प्रतीक्षा करें");

देरी (300);

एलसीडी.क्लियर ();

स्ट्रिंग myString = "ARDUINO INSTRUCTABLE";

LCD.setCursor(2, 2);

एलसीडी.प्रिंट (माईस्ट्रिंग);

देरी (2500);

के लिए (इंट स्क्रॉल काउंटर = 0; स्क्रॉल काउंटर <24; स्क्रॉल काउंटर ++)

{

LCD.scrollDisplayLeft ();

देरी (300);

}

एलसीडी.क्लियर ();

LCD.print ("पासवर्ड दर्ज करें");

}

शून्य लूप ()

{

स्विच (डिस्प्ले) // जहां हम मुख्य मेनू में हैं

{// क्या उपयोगकर्ता ने ए, बी, सी, डी दबाया है?

मामला 0:

{

पासवर्ड();

}

टूटना;

मामला एक:

{

एलसीडी.क्लियर ();

LCD.setCursor(0, 1);

LCD.print ("ए बी सी डी");

LCD.setCursor(0, 0);

LCD.print ("मुख्य मेनू");

प्रदर्शन = २;

देरी (100);

टूटना;

}

मामला 2:

{

चार कस्टमकी = customKeypad.getKey ();

स्विच (कस्टमकी)

{

मामला 'ए':

{

Serial.println ("ए दबाया गया था");

स्टोर यूज़र ();

टूटना;

}

मामला 'बी':

{

Serial.println ("बी दबाया गया");

अगर (उपयोगकर्ता == 0) {

एलसीडी.क्लियर ();

LCD.print ("कोई सहेजे गए उपयोगकर्ता नहीं");

देरी (3000);

एलसीडी.क्लियर ();

प्रदर्शन = 1;

टूटना;

}

डिस्प्ले यूज़र (); टूटना;

}

मामला 'सी':

{

Serial.println ("सी दबाया गया था"); // परीक्षण के दौरान प्रयुक्त

इंट एक्सट = 0;

जबकि (! एक्सट) {

चार च;

अस्थायी = TempMenu ();

अगर (अस्थायी! = अस्थायी) {

एलसीडी.क्लियर ();

LCD.print ("तापमान");

LCD.setCursor(0, 1);

एलसीडी.प्रिंट (अस्थायी);

एलसीडी.प्रिंट ("सी");

अस्थायी = अस्थायी;

देरी (500);

}

ch = customKeypad.getKey ();

अगर (ch == '*') // तापमान मेनू से बाहर निकलें (यदि * दबाया गया)

{

एक्सट = 1;

एलसीडी.क्लियर ();

प्रदर्शन = 1;

}

}

टूटना;

टेम्पमेनू ();

टूटना;

}

मामला 'डी':

{

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

एलसीडी.प्रिंट ("एनयूए पीआरएसी");

LCD.setCursor(0, 1);

LCD.print ("जेबी शूमैन");

देरी (3000);

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("मई 2019");

LCD.setCursor(0, 1);

LCD.print ("CC OOSTHUIZEN");

देरी (3000);

एलसीडी.क्लियर ();

प्रदर्शन = 1;

}

}

}

}

}

// मूल्यों या प्रक्रियाओं को कॉल करने के लिए कस्टम कार्य

शून्य पासवर्ड ()

{

चार कस्टमकी = customKeypad.getKey ();

अगर (कस्टमकी) // सुनिश्चित करता है कि एक कुंजी वास्तव में दबाई गई है, (customKey!= NO_KEY) के बराबर

{

डेटा [डेटा_काउंट] = कस्टमकी; // चार को डेटा ऐरे में स्टोर करें

LCD.setCursor (data_count, 1); // प्रत्येक नए वर्ण को दिखाने के लिए कर्सर ले जाएँ

एलसीडी.प्रिंट ("*"); // उक्त कर्सर पर चार प्रिंट करें

डेटा_काउंट ++; // नए चार को स्टोर करने के लिए डेटा ऐरे को 1 से बढ़ाएं, दर्ज किए गए वर्णों की संख्या पर भी नज़र रखें

}

if(data_count == Password_Lenght-1) // यदि सरणी अनुक्रमणिका अपेक्षित वर्णों की संख्या के बराबर है, तो डेटा की तुलना मास्टर से करें

{

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("पासवर्ड है");

if(!strcmp(Data, Master)) // बराबर (strcmp(Data, Master) == 0)

{

LCD.print ("अच्छा");

एलसीडी.क्लियर ();

प्रदर्शन = 1;

}

अन्यथा

LCD.print ("खराब");

देरी (1000); // 1 सेकंड की देरी को जोड़ा गया ताकि यह सुनिश्चित हो सके कि पासवर्ड साफ़ होने से पहले स्क्रीन पर पूरी तरह से दिखाया गया है।

एलसीडी.क्लियर ();

शुद्ध आंकड़े();

एलसीडी.क्लियर ();

LCD.setCursor(0, 0);

LCD.print ("पासवर्ड दर्ज करें");

}

}

इंट टेम्पमेनू ()

{

Wire.beginTransmission (पता);

वायर.राइट (0);

वायर.एंडट्रांसमिशन ();

Wire.requestFrom (पता, 1);

जबकि (वायर.उपलब्ध () == 0);

इंट सी = वायर.रीड ();

वापसी ग;

}

शून्य स्पष्ट डेटा ()

{

जबकि (डेटा_काउंट! = 0)

{// इसका उपयोग किसी भी सरणी आकार के लिए किया जा सकता है, डेटा [डेटा_काउंट--] = 0; // नए डेटा के लिए स्पष्ट सरणी

}

}

शून्य स्टोर यूज़र ()

{

इंट एक्सट = 0;

इंट यूजर;

चार च;

जबकि (! एक्सट) {

एलसीडी.क्लियर ();

LCD.print ("उपयोगकर्ता दर्ज करें");

उपयोगकर्ता = उपयोगकर्ता + 1;

एलसीडी.प्रिंट (उपयोगकर्ता);

इंट एक्स = 0;

जबकि (!x) {

के लिए (int i = 0; i <10; i++) {

ch = customKeypad.waitForKey ();

LCD.setCursor (i, 1);

एलसीडी.प्रिंट (सीएच);

उपयोगकर्ता संख्या [उपयोगकर्ता - 1] = ch;

}

देरी (500);

एलसीडी.क्लियर ();

LCD.print ("जारी रखें");

LCD.setCursor(0, 1);

LCD.print ("* हाँ # नहीं");

ch = customKeypad.waitForKey ();

अगर (सी == '*') {

एक्स = 1;

}

अगर (सी == '#') {

एक्स = 1;

एक्सट = 1;

एलसीडी.क्लियर ();

प्रदर्शन = 1;

}

}

उपयोगकर्ता++;

}

}

शून्य प्रदर्शन उपयोगकर्ता ()

{

एलसीडी.क्लियर ();

के लिए (int i = 0; i <उपयोगकर्ता; i++) {

LCD.print ("सहेजे गए उपयोगकर्ता");

एलसीडी.प्रिंट (i + 1);

के लिए (इंट यू = 0; यू <10; यू ++) {

LCD.setCursor (यू, 1);

एलसीडी.प्रिंट (उपयोगकर्ता संख्या [यू]);

}

देरी (2000);

एलसीडी.क्लियर ();

प्रदर्शन = 1;

}

}

चरण 4: उपयोगकर्ता गाइड

1. प्रोजेक्ट पर स्विच करने पर, एक लोडिंग या वेलकम स्क्रीन दिखाई देगी।

2. एक "पासवर्ड दर्ज करें" स्क्रीन दिखाई देगी, यह स्क्रीन आपको 4 अक्षर, अक्षर या संख्या दर्ज करने की अनुमति देती है, सही पासवर्ड है: 5466, यह आपको मुख्य मेनू तक पहुंच प्रदान करेगा।

3. सही पासवर्ड दर्ज करने पर, विभिन्न उपलब्ध कार्यों को नेविगेट करने के लिए मुख्य मेनू 4 संभावित विकल्पों के साथ दिखाई देगा।

· ए - उपयोगकर्ता सेल फोन नंबर दर्ज करें।

o उपयोगकर्ता को सिस्टम में सहेजने के लिए १० अंक दर्ज करें

o १० अंक दर्ज करने के बाद अधिक उपयोगकर्ता जोड़ने के लिए "*" दबाएं, या मुख्य मेनू पर वापस जाने के लिए "#" दबाएं

· बी - सहेजे गए उपयोगकर्ताओं को प्रदर्शित करें

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

o यदि मेनू विकल्प A में कोई उपयोगकर्ता नहीं जोड़ा गया था, तो यह "कोई सहेजे गए उपयोगकर्ता नहीं" प्रदर्शित करेगा।

· सी - लाइव तापमान प्रदर्शित करता है

o मुख्य मेनू पर वापस जाने के लिए "*" दबाएं

· डी - लघु पाठ प्रदर्शित करें

o निर्माता का नाम और उस विषय को प्रदर्शित करता है जिसके लिए इसे एक तिथि के साथ संकलित किया गया था।

सिफारिश की: