সুচিপত্র:

Arduino UNO (মেনু এবং ফাংশন তৈরি করা): 4 টি ধাপ
Arduino UNO (মেনু এবং ফাংশন তৈরি করা): 4 টি ধাপ

ভিডিও: Arduino UNO (মেনু এবং ফাংশন তৈরি করা): 4 টি ধাপ

ভিডিও: Arduino UNO (মেনু এবং ফাংশন তৈরি করা): 4 টি ধাপ
ভিডিও: Pro Micro ATMEGA32U4 Arduino Pins and 5V, 3.3V Explained 2024, জুলাই
Anonim
আরডুইনো ইউএনও (মেনু এবং ফাংশন তৈরি করা)
আরডুইনো ইউএনও (মেনু এবং ফাংশন তৈরি করা)
আরডুইনো ইউএনও (মেনু এবং ফাংশন তৈরি করা)
আরডুইনো ইউএনও (মেনু এবং ফাংশন তৈরি করা)

এই নির্দেশে আমরা কিভাবে মেনু তৈরি করতে হয় তা অনুসন্ধান করব, TC74A0 সেন্সর থেকে তাপমাত্রা পড়ব এবং "মান" (এই ক্ষেত্রে সেলফোন নম্বরগুলি) এমনভাবে প্রদর্শন করব যা অসীম, কিন্তু আরডুইনো বোর্ড মেমোরিতে সীমাবদ্ধ।

আমরা ব্যবহার করব

-অ্যারে

-তরল স্ফটিক প্রদর্শন

-কেপ্যাড

চূড়ান্ত ধাপে ব্যবহারকারী নির্দেশিকা অন্তর্ভুক্ত।

ধাপ 1: উপাদান

আরডুইনো উনো

· 4x4 কীপ্যাড

· TC74A0 ডিজিটাল তাপমাত্রা সেন্সর

· I2c 16x2 LCD মডিউল

· 16x2 তরল স্ফটিক প্রদর্শন

Um জাম্পার তার

· ব্রেডবোর্ড

· ব্যক্তিগত কম্পিউটার

· Arduino IDE

· স্থানান্তর তারের

ধাপ 2: কম্পোনেন্ট ওয়্যারিং

টেম্প সেন্সর এবং এলসিডি এসডিএ এবং এসসিএল (A4, A5) এর একই লাইনে সংযুক্ত

LCD (I2c মডিউল)

Arduino এ SDA থেকে A5

o আরডুইনোতে এসিএল থেকে এ 4

Arduino এ VCC থেকে 5V

o Arduino এ GND থেকে GND

X 4 x 4 কীপ্যাড

কিপ্যাডে পিন 1 - 8 যথাক্রমে আরডুইনোতে 9 - 2 পিনের সাথে সংযুক্ত

TC74A0 টেম্প সেন্সর

o TC74A0 পিন 2 আরডুইনোতে এসডিএ -তে

o TC74A0 পিন 3 GND থেকে Arduino তে

o TC74A0 পিন 4 আরডুইনোতে এসসিএল

Arduino তে TC74A0 পিন 5 থেকে 5V

ধাপ 3: কোড

#অন্তর্ভুক্ত // সংকলনের সময় লাইব্রেরি অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#পাসওয়ার্ড_লাইন 5 নির্ধারণ করুন

#কমান্ড_লেংট নির্ধারণ করুন 3

#সেল নম্বর 10 নির্ধারণ করুন

int ব্যবহারকারীরা = 0;

int প্রদর্শন = 0;

int ঠিকানা = 72; // tc74a0 ঠিকানা

int I = 0;

int ব্যবহারকারী;

int X = 0;

int XY = 0;

int temp;

int tempPre = 0;

char userNum [10] [10] = {{}, {}, {}};

char data [Password_Lenght];

char Master [Password_Lenght] = "5466"; // পাসওয়ার্ড

char ExitData [Command_Lenght]; //

char Master1 [Command_Lenght] = "**"; //

চর মেনু আইটেম;

C CELLArrayA [10];

C CELLArrayB [10];

C CELLArrayC [10];

const বাইট ROWS = 4; // চার সারি

const বাইট COLS = 4; // চারটি কলাম

বাইট rowPins [ROWS] = {5, 4, 3, 2};

বাইট কলপিনস [COLS] = {9, 8, 7, 6};

বাইট data_count = 0, master_count = 0;

বুল পাস_ইস_গুড;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // প্রাথমিক কীপ্যাড

{

{'1', '2', '3', 'এ'}, {'4', '5', '6', 'বি'}, {'7', '8', '9', 'সি'}, {'*', '0', '#', 'D'}

};

Keypad customKeypad = Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

অকার্যকর সেটআপ()

{

Serial.begin (9600); // এটি সিরিয়াল মনিটর তৈরি করে

Wire.begin (); // এটি একটি ওয়্যার বস্তু তৈরি করে

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("দয়া করে অপেক্ষা করুন 3"); // লোডিং স্ক্রিন

বিলম্ব (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("অনুগ্রহ করে অপেক্ষা করুন 2");

বিলম্ব (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("অনুগ্রহ করে অপেক্ষা করুন 1");

বিলম্ব (300);

lcd.clear ();

স্ট্রিং myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

বিলম্ব (2500);

জন্য (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

বিলম্ব (300);

}

lcd.clear ();

lcd.print ("পাসওয়ার্ড লিখুন");

}

অকার্যকর লুপ ()

{

সুইচ (ডিসপ্লে) // যেখানে আমরা প্রধান মেনুতে আছি

{// ব্যবহারকারীর প্রেস A, B, C, D

কেস 0:

{

পাসওয়ার্ড ();

}

বিরতি;

মামলা 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

lcd.print ("A B C D");

lcd.setCursor (0, 0);

lcd.print ("প্রধান মেনু");

প্রদর্শন = 2;

বিলম্ব (100);

বিরতি;

}

কেস 2:

{

char customKey = customKeypad.getKey ();

সুইচ (customKey)

{

কেস 'এ':

{

Serial.println ("A চাপানো হয়েছিল");

স্টোর ইউজার ();

বিরতি;

}

কেস 'বি':

{

Serial.println ("B চাপানো হয়েছিল");

যদি (ব্যবহারকারী == 0) {

lcd.clear ();

lcd.print ("ব্যবহারকারীদের সংরক্ষণ করা হয়নি");

বিলম্ব (3000);

lcd.clear ();

প্রদর্শন = 1;

বিরতি;

}

DisplayUsers (); বিরতি;

}

কেস 'সি':

{

Serial.println ("C চাপানো হয়েছিল"); // পরীক্ষা চলাকালীন ব্যবহৃত

int ext = 0;

while (! ext) {

char ch;

temp = TempMenu ();

যদি (temp! = tempPre) {

lcd.clear ();

lcd.print ("তাপমাত্রা");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

বিলম্ব (500);

}

ch = customKeypad.getKey ();

if (ch == ' *') // টেম্পারেচার মেনু থেকে বেরিয়ে আসুন (যদি * প্রেস করা হয়)

{

ext = 1;

lcd.clear ();

প্রদর্শন = 1;

}

}

বিরতি;

TempMenu ();

বিরতি;

}

কেস 'ডি':

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SCHOEMAN");

বিলম্ব (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("মে 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

বিলম্ব (3000);

lcd.clear ();

প্রদর্শন = 1;

}

}

}

}

}

// মূল্য বা পদ্ধতিগুলি কল করার জন্য কাস্টম ফাংশন

অকার্যকর পাসওয়ার্ড ()

{

char customKey = customKeypad.getKey ();

যদি (customKey) // নিশ্চিত করে যে একটি কী আসলে চাপা আছে, সমান (customKey! = NO_KEY)

{

ডেটা [data_count] = customKey; // ডেটা অ্যারেতে চর সংরক্ষণ করুন

lcd.setCursor (data_count, 1); // প্রতিটি নতুন চর দেখানোর জন্য কার্সার সরান

lcd.print ("*"); // কার্সারে প্রিন্ট চার

data_count ++; // নতুন অক্ষর সঞ্চয় করতে 1 দ্বারা বৃদ্ধি ডেটা অ্যারে, প্রবেশ করা অক্ষরের সংখ্যাও ট্র্যাক রাখুন

}

যদি (data_count == Password_Lenght-1) // যদি অ্যারে ইনডেক্স প্রত্যাশিত অক্ষরের সংখ্যার সমান হয়, তাহলে ডেটার সাথে মাস্টারের তুলনা করুন

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("পাসওয়ার্ড হল");

যদি (! strcmp (ডেটা, মাস্টার)) // সমান (strcmp (ডেটা, মাস্টার) == 0)

{

lcd.print ("ভালো");

lcd.clear ();

প্রদর্শন = 1;

}

অন্য

lcd.print ("খারাপ");

বিলম্ব (1000); // পাসওয়ার্ডটি পরিষ্কার হওয়ার আগে সম্পূর্ণরূপে স্ক্রিনে দেখানো হয়েছে তা নিশ্চিত করতে 1 সেকেন্ড বিলম্ব যোগ করা হয়েছে।

lcd.clear ();

উপাত্ত মুছে ফেল();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("পাসওয়ার্ড লিখুন");

}

}

int TempMenu ()

{

Wire.beginTransmission (ঠিকানা);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (ঠিকানা, 1);

যখন (Wire.available () == 0);

int c = Wire.read ();

প্রত্যাবর্তন গ;

}

অকার্যকর clearData ()

{

যখন (data_count! = 0)

{// এটি যেকোনো অ্যারের আকারের জন্য ব্যবহার করা যেতে পারে, ডেটা [data_count--] = 0; // নতুন ডেটার জন্য পরিষ্কার অ্যারে

}

}

অকার্যকর StoreUser ()

{

int ext = 0;

int ব্যবহারকারী;

char ch;

while (! ext) {

lcd.clear ();

lcd.print ("ব্যবহারকারী লিখুন");

ব্যবহারকারী = ব্যবহারকারী + 1;

lcd.print (ব্যবহারকারী);

int x = 0;

যখন (! x) {

জন্য (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [user - 1] = ch;

}

বিলম্ব (500);

lcd.clear ();

lcd.print ("চালিয়ে যান");

lcd.setCursor (0, 1);

lcd.print ("* হ্যাঁ # না");

ch = customKeypad.waitForKey ();

যদি (ch == '*') {

x = 1;

}

যদি (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

প্রদর্শন = 1;

}

}

ব্যবহারকারী ++;

}

}

অকার্যকর DisplayUsers ()

{

lcd.clear ();

জন্য (int i = 0; i <users; i ++) {

lcd.print ("সংরক্ষিত ব্যবহারকারী");

lcd.print (i + 1);

জন্য (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

বিলম্ব (2000);

lcd.clear ();

প্রদর্শন = 1;

}

}

ধাপ 4: ব্যবহারকারী নির্দেশিকা

1. প্রকল্পটি চালু করার পরে, একটি লোডিং বা স্বাগত পর্দা উপস্থিত হবে।

2. একটি "পাসওয়ার্ড লিখুন" স্ক্রিন প্রদর্শিত হবে, এই স্ক্রিনটি আপনাকে 4 টি অক্ষর, অক্ষর বা সংখ্যা লিখতে দেয়, সঠিক পাসওয়ার্ড হল: 5466, এটি আপনাকে প্রধান মেনুতে অ্যাক্সেস দেবে।

3. সঠিক পাসওয়ার্ড প্রবেশ করার পর, প্রধান মেনু বিভিন্ন উপলব্ধ ফাংশন নেভিগেট করার জন্য 4 টি সম্ভাব্য বিকল্প সহ উপস্থিত হবে।

· A - ব্যবহারকারীর সেল ফোন নম্বর লিখুন।

ব্যবহারকারীকে সিস্টেমে সংরক্ষণ করতে 10 টি সংখ্যা লিখুন

10 নম্বর প্রবেশ করার পর আরো ব্যবহারকারী যোগ করতে " *" টিপুন, অথবা মূল মেনুতে ফিরে যাওয়ার জন্য "#" টিপুন

· বি - সংরক্ষিত ব্যবহারকারীদের প্রদর্শন করুন

o ব্যবহারকারীরা স্ক্রিন পেরিয়ে স্ক্রল করবে, সেগুলি প্রতিটি 3 সেকেন্ডের জন্য প্রদর্শিত হবে, যত তাড়াতাড়ি সমস্ত ব্যবহারকারী প্রদর্শিত হবে পৃষ্ঠাটি বন্ধ হয়ে যাবে এবং মূল মেনুতে ফিরে আসবে।

o যদি মেনু বিকল্প A তে কোন ব্যবহারকারী যুক্ত না করা হয়, তাহলে এটি "কোন সংরক্ষিত ব্যবহারকারী" প্রদর্শন করবে।

· C - জীবন্ত তাপমাত্রা প্রদর্শন করে

প্রধান মেনুতে ফিরে যাওয়ার জন্য " *" টিপুন

· D - সংক্ষিপ্ত পাঠ্য প্রদর্শন করুন

o স্রষ্টার নাম এবং যে বিষয়ের জন্য এটি একটি তারিখ দিয়ে সংকলিত হয়েছিল তা প্রদর্শন করে।

প্রস্তাবিত: