Isi kandungan:

Arduino UNO (membuat Menu dan Fungsi): 4 Langkah
Arduino UNO (membuat Menu dan Fungsi): 4 Langkah

Video: Arduino UNO (membuat Menu dan Fungsi): 4 Langkah

Video: Arduino UNO (membuat Menu dan Fungsi): 4 Langkah
Video: Belajar Arduino #4 - Pengenalan Bahasa Pemrograman Arduino 2024, Julai
Anonim
Arduino UNO (membuat Menu dan Fungsi)
Arduino UNO (membuat Menu dan Fungsi)
Arduino UNO (membuat Menu dan Fungsi)
Arduino UNO (membuat Menu dan Fungsi)

Dalam instruksional ini, kami akan meneroka cara membuat menu, membaca suhu dari sensor TC74A0 dan memaparkan "nilai" (dalam hal ini nombor telefon bimbit) dengan cara yang tidak terbatas, tetapi terhad pada memori arduino di papan.

Kami akan menggunakan

-Arrays

- Paparan kristal cecair

-Papan Kekunci

Panduan pengguna disertakan dalam langkah terakhir.

Langkah 1: Komponen

Arduino Uno

· Pad kekunci 4x4

· Sensor suhu digital TC74A0

· Modul LCD I2c 16x2

· Paparan kristal cecair 16x2

· Kabel pelompat

· Papan roti

· Komputer peribadi

· Arduino IDE

· Pindahkan kabel

Langkah 2: Pendawaian Komponen

SENSOR TEMP DAN LCD DITERUSKAN DI LINE YANG SAMA KE SDA DAN SCL (A4, A5)

LCD (Modul I2c)

o SDA hingga A5 di Arduino

o SCL ke A4 di Arduino

o VCC hingga 5V di Arduino

o GND ke GND di Arduino

· Pad Kekunci 4 x 4

o Pin 1 - 8 pada Pad Kekunci masing-masing disambungkan ke pin 9 - 2 pada Arduino

Sensor temp TC74A0

o TC74A0 pin 2 ke SDA di Arduino

o TC74A0 pin 3 hingga GND di Arduino

o TC74A0 pin 4 ke SCL di Arduino

o TC74A0 pin 5 hingga 5V pada Arduino

Langkah 3: Kod

#include // Termasuk perpustakaan ketika menyusun

#sertakan

#sertakan

#tentukan Kata Laluan_Lenght 5

#tentukan Perintah_Lenght 3

#tentukanNombor Sel 10

pengguna int = 0;

int Paparan = 0;

alamat int = 72; // tc74a0 ALAMAT

int I = 0;

int PENGGUNA;

int X = 0;

int XY = 0;

int suhu;

int tempPre = 0;

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

Data char [Kata Laluan_Lenght];

char Master [Kata Laluan_Lenght] = "5466"; // KATA LALUAN

char ExitData [Command_Lenght]; //

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

char MenuItem;

char CELLArrayA [10];

char CELLArrayB [10];

char CELLArrayC [10];

const byte ROWS = 4; // empat baris

const byte COLS = 4; // empat lajur

byte rowPins [ROWS] = {5, 4, 3, 2};

byte colPins [COLS] = {9, 8, 7, 6};

bait data_count = 0, master_count = 0;

bool Pass_is_good;

LiquidCrystal_I2C lcd (0x26, 16, 2);

char hexaKeys [ROWS] [COLS] = // MEMULAKAN KUNCI

{

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}

};

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

persediaan tidak sah ()

{

Serial.begin (9600); // ini mewujudkan Monitor Bersiri

Wire.begin (); // ini membuat objek Wire

lcd.begin (16, 2);

lcd.backlight ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Sila Tunggu 3"); // SKRIN LOADING

kelewatan (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Sila Tunggu 2");

kelewatan (1000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Sila Tunggu 1");

kelewatan (300);

lcd.clear ();

Rentetan myString = "ARDUINO INSTRUCTABLE";

lcd.setCursor (2, 2);

lcd.print (myString);

kelewatan (2500);

untuk (int scrollCounter = 0; scrollCounter <24; scrollCounter ++)

{

lcd.scrollDisplayLeft ();

kelewatan (300);

}

lcd.clear ();

lcd.print ("Masukkan Kata Laluan");

}

gelung kosong ()

{

suis (Paparan) // DI MANU DALAM MENU UTAMA KAMI

{// ADAKAH TEKAN PENGGUNA A, B, C, D

kes 0:

{

Kata Laluan ();

}

rehat;

kes 1:

{

lcd.clear ();

lcd.setCursor (0, 1);

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

lcd.setCursor (0, 0);

lcd.print ("Menu Utama");

Paparan = 2;

kelewatan (100);

rehat;

}

kes 2:

{

char customKey = customKeypad.getKey ();

tukar (customKey)

{

kes 'A':

{

Serial.println ("A ditekan");

StoreUser ();

rehat;

}

kes 'B':

{

Serial.println ("B ditekan");

jika (pengguna == 0) {

lcd.clear ();

lcd.print ("TIADA PENGGUNA YANG SELAMAT");

kelewatan (3000);

lcd.clear ();

Paparan = 1;

rehat;

}

DisplayUsers (); rehat;

}

kes 'C':

{

Serial.println ("C ditekan"); // UJIAN SELAMA DIGUNAKAN

int ext = 0;

semasa (! ext) {

char ch;

temp = TempMenu ();

jika (temp! = tempPre) {

lcd.clear ();

lcd.print ("Suhu");

lcd.setCursor (0, 1);

lcd.print (temp);

lcd.print ("C");

tempPre = temp;

kelewatan (500);

}

ch = customKeypad.getKey ();

if (ch == '*') // MENU KELUAR MENU (jika * TEKAN)

{

ext = 1;

lcd.clear ();

Paparan = 1;

}

}

rehat;

TempMenu ();

rehat;

}

kes 'D':

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("NUA PRAC");

lcd.setCursor (0, 1);

lcd.print ("JB SEKOLAH");

kelewatan (3000);

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("MEI 2019");

lcd.setCursor (0, 1);

lcd.print ("CC OOSTHUIZEN");

kelewatan (3000);

lcd.clear ();

Paparan = 1;

}

}

}

}

}

// FUNGSI KASTAM UNTUK MENGHILANG NILAI ATAU TATACARA

batal Kata Laluan ()

{

char customKey = customKeypad.getKey ();

jika (customKey) // memastikan kekunci sebenarnya ditekan, sama dengan (customKey! = NO_KEY)

{

Data [data_count] = customKey; // simpan char ke dalam array data

lcd.setCursor (data_count, 1); // gerakkan kursor untuk menunjukkan setiap char baru

lcd.print ("*"); // cetak char pada kursor tersebut

data_kiraan ++; // tingkatkan data array sebanyak 1 untuk menyimpan char baru, juga perhatikan jumlah karakter yang dimasukkan

}

if (data_count == Password_Lenght-1) // jika indeks array sama dengan bilangan karakter yang diharapkan, bandingkan data untuk dikuasai

{

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Kata Laluan adalah");

if (! strcmp (Data, Master)) // sama dengan (strcmp (Data, Master) == 0)

{

lcd.print ("Bagus");

lcd.clear ();

Paparan = 1;

}

yang lain

lcd.print ("Buruk");

kelewatan (1000); // ditambahkan kelewatan 1 saat untuk memastikan kata laluan ditunjukkan sepenuhnya di skrin sebelum dibersihkan.

lcd.clear ();

jelasData ();

lcd.clear ();

lcd.setCursor (0, 0);

lcd.print ("Masukkan Kata Laluan");

}

}

int TempMenu ()

{

Wire.beginTransmission (alamat);

Wire.write (0);

Wire.endTransmission ();

Wire.requestFrom (alamat, 1);

sementara (Wire.available () == 0);

int c = Wire.read ();

pulangan c;

}

kosongkan Data ()

{

sementara (data_kiraan! = 0)

{// Ini dapat digunakan untuk ukuran array apa pun, Data [data_count--] = 0; // susun jelas untuk data baru

}

}

batal StoreUser ()

{

int ext = 0;

pengguna int;

char ch;

semasa (! ext) {

lcd.clear ();

lcd.print ("Masukkan Pengguna");

pengguna = pengguna + 1;

lcd.print (pengguna);

int x = 0;

semasa (! x) {

untuk (int i = 0; i <10; i ++) {

ch = customKeypad.waitForKey ();

lcd.setCursor (i, 1);

lcd.print (ch);

userNum [pengguna - 1] = ch;

}

kelewatan (500);

lcd.clear ();

lcd.print ("Teruskan");

lcd.setCursor (0, 1);

lcd.print ("* ya # tidak");

ch = customKeypad.waitForKey ();

jika (ch == '*') {

x = 1;

}

jika (ch == '#') {

x = 1;

ext = 1;

lcd.clear ();

Paparan = 1;

}

}

pengguna ++;

}

}

kosongkan DisplayUsers ()

{

lcd.clear ();

untuk (int i = 0; i <pengguna; i ++) {

lcd.print ("Pengguna Disimpan");

lcd.print (i + 1);

untuk (int u = 0; u <10; u ++) {

lcd.setCursor (u, 1);

lcd.print (userNum [u]);

}

kelewatan (2000);

lcd.clear ();

Paparan = 1;

}

}

Langkah 4: PANDUAN PENGGUNA

1. Setelah menghidupkan projek, skrin pemuatan atau sambutan akan muncul.

2. Layar "Masukkan Kata Laluan" akan muncul, layar ini memungkinkan Anda memasukkan 4 aksara, huruf atau angka, kata sandi yang benar adalah: 5466, ini akan memberi anda akses ke menu utama.

3. Setelah memasukkan kata laluan yang betul, menu utama akan muncul dengan 4 pilihan yang mungkin untuk menavigasi pelbagai fungsi yang tersedia.

· A - Masukkan nombor telefon bimbit pengguna.

o Masukkan 10 digit untuk menyimpan pengguna ke sistem

o Setelah 10 digit dimasukkan tekan "*" untuk menambahkan lebih banyak pengguna, atau tekan "#" untuk keluar kembali ke menu utama

· B - Paparkan pengguna yang disimpan

o Pengguna akan menatal melewati layar, masing-masing ditampilkan selama 3 detik, setelah semua pengguna ditampilkan halaman akan ditutup dan kembali ke menu utama.

o Jika tidak ada pengguna yang ditambahkan dalam menu pilihan A, itu akan menampilkan "TIDAK ADA PENGGUNA SELAMAT".

· C - Memaparkan suhu hidup

o Tekan "*" untuk keluar kembali ke menu utama

· D - Paparkan teks pendek

o Memaparkan nama pencipta dan subjek yang disusun dengan tarikh.

Disyorkan: