Isi kandungan:

Peti Selamat: 3 Langkah
Peti Selamat: 3 Langkah

Video: Peti Selamat: 3 Langkah

Video: Peti Selamat: 3 Langkah
Video: Cara Membuat Kartu Ucapan Pop Up Ulang Tahun 3D - Diy Birthday Card 2024, Julai
Anonim
Peti keselamatan
Peti keselamatan
Peti keselamatan
Peti keselamatan
Peti keselamatan
Peti keselamatan

Inilah hasil akhirnya anda setelah mengumpulkannya dan memuat naik kodnya.

Langkah 1: Perkara yang Anda Perlu

Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu
Perkara yang Anda Perlu

Jumper Wires, 220 OHM resistor, 16x2 LCD Screen, Push Buttons, Servo Motor, Breadboard, Arduino Uno.

Langkah 2: Kod

James chinchay

#sertakan

#sertakan #sertakan

alamat int = 0; SaveTimer panjang statik yang tidak ditandatangani; SaveDelay panjang yang tidak ditandatangani statik = (30 * 1000);

char KOD [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Tidak Berkunci; DisplayTimer panjang statik yang tidak ditandatangani; DisplayDelay panjang statik yang tidak ditandatangani = 200;

LiquidCrystal lcd (12, 11, 9, 8, 7, 6);

butang intPin1 = 2; butang intPin2 = 3; butang intPin3 = 4; butang intPin4 = 5;

butang int = 10; int clearlockbutton = 13;

Servo myServo; // menyiapkan aturcara batal penyediaan program () {

myServo.attach (A1);

int EEPROMCodeOK = benar; untuk (Pos = 0; Pos <= (Panjang Kod); Pos ++) {Str [Pos] = EEPROM.read (Pos); jika (! (strrchr ("1123456789", Str [Pos]))) {// bukan kod EEPROMCodeOK = false yang sah; }} Pos ++; Str [Pos] = EEPROM.read (Pos); jika (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; jika (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (KOD, Str, Panjang Kod + 1); } ClearCode (); // menyiapkan input pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (butang enter, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // menyediakan pesanan lcd.print ("Hello Mr Birch"); kelewatan (2000); lcd.clear (); lcd.setCursor (0, 0); // menetapkan arahan untuk kata laluan lcd.print ("Kata Laluan:");

DisplayTimer = milis () + 200; }

gelung kosong () {

Kunci ();

Pos = kekangan (Pos, 0, Panjang Kod); // butang baca int butangState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);

int clButtonState = digitalRead (clearlockbutton); int enterButtonState = digitalRead (butang enter);

lcd.setCursor (9, 0); // syarat untuk diaktifkan jika (buttonState1 == RENDAH) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; kelewatan (250); sementara (digitalRead (buttonPin1) == RENDAH);

}

lain jika (buttonState2 == RENDAH) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; kelewatan (250); sementara (digitalRead (buttonPin2) == RENDAH);

}

lain jika (buttonState3 == RENDAH) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; kelewatan (250); sementara (digitalRead (buttonPin3) == RENDAH); }

lain jika (buttonState4 == RENDAH) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; kelewatan (250); sementara (digitalRead (buttonPin4) == RENDAH);

} lain jika (enterButtonState == RENDAH) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; kelewatan (250); sementara (digitalRead (buttonPin1) == RENDAH); if (strcmp (Str, CODE) == 0) {Tidak terkunci = benar; lcd.setCursor (0, 0); lcd.print ("Akses Diberikan"); kelewatan (2000); lcd.clear (); lcd.print ("Tidak dikunci"); } lain jika (SaveTimer> millis () && (Pos + 1) == Panjang Kod) {

strcpy (KOD, Str); untuk (Pos = 0; Pos <= (Panjang Kod + 1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Menyimpan Kod:"); lcd.setCursor (0, 1); lcd.print (Str);

Tidak terkunci = benar; }

lain {

lcd.clear (); lcd.print ("Akses Ditolak."); kelewatan (2000); lcd.clear (); lcd.print ("Kata Laluan:");

} // membuka kunci kod semasa (Tidak dikunci) {Buka kunci (); if (digitalRead (clearlockbutton) == RENDAH) {kelewatan (200); lcd.clear (); lcd.print ("Dikunci"); kelewatan (2000); lcd.clear (); Tidak dikunci = palsu; SaveTimer = millis () + 30000; }}

ClearCode ();

}

lain jika (clButtonState == RENDAH) {kelewatan (500);

sementara (clearlockbutton == RENDAH); jika ((milis () - SaveTimer)> 4500) {

}

ClearCode ();

}

jika ((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 ("Kata Laluan:"); lcd.setCursor (0, 1); lcd.print ("");

}

batal Buka Kunci () {

myServo.write (150);

} // butang penguncian program kekosongan Kunci () {

myServo.write (50);

}

Langkah 3:

apabila selesai semuanya mesti kelihatan seperti ini.

Disyorkan: