Daftar Isi:
Video: Kotak Aman: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Inilah hasil akhirnya Anda setelah menyatukannya dan mengunggah kode.
Langkah 1: Hal-hal yang Anda Butuhkan
Kabel Jumper, resistor 220 OHM, Layar LCD 16x2, Tombol Tekan, Motor Servo, Breadboard, Arduino Uno.
Langkah 2: Kode
James chinchay
#termasuk
#sertakan #sertakan
int alamat = 0; SaveTimer panjang yang tidak ditandatangani statis; static unsigned long SaveDelay = (30 * 1000);
char KODE[10] = "1234E"; karakter Str[10]; panjang Kode karakter = 4; int Pos = 0; bool Tidak Terkunci; DisplayTimer panjang yang tidak ditandatangani statis; DisplayDelay panjang yang tidak ditandatangani statis = 200;
LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
int tombolPin1 = 2; int tombolPin2 = 3; int tombolPin3 = 4; int tombolPin4 = 5;
int tombol enter = 10; int clearlockbutton = 13;
Servo myServo; //menyiapkan program konstruk void setup() {
myServo.attach(A1);
int EEPROMCodeOK = benar; for (Pos = 0; Pos <= (Panjang Kode); Pos++) { Str[Pos] = EEPROM.read(Pos); if (!(strrchr("1123456789", Str[Pos]))) { // bukan kode yang valid EEPROMCodeOK = false; } } Pos++; Str[Pos] = EEPROM.read(Pos); if (Str[CodeLength + 1] != 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) { Str[Panjang Kode + 2] = '\0'; strncpy(KODE, Str, Panjang Kode + 1); } ClearCode(); // mengatur input pinMode(buttonPin1, INPUT_PULLUP); pinMode(buttonPin2, INPUT_PULLUP); pinMode(buttonPin3, INPUT_PULLUP); pinMode(buttonPin4, INPUT_PULLUP);
pinMode(tombol enter, INPUT_PULLUP); pinMode(tombol clearlock, INPUT_PULLUP);
lcd.begin(16, 2); lcd.setCursor(0, 0); //set up lcd.print("Halo Mr Birch"); penundaan(2000); lcd.clear(); lcd.setCursor(0, 0); //set up prompt password lcd.print("Password:");
DisplayTimer = milis() + 200; }
lingkaran kosong() {
Kunci();
Pos = kendala(Pos, 0, CodeLength); // tombol baca int buttonState1 = digitalRead(buttonPin1); int buttonState2 = digitalRead(buttonPin2); int buttonState3 = digitalRead(buttonPin3); int buttonState4 = digitalRead(buttonPin4);
int clButtonState = digitalRead(tombol hapus); int enterButtonState = digitalRead(enterbutton);
lcd.setCursor(9, 0); //persyaratan untuk mengaktifkan if (buttonState1 == LOW) { Str[Pos] = '1'; Pos++; Str[Pos] = '\0'; penundaan (250); while (digitalRead(buttonPin1) == RENDAH);
}
else if (buttonState2 == LOW) { Str[Pos] = '2'; Pos++; Str[Pos] = '\0'; penundaan (250); while (digitalRead(buttonPin2) == RENDAH);
}
else if (buttonState3 == LOW) { Str[Pos] = '3'; Pos++; Str[Pos] = '\0'; penundaan (250); while (digitalRead(buttonPin3) == RENDAH); }
else if (buttonState4 == LOW) { Str[Pos] = '4'; Pos++; Str[Pos] = '\0'; penundaan (250); while (digitalRead(buttonPin4) == RENDAH);
} else if (enterButtonState == LOW) { Str[Pos] = 'E'; Pos++; Str[Pos] = '\0'; penundaan (250); while (digitalRead(buttonPin1) == RENDAH); if (strcmp (Str, KODE) == 0) { Tidak terkunci = benar; lcd.setCursor(0, 0); lcd.print("Akses Diberikan"); penundaan(2000); lcd.clear(); lcd.print("Tidak Terkunci"); } else if (SaveTimer > milis() && (Pos + 1) == CodeLength) {
strcpy(KODE, Str); for (Pos = 0; Pos <= (Panjang Kode + 1); Pos++) { EEPROM.write(Pos, Str[Pos]); } lcd.setCursor(0, 0); lcd.print("Menyimpan Kode:"); lcd.setCursor(0, 1); lcd.print(Str);
Tidak terkunci = benar; }
lain {
lcd.clear(); lcd.print("Akses Ditolak."); penundaan(2000); lcd.clear(); lcd.print("Password:");
} //membuka kode saat (Tidak terkunci) { Unlock(); if (digitalRead(tombol clear) == RENDAH) { delay(200); lcd.clear(); lcd.print("Terkunci"); penundaan(2000); lcd.clear(); Tidak terkunci = salah; SaveTimer = milis() + 30000; } }
HapusKode();
}
else if (clButtonState == LOW) { delay(500);
while (tombol clearlock == RENDAH); if ((milis() - SaveTimer) > 4500) {
}
HapusKode();
}
if ((panjang)(milis() - DisplayTimer) >= 0) { DisplayTimer += DisplayDelay; lcd.setCursor(9, 0); lcd.print(Str); lcd.print("");
} }
batal ClearCode() {
Pos = 0; Str[Pos] = '\0'; lcd.setCursor(0, 0); lcd.print("Password:"); lcd.setCursor(0, 1); lcd.print("");
}
batal Buka () {
myServo.write(150);
} //tombol pengunci program void Lock() {
myServo.write(50);
}
Langkah 3:
ketika dilakukan semuanya akan terlihat seperti ini.
Direkomendasikan:
Kotak Kunci Tidak Aman: 7 Langkah
Kotak Kunci Tidak Aman: Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com)Halo! Apakah Anda memiliki barang berharga yang tidak terlalu berharga yang ingin Anda amankan tetapi tidak begitu aman? Apakah Anda memilikinya
KOTAK AMAN Digital Berbasis Arduino: 10 Langkah
SAFE BOX Digital Berbasis Arduino: Hai teman-teman! Apakah Anda memiliki sesuatu yang ingin Anda simpan dengan aman? Sesuatu yang perlu dijauhkan dari penyusup yang tidak diinginkan dan penyerbu privasi? Nah, saya punya solusi untuk masalah Anda! Inilah Kotak Aman kunci berbasis Arduino
Lebih Aman Lebih Baik: Membuat Stasiun Kereta Lebih Aman: 7 Langkah
Lebih Aman Lebih Baik: Membuat Stasiun Kereta Lebih Aman: Banyak stasiun kereta api saat ini tidak aman karena kurangnya keamanan, penghalang, dan peringatan kedatangan kereta api. Kami melihat perlunya memperbaikinya. Untuk mengatasi masalah ini kami menciptakan Lebih Aman Lebih Baik. Kami menggunakan sensor getaran, sensor gerak, dan
Kotak Barbie: Kotak Kamuflase/ Kotak Boom untuk Pemutar Mp3 Anda: 4 Langkah (dengan Gambar)
Kotak Barbie: Kotak Kamuflase / Kotak Boom untuk Pemutar Mp3 Anda: Ini adalah tas pelindung berlapis untuk pemutar mp3 Anda yang juga mengubah jack headphone menjadi seperempat inci, dapat bertindak sebagai kotak boom di flip sakelar, dan menyamarkan pemutar mp3 Anda sebagai pemutar kaset awal tahun sembilan puluhan atau pencurian rendah serupa di
Bangun Kotak Baterai Kotak Cerutu untuk Radio Tabung: 4 Langkah
Bangun Kotak Baterai Kotak Cerutu untuk Radio Tabung: Jika Anda ingin membangun dan bermain-main dengan radio tabung seperti saya, Anda mungkin memiliki masalah yang sama seperti yang saya lakukan dengan menyalakannya. Sebagian besar sirkuit lama dirancang untuk berjalan dengan baterai b tegangan tinggi yang tidak lagi tersedia. Jadi