
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


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:
CARA MEMBUAT EMPAT KALKULATOR FUNGSI DALAM PKP: 6 Langkah

CARA MEMBUAT EMPAT KALKULATOR FUNGSI DALAM CPP: Kalkulator digunakan untuk semua orang dalam kehidupan seharian. Kalkulator ringkas boleh dibuat menggunakan program C ++ yang dapat menambah, mengurangkan, mengalikan dan membahagi, dua operasi yang dimasukkan oleh pengguna. Pernyataan if dan goto digunakan untuk membuat kalkulator
Penjana Fungsi Mudah Alih pada WiFi dan Android: 10 Langkah

Portable Function Generator pada WiFi dan Android: Menjelang akhir abad ke-20, pelbagai inovasi teknologi muncul, terutamanya dalam bidang komunikasi; tetapi bukan sahaja. Bagi kami, pengguna, pengguna dan jurutera membuat pengembangan alat elektronik yang pesat, yang dapat membuat hidup kita
Menghubungkan Pemprosesan dan Arduino dan Membuat 7 Segmen dan Pengawal GUI Servo: 4 Langkah

Menghubungkan Pemprosesan dan Arduino dan Membuat 7 Segmen dan Pengawal Servo GUI: Untuk beberapa projek yang anda buat perlu menggunakan Arduino kerana menyediakan platform prototaip yang mudah tetapi memaparkan grafik dalam monitor bersiri Arduino boleh memakan masa cukup lama dan bahkan sukar untuk dilakukan. Anda boleh memaparkan grafik di Arduino Serial Monitor dengan
Cara Menggunakan Terminal Mac, dan Cara Menggunakan Fungsi Utama: 4 Langkah

Cara Menggunakan Terminal Mac, dan Cara Menggunakan Fungsi Utama: Kami akan menunjukkan kepada anda cara membuka Terminal MAC. Kami juga akan menunjukkan kepada anda beberapa ciri dalam Terminal, seperti ifconfig, mengubah direktori, mengakses fail, dan arp. Ifconfig akan membolehkan anda memeriksa alamat IP anda, dan iklan MAC anda
Mempelajari Beberapa Fungsi Asas SOLIDWORKS: Membuat Dadu Enam Sisi: 22 Langkah

Mempelajari Beberapa Fungsi Asas SOLIDWORKS: Membuat Dadu Enam Sisi: Instruksional ini akan memandu anda melalui langkah-langkah yang diperlukan untuk membuat model 3D dari dadu enam sisi. Semasa merancang model, anda akan menggunakan pesawat dan permukaan, mengekstrusi dan memotong Bentuk 3D, dan sudut dalaman dan luaran fillet atau model 3D. Apabila bekerja