جدول المحتويات:

Arduino UNO (إنشاء القوائم والوظائف): 4 خطوات
Arduino UNO (إنشاء القوائم والوظائف): 4 خطوات

فيديو: Arduino UNO (إنشاء القوائم والوظائف): 4 خطوات

فيديو: Arduino UNO (إنشاء القوائم والوظائف): 4 خطوات
فيديو: طريقة برمجة الأردوينو للمبتدئين | شرح برنامج Arduino IDE 2024, يوليو
Anonim
Arduino UNO (إنشاء القوائم والوظائف)
Arduino UNO (إنشاء القوائم والوظائف)
Arduino UNO (إنشاء القوائم والوظائف)
Arduino UNO (إنشاء القوائم والوظائف)

في هذا الدليل ، سنستكشف كيفية إنشاء القوائم ، وقراءة درجة الحرارة من مستشعر TC74A0 وعرض "القيم" (في هذه الحالة أرقام الهواتف المحمولة) بطريقة لا نهائية ، ولكنها تقتصر على ذاكرة اردوينو الموجودة على اللوحة.

سوف نستخدم

- المصفوفات

-شاشات الكريستال السائل

-لوحة المفاتيح

تم تضمين دليل المستخدم في الخطوة الأخيرة.

الخطوة 1: المكونات

اردوينو اونو

لوحة مفاتيح 4x4

· جهاز استشعار درجة الحرارة الرقمية TC74A0

· وحدة I2c 16x2 LCD

· شاشة عرض كريستالية سائلة 16 × 2

· أسلاك توصيل

· اللوح

· كمبيوتر شخصي

اردوينو IDE

· كابل نقل

الخطوة 2: الأسلاك المكونة

مستشعر TEMP وشاشة LCD متصلان على نفس الخط بـ SDA و SCL (A4 ، A5)

LCD (وحدة I2c)

o SDA إلى A5 على Arduino

o SCL إلى A4 على Arduino

o VCC إلى 5V على Arduino

o GND إلى GND على Arduino

· لوحة مفاتيح 4 × 4

o الدبوس 1-8 على لوحة المفاتيح متصل بالدبوس 9-2 على Arduino على التوالي

مستشعر درجة الحرارة TC74A0

o TC74A0 pin 2 إلى SDA على Arduino

o TC74A0 pin 3 to GND على Arduino

o TC74A0 pin 4 إلى SCL على Arduino

o TC74A0 pin 5 to 5V على Arduino

الخطوة 3: الكود

#include // يتضمن مكتبات عند التجميع

#يشمل

#يشمل

#define Password_Lenght 5

#define Command_Lenght 3

#define CellNumber 10

عدد المستخدمين = 0 ؛

عرض int = 0 ؛

عنوان int = 72 ؛ // tc74a0 العنوان

كثافة العمليات أنا = 0 ؛

مستخدم دولي

كثافة العمليات X = 0 ؛

int XY = 0 ؛

درجة الحرارة int

int tempPre = 0 ؛

char userNum [10] [10] = {{} ، {} ، {}} ؛

بيانات char [Password_Lenght] ؛

char Master [Password_Lenght] = "5466" ؛ //كلمه السر

char ExitData [Command_Lenght] ، //

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

شار MenuItem؛

شار CELLArrayA [10] ؛

شار CELLArrayB [10] ؛

شار CELLArrayC [10] ؛

const بايت ROWS = 4 ؛ // أربعة صفوف

البايت الثابت COLS = 4 ؛ // أربعة أعمدة

بايت rowPins [ROWS] = {5، 4، 3، 2} ؛

البايت colPins [COLS] = {9، 8، 7، 6} ؛

بايت data_count = 0 ، master_count = 0 ؛

bool Pass_is_good ؛

LiquidCrystal_I2C lcd (0x26، 16، 2) ؛

char hexaKeys [ROWS] [COLS] = // INITIATING KEYPAD

{

{'1'، '2'، '3'، 'A'}،

{'4'، '5'، '6'، 'B'}،

{'7'، '8'، '9'، 'C'}،

{'*'، '0'، '#'، 'D'}

};

لوحة المفاتيح المخصصة

الإعداد باطل()

{

Serial.begin (9600) ؛ // يؤدي هذا إلى إنشاء Serial Monitor

Wire.begin () ؛ // هذا يخلق كائن سلك

lcd.begin (16 ، 2) ؛

اضاءه خلفيه ال سى دى()؛

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 () ؛

String myString = "ARDUINO INSTRUCTABLE" ؛

lcd.setCursor (2 ، 2) ؛

lcd.print (myString) ؛

تأخير (2500) ؛

لـ (int scrollCounter = 0 ؛ scrollCounter <24 ؛ scrollCounter ++)

{

lcd.scrollDisplayLeft () ،

تأخير (300) ؛

}

lcd.clear () ؛

lcd.print ("أدخل كلمة المرور") ؛

}

حلقة فارغة()

{

مفتاح (عرض) // أين نحن في القائمة الرئيسية

{// هل قام المستخدم بالضغط على أ ، ب ، ج ، د

الحالة 0:

{

كلمه السر()؛

}

استراحة؛

حالة 1:

{

lcd.clear () ؛

lcd.setCursor (0 ، 1) ؛

lcd.print ("أ ب ج د") ؛

lcd.setCursor (0 ، 0) ؛

lcd.print ("القائمة الرئيسية") ؛

العرض = 2 ؛

تأخير (100) ؛

استراحة؛

}

الحالة 2:

{

char customKey = customKeypad.getKey () ؛

التبديل (مفتاح مخصص)

{

الحالة "أ":

{

Serial.println ("تم الضغط على A") ؛

StoreUser () ؛

استراحة؛

}

الحالة "ب":

{

Serial.println ("تم الضغط على B") ؛

إذا (المستخدمون == 0) {

lcd.clear () ؛

lcd.print ("لا يوجد مستخدمون محفوظون") ؛

تأخير (3000) ؛

lcd.clear () ؛

العرض = 1 ؛

استراحة؛

}

DisplayUsers () ، استراحة؛

}

الحالة "ج":

{

Serial.println ("تم الضغط على C") ؛ // مستعملة أثناء الاختبار

int ext = 0 ؛

بينما (! ext) {

شار ؛

temp = TempMenu () ؛

إذا (temp! = tempPre) {

lcd.clear () ؛

lcd.print ("درجة الحرارة") ؛

lcd.setCursor (0 ، 1) ؛

lcd.print (درجة الحرارة) ؛

lcd.print ("C") ؛

tempPre = درجة الحرارة ؛

تأخير (500) ؛

}

ch = customKeypad.getKey () ،

إذا (ch == '*') // الخروج من قائمة درجة الحرارة (إذا * تم الضغط عليه)

{

تحويلة = 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] = مفتاح مخصص ؛ // تخزين شار في مصفوفة البيانات

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) ؛ // تمت إضافة تأخير لمدة ثانية واحدة للتأكد من ظهور كلمة المرور بالكامل على الشاشة قبل مسحها.

lcd.clear () ؛

امسح البيانات()؛

lcd.clear () ؛

lcd.setCursor (0 ، 0) ؛

lcd.print ("أدخل كلمة المرور") ؛

}

}

int TempMenu ()

{

Wire.beginTransmission (العنوان) ؛

Wire.write (0) ؛

Wire.endTransmission () ؛

Wire.request From (العنوان ، 1) ؛

بينما (Wire.available () == 0) ؛

int c = Wire.read () ؛

عودة ج ؛

}

clearData () باطل

{

بينما (data_count! = 0)

{// يمكن استخدام هذا لأي حجم مصفوفة ،

البيانات [data_count--] = 0 ؛ // مجموعة واضحة للبيانات الجديدة

}

}

مستخدم المتجر باطل ()

{

int ext = 0 ؛

مستخدم int

شار ؛

بينما (! ext) {

lcd.clear () ؛

lcd.print ("أدخل المستخدم") ؛

المستخدم = المستخدمين + 1 ؛

lcd.print (مستخدم) ؛

كثافة العمليات س = 0 ؛

بينما (! x) {

لـ (int i = 0 ؛ i <10 ؛ i ++) {

ch = customKeypad.waitForKey () ؛

lcd.setCursor (ط ، 1) ؛

lcd.print (الفصل) ؛

userNum [مستخدم - 1] = ch ؛

}

تأخير (500) ؛

lcd.clear () ؛

lcd.print ("متابعة") ؛

lcd.setCursor (0 ، 1) ؛

lcd.print ("* نعم # لا") ؛

ch = customKeypad.waitForKey () ؛

إذا (ch == '*') {

س = 1 ؛

}

إذا (ch == '#') {

س = 1 ؛

تحويلة = 1 ؛

lcd.clear () ؛

العرض = 1 ؛

}

}

المستخدمون ++ ؛

}

}

DisplayUsers باطلة ()

{

lcd.clear () ؛

لـ (int i = 0 ؛ i <users؛ i ++) {

lcd.print ("المستخدم المحفوظ") ؛

lcd.print (أنا + 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 خيارات ممكنة للتنقل بين الوظائف المختلفة المتاحة.

أ - أدخل أرقام الهواتف المحمولة للمستخدم.

o أدخل 10 أرقام لحفظ المستخدم في النظام

o بعد إدخال 10 أرقام اضغط على "*" لإضافة المزيد من المستخدمين ، أو اضغط على "#" للخروج مرة أخرى إلى القائمة الرئيسية

ب - حفظ عرض المستخدمين

o سيقوم المستخدمون بالتمرير عبر الشاشة ، ويتم عرضها لمدة 3 ثوانٍ لكل منهم ، بمجرد عرض جميع المستخدمين ، سيتم إغلاق الصفحة والعودة إلى القائمة الرئيسية.

o إذا لم تتم إضافة مستخدمين في خيار القائمة أ ، فسيتم عرض "لا يوجد مستخدمون محفوظون".

· C - يعرض درجة الحرارة الحية

o اضغط على "*" للخروج مرة أخرى إلى القائمة الرئيسية

د - عرض نص قصير

o يعرض اسم المنشئ والموضوع الذي تم تجميعه من أجله مع التاريخ.

موصى به: