Daftar Isi:
Video: Arduino UNO (membuat Menu dan Fungsi): 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Dalam instruksi ini kita akan mengeksplorasi cara membuat menu, membaca suhu dari sensor TC74A0 dan menampilkan "nilai" (dalam hal ini nomor ponsel) dengan cara yang tidak terbatas, tetapi terbatas pada memori papan arduino.
Kami akan menggunakan
-Array
-Layar kristal cair
-Keypad
Panduan pengguna termasuk dalam langkah terakhir.
Langkah 1: Komponen
Arduino Uno
· Papan tombol 4x4
· Sensor suhu digital TC74A0
· Modul LCD I2c 16x2
· Layar kristal cair 16x2
· Kabel jumper
· Papan tempat memotong roti
· Komputer pribadi
· Arduino IDE
· Memindahkan kabel
Langkah 2: Pengkabelan Komponen
SENSOR TEMP DAN LCD TERHUBUNG PADA LINE YANG SAMA KE SDA DAN SCL (A4, A5)
LCD (Modul I2c)
o SDA ke A5 di Arduino
o SCL ke A4 di Arduino
o VCC ke 5V di Arduino
o GND ke GND di Arduino
· Papan tombol 4 x 4
o Pin 1 – 8 pada Keypad masing-masing terhubung ke pin 9 – 2 pada Arduino
Sensor suhu TC74A0
o TC74A0 pin 2 ke SDA di Arduino
o TC74A0 pin 3 ke GND di Arduino
o TC74A0 pin 4 ke SCL di Arduino
o TC74A0 pin 5 hingga 5V di Arduino
Langkah 3: Kode
#include //Termasuk library saat kompilasi
#termasuk
#termasuk
#define Password_Panjang 5
#define Command_Lenght 3
#define CellNumber 10
int pengguna = 0;
int Tampilan = 0;
int alamat= 72; //tc74a0 ALAMAT
int saya = 0;
int PENGGUNA;
int X = 0;
int XY = 0;
int suhu;
int suhuPre = 0;
char userNum[10][10] = {{}, {}, {}};
char Data[Panjang_Kata Sandi];
char Master[Password_Lenght] = "5466"; //KATA SANDI
char ExitData[Panjang_Perintah]; //
char Master1[Command_Lenght] = "**";//
char MenuItem;
char CELLArrayA[10];
char CELLArrayB[10];
char CELLArrayC[10];
const byte BARIS = 4; //empat baris
const byte COLS = 4; //empat kolom
byte rowPins[ROWS] = {5, 4, 3, 2};
byte colPins[COLS] = {9, 8, 7, 6};
byte data_count = 0, master_count = 0;
bool Pass_is_good;
LiquidCrystal_I2C lcd (0x26, 16, 2);
char hexaKeys[ROWS][COLS] = //MEMULAI KEYPAD
{
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}
};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
batalkan pengaturan()
{
Serial.begin(9600); //ini membuat Serial Monitor
Kawat.mulai(); //ini membuat objek Kawat
lcd.begin(16, 2);
lcd.lampu latar();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Silahkan Tunggu 3"); //memuat LAYAR
penundaan (1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Silahkan Tunggu 2");
penundaan (1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Silahkan Tunggu 1");
penundaan (300);
lcd.clear();
String myString = "ARDUINO INSTRUCTABLE";
lcd.setCursor(2, 2);
lcd.print(myString);
penundaan (2500);
untuk(int scrollCounter=0;scrollCounter<24;scrollCounter++)
{
lcd.scrollDisplayLeft();
penundaan (300);
}
lcd.clear();
lcd.print("Masukkan Kata Sandi");
}
lingkaran kosong()
{
switch(Tampilan) //MANA DI MENU UTAMA KITA
{ //APAKAH PENGGUNA TEKAN A, B, C, D
kasus 0:
{
Kata sandi();
}
merusak;
kasus 1:
{
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("A B C D");
lcd.setCursor(0, 0);
lcd.print("Menu Utama");
Tampilan = 2;
penundaan(100);
merusak;
}
kasus 2:
{
char customKey = customKeypad.getKey();
beralih (kunci kustom)
{
kasus 'A':
{
Serial.println("A ditekan");
Pengguna Toko();
merusak;
}
kasus 'B':
{
Serial.println("B ditekan");
if (pengguna == 0) {
lcd.clear();
lcd.print("TIDAK ADA PENGGUNA YANG DISIMPAN");
penundaan(3000);
lcd.clear();
Tampilan = 1;
merusak;
}
TampilanUsers(); merusak;
}
kasus 'C':
{
Serial.println("C ditekan"); // DIGUNAKAN SELAMA PENGUJIAN
int ext = 0;
sementara (!ext) {
karakter ch;
suhu = TempMenu();
if (temp != tempPre) {
lcd.clear();
lcd.print("Suhu");
lcd.setCursor(0, 1);
lcd.print(temp);
lcd.print("C");
suhuPre = suhu;
penundaan (500);
}
ch = customKeypad.getKey();
if (ch == '*') //EXIT TEMPERATURE MENU (jika * DITEKAN)
{
ext = 1;
lcd.clear();
Tampilan = 1;
}
}
merusak;
TempMenu();
merusak;
}
kasus 'D':
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("NUA PRAC");
lcd.setCursor(0, 1);
lcd.print("JB SCHOEMAN");
penundaan(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MEI 2019");
lcd.setCursor(0, 1);
lcd.print("CC OOSTHUIZEN");
penundaan(3000);
lcd.clear();
Tampilan = 1;
}
}
}
}
}
// FUNGSI KUSTOM UNTUK MEMANGGIL NILAI ATAU PROSEDUR
batalkan Kata Sandi()
{
char customKey = customKeypad.getKey();
if (customKey) // memastikan tombol benar-benar ditekan, sama dengan (customKey != NO_KEY)
{
Data[jumlah_data] = customKey; // simpan char ke dalam array data
lcd.setCursor(jumlah_data, 1); // pindahkan kursor untuk menampilkan setiap karakter baru
lcd.print("*"); // cetak karakter pada kursor tersebut
data_jumlah++; // menambah array data sebesar 1 untuk menyimpan karakter baru, juga melacak jumlah karakter yang dimasukkan
}
if(data_count == Password_Lenght-1) // jika indeks array sama dengan jumlah karakter yang diharapkan, bandingkan data dengan master
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Password adalah ");
if(!strcmp(Data, Master)) // sama dengan (strcmp(Data, Master) == 0)
{
lcd.print("Bagus");
lcd.clear();
Tampilan = 1;
}
lain
lcd.print("Buruk");
delay(1000);// menambahkan penundaan 1 detik untuk memastikan kata sandi benar-benar ditampilkan di layar sebelum dihapus.
lcd.clear();
Hapus data();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Masukkan Kata Sandi");
}
}
int TempMenu()
{
Wire.beginTransmission(alamat);
Kawat.tulis(0);
Kawat.endTransmisi();
Wire.requestFrom(alamat, 1);
while (Wire.available() == 0);
int c = Kawat.baca();
kembali c;
}
batal hapusdata()
{
sementara(jumlah_data !=0)
{ // Ini dapat digunakan untuk ukuran array apa pun, Data[jumlah_data--] = 0; //hapus array untuk data baru
}
}
batal Pengguna Toko()
{
int ext = 0;
pengguna int;
karakter ch;
sementara (!ext) {
lcd.clear();
lcd.print("Masukkan Pengguna");
pengguna = pengguna + 1;
lcd.print(pengguna);
intx = 0;
sementara (!x) {
untuk (int i = 0; i < 10; i++) {
ch = customKeypad.waitForKey();
lcd.setCursor(i, 1);
lcd.print(ch);
userNum[pengguna - 1] = ch;
}
penundaan (500);
lcd.clear();
lcd.print("Lanjutkan");
lcd.setCursor(0, 1);
lcd.print("*ya#tidak");
ch = customKeypad.waitForKey();
jika (ch == '*') {
x = 1;
}
jika (ch == '#') {
x = 1;
ext = 1;
lcd.clear();
Tampilan = 1;
}
}
pengguna++;
}
}
batal DisplayUsers()
{
lcd.clear();
for (int i = 0; i < pengguna; i++) {
lcd.print("Pengguna Tersimpan");
lcd.print(i + 1);
for (int u = 0; u < 10; u++) {
lcd.setCursor(u, 1);
lcd.print(Numpengguna[u]);
}
penundaan(2000);
lcd.clear();
Tampilan = 1;
}
}
Langkah 4: PANDUAN PENGGUNA
1. Saat menghidupkan proyek, layar pemuatan atau sambutan akan muncul.
2. Layar "Masukkan Kata Sandi" akan muncul, layar ini memungkinkan Anda memasukkan 4 karakter, huruf atau angka, kata sandi yang benar adalah: 5466, ini akan memberi Anda akses ke menu utama.
3. Setelah memasukkan kata sandi yang benar, menu utama akan muncul dengan 4 opsi yang memungkinkan untuk menavigasi berbagai fungsi yang tersedia.
· A – Masukkan nomor ponsel pengguna.
o Masukkan 10 digit untuk menyimpan pengguna ke sistem
o Setelah 10 digit telah dimasukkan tekan " * " untuk menambahkan lebih banyak pengguna, atau tekan "#" untuk keluar kembali ke menu utama
· B – Menampilkan pengguna yang disimpan
o Pengguna akan menggulir melewati layar, mereka ditampilkan masing-masing selama 3 detik, segera setelah semua pengguna ditampilkan, halaman akan ditutup dan kembali ke menu utama.
o Jika tidak ada pengguna yang ditambahkan pada pilihan menu A, maka akan muncul “NO SAVED USERS”.
· C – Menampilkan suhu langsung
o Tekan “* “untuk keluar kembali ke menu utama
· D – Menampilkan teks pendek
o Menampilkan nama pencipta dan subjek yang dikompilasi dengan tanggal.
Direkomendasikan:
Generator Fungsi Portabel di WiFi dan Android: 10 Langkah
Portable Function Generator di WiFi dan Android: Menjelang akhir abad ke-20, berbagai inovasi teknologi bermunculan, terutama di bidang komunikasi; tapi tidak hanya. Bagi kami, pengguna, konsumen, dan insinyur menyadari perkembangan pesat perangkat elektronik, yang dapat membuat hidup kita
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card - Simulasi Data-logger DHT11 di Proteus: 5 Langkah
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card | Simulasi Data-logger DHT11 di Proteus: Pendahuluan: hai, ini Liono Maker, ini tautan YouTube. Kami membuat proyek kreatif dengan Arduino dan bekerja pada sistem tertanam. Data-Logger: Data logger (juga data-logger atau perekam data) adalah perangkat elektronik yang merekam data dari waktu ke waktu dengan
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: 11 Langkah
Cara Membuat dan Menyisipkan Tabel dan Menambahkan Kolom Dan/atau Baris Tambahan ke Tabel Itu di Microsoft Office Word 2007: Pernahkah Anda memiliki banyak data yang sedang Anda kerjakan dan pikirkan sendiri…"bagaimana saya bisa membuat semua dari data ini terlihat lebih baik dan lebih mudah dipahami?" Jika demikian, maka tabel di Microsoft Office Word 2007 mungkin bisa menjadi jawaban Anda
Menghubungkan Pemrosesan dan Arduino dan Membuat Pengontrol GUI 7 Segmen dan Servo: 4 Langkah
Menghubungkan Pemrosesan dan Arduino dan Membuat 7 Segmen dan Pengontrol GUI Servo: Untuk beberapa proyek yang Anda buat perlu menggunakan Arduino karena menyediakan platform prototyping yang mudah tetapi menampilkan grafik di monitor serial Arduino bisa memakan waktu cukup lama dan bahkan sulit dilakukan. Anda dapat menampilkan grafik pada Arduino Serial Monitor bu
Mempelajari Beberapa Fungsi Dasar SOLIDWORKS: Membuat Dadu Enam Sisi: 22 Langkah
Mempelajari Beberapa Fungsi Dasar SOLIDWORKS: Membuat Dadu Enam Sisi: Instruksi ini akan memandu Anda melalui langkah-langkah yang diperlukan untuk membuat model 3D dari dadu enam sisi. Saat mendesain model, Anda akan menggambar pada bidang dan permukaan, mengekstrusi dan memotong Bentuk 3D, dan fillet sudut dalam dan luar atau model 3D.Saat bekerja