Arduino Låsemekanisme: 5 trin

Arduino Låsemekanisme: 5 trin

Indholdsfortegnelse:

Anonim

Dette er et simpelt Arduino projekt, der emulerer et hjem sikkerhedssystem.

Det er fuldt simuleret på Proteus, selvom du ikke bør forvente meget forskel på en reel miljø.

Du skal bruge:

  1. Proteus
  2. Atmel Studio
  3. Visual Micro til Atmel Studio
  4. Arduino IDE

Du kan bare bruge Arduino IDE med Proteus, men jeg foretrækker det komplette sæt til at udnytte:

  1. .Hex-filen gemmes i projektmappen
  2. Atmel Studio har overbevisende auto-komplette funktioner

Dybest set når projektet laster, skal du se en sådan opsætning

forsyninger:

Trin 1: Opsætning, kode

#omfatte

#include #include #include

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

const byte rækker = 4; const byte cols = 3;

char nøgler rækker cols = {{1 ',' 2 ',' 3 '}, {' 4 ',' 5 ',' 6 '}, {' 7 ',' 8 ',' 9 ' }, {'*', '0', '#'}}; byte rowPins rows = {13,10,9,8}; byte colPins cols = {7,6,1}; Tastatur tastatur = Tastatur (makeKeymap (taster), rowPins, colPins, rækker, kols); 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); }

void loop () {int l; char nøgle = keypad.getKey (); Lcd.setCursor (0,0); Lcd.print ("ENTER PASSWORD"); hvis (int (nøgle)! = 0) {Lcd.setCursor (4,1); for (l = 0; l <= currentPosition; ++ l) {Lcd.print ("*");} hvis (nøgle == ourCode currentPosition) {++ currentPosition; hvis (currentPosition == 4) {unlockDoor (); currentPosition = 0; }} else {invalidCode (); currentPosition = 0; }}} void 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 ("INVALID CODE"); forsinkelse (5000); digitalWrite (redLed, LOW); digitalWrite (piezoPin, LOW);

displayCodeEntryScreen (); }

void turnHandle () {for (pos = 0; pos <= 180; pos + = 1) // går fra 0 grader til 180 grader {// i trin af 1 grad myservo.write (pos); // fortælle servo at gå til position i variabel 'pos' forsinkelse (15); // venter 15ms for servo at nå positionen} for (pos = 180; pos> = 0; pos- = 1) // går fra 180 grader til 0 grader {myservo.write (pos); // fortælle servo at gå til position i variabel 'pos' forsinkelse (15); // venter 15ms for servo at nå positionen}}

void unlockDoor () {digitalWrite (greenLed, HIGH); ClearScreen (); Lcd.setCursor (0,0); Lcd.print ("ACCESS GRANTED"); Lcd.setCursor (0,1); Lcd.print ("VELKOMMEN !!"); digitalWrite (servoPin, HIGH); turnHandle (); forsinkelse (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 ("VELKOMMEN!"); forsinkelse (3000); ClearScreen (); } void clearScreen () {Lcd.setCursor (0,0); Lcd.print (""); Lcd.setCursor (0,1); Lcd.print (""); }

Trin 2: Velkomstskærm

På en vellykket bygning skal filen gemmes i følgende filmappe, f.eks.: C: Brugere Brugernavn Dokumenter Atmel Studio 6.2 ProjectFolder ProjectName Debug

Velkomstskærmen er som vist …

Trin 3: Adgangskodeanmodning

Skriv dit kodeord

I vores sag 1234

Trin 4: Adgangstilskud

Ved vellykket indtastning

Trin 5: Lukning

Efter at motoren bevæger sig for at simulere låseoplåsning låser den igen og viser startskærmen