![Arduino Låsemekanisme: 5 trin Arduino Låsemekanisme: 5 trin](https://img.gwsigeps.com/img/img/blank.jpg)
Indholdsfortegnelse:
- forsyninger:
- Trin 1: Opsætning, kode
- Trin 2: Velkomstskærm
- Trin 3: Adgangskodeanmodning
- Trin 4: Adgangstilskud
- Trin 5: Lukning
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:
- Proteus
- Atmel Studio
- Visual Micro til Atmel Studio
- Arduino IDE
Du kan bare bruge Arduino IDE med Proteus, men jeg foretrækker det komplette sæt til at udnytte:
- .Hex-filen gemmes i projektmappen
- 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