Mekanisme Kunci Arduino: 5 Langkah

Mekanisme Kunci Arduino: 5 Langkah

Isi kandungan:

Anonim

Ini adalah projek Arduino yang mudah yang melancarkan sistem keselamatan rumah.

Ia disimulasikan sepenuhnya pada Proteus walaupun anda tidak boleh mengharapkan banyak perbezaan pada persekitaran yang sebenar.

Anda akan memerlukan:

  1. Proteus
  2. Atmel Studio
  3. Visual Mikro untuk Studio Atmel
  4. IDE Arduino

Anda hanya boleh menggunakan Arduino IDE dengan Proteus tetapi saya lebih suka set lengkap untuk mengambil kesempatan daripada:

  1. Fail.hex disimpan dalam folder projek
  2. Atmel Studio mempunyai ciri-ciri auto-lengkap yang menarik

Pada dasarnya apabila beban projek anda akan melihat satu set up sedemikian

Bekalan:

Langkah 1: Tetapkan, Kod

#include

#include #include #include

int greenLed = 22; int redLed = 23; int servoPin = 24; // Servo int piezoPin = 25; char * ourCode = "1234"; int currentPosition = 0; Servo myservo; int pos = 0;

baris byte lar = 4; const byte cols = 3;

kunci char baris cols = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9' }, {'*', '0', '#'}}; rowPins byte rows = {13,10,9,8}; colt byte cols = {7,6,1}; Papan kekunci pad kekunci = Pad kekunci (makeKeymap (kekunci), rowPins, colPins, baris, cols); LiquidCrystal Lcd (12,11,5,4,3,2);

void setup () {Lcd.begin (16,2); myservo.attach (24); displayCodeEntryScreen (); pinMode (piezoPin, OUTPUT); pinMode (servoPin, OUTPUT); pinMode (redLed, OUTPUT); pinMode (greenLed, OUTPUT); digitalWrite (redLed, LOW); digitalWrite (greenLed, LOW); }

kekosongan gelung () {int l; char key = keypad.getKey (); Lcd.setCursor (0,0); Lcd.print ("ENTER PASSWORD"); jika (int (utama)! = 0) {Lcd.setCursor (4,1); untuk (l = 0; l <= currentPosition; ++ l) {Lcd.print ("*");} if (key == ourCode currentPosition) {++ currentPosition; jika (currentPosition == 4) {unlockDoor (); currentPosition = 0; }} else {invalidCode (); currentPosition = 0; }}} tidak sah invalidCode () {digitalWrite (redLed, HIGH); digitalWrite (servoPin, LOW); digitalWrite (piezoPin, HIGH); clearScreen (); Lcd.setCursor (0,0); Lcd.print ("ACCESS DENIED!"); Lcd.setCursor (0,1); Lcd.print ("CODE INVALID"); kelewatan (5000); digitalWrite (redLed, LOW); digitalWrite (piezoPin, LOW);

displayCodeEntryScreen (); }

void turnHandle () {for (pos = 0; pos <= 180; pos + = 1) // pergi dari 0 darjah hingga 180 darjah {// dalam langkah 1 darjah myservo.write (pos); // beritahu servo untuk pergi ke kedudukan dalam kelewatan 'post' variabel (15); // menunggu 15ms untuk servo untuk mencapai kedudukan} untuk (pos = 180; pos> = 0; pos- = 1) // pergi dari 180 darjah hingga 0 darjah {myservo.write (pos); // beritahu servo untuk pergi ke kedudukan dalam kelewatan 'post' variabel (15); // menanti 15ms untuk servo untuk mencapai kedudukan}}

void unlockDoor () {digitalWrite (greenLed, HIGH); clearScreen (); Lcd.setCursor (0,0); Lcd.print ("ACCESS GRANTED"); Lcd.setCursor (0,1); Lcd.print ("SELAMAT DATANG !!"); digitalWrite (servoPin, HIGH); turnHandle (); kelewatan (500); digitalWrite (greenLed, LOW); digitalWrite (servoPin, LOW); displayCodeEntryScreen (); } void displayCodeEntryScreen () {clearScreen (); Lcd.setCursor (0,0); Lcd.print ("HELLO AND"); Lcd.setCursor (0,1); Lcd.print ("WELCOME!"); kelewatan (3000); clearScreen (); } void clearScreen () {Lcd.setCursor (0,0); Lcd.print (""); Lcd.setCursor (0,1); Lcd.print (""); }

Langkah 2: Skrin Selamat Datang

Pada berjaya membina fail tersebut hendaklah disimpan dalam direktori fail berikut contohnya: C: Users Username Documents Atmel Studio 6.2 ProjectFolder ProjectName Debug

Skrin selamat datang adalah seperti yang ditunjukkan …

Langkah 3: Permintaan Kata Laluan

Masukkan kata laluan anda

Dalam kes kami 1234

Langkah 4: Akses Diberikan

Pada kemasukan yang berjaya

Langkah 5: Tutup

Selepas motor bergerak untuk mensimulasikan membuka kunci pintu, ia akan mengunci lagi dan memaparkan skrin utama