Mécanisme de verrouillage Arduino: 5 étapes

Mécanisme de verrouillage Arduino: 5 étapes

Table des matières:

Anonim

Ceci est un simple projet Arduino qui émule un système de sécurité domestique.

Il est entièrement simulé sur Proteus, mais vous ne devez pas vous attendre à beaucoup de différence sur un environnement réel.

Vous aurez besoin de:

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

Vous pouvez simplement utiliser Arduino IDE avec Proteus mais je préfère la configuration complète pour tirer parti des avantages suivants:

  1. Le fichier.hex est stocké dans le dossier du projet
  2. Atmel Studio possède des fonctionnalités d'auto-complétion convaincantes

Fondamentalement, lorsque le projet se charge, vous verrez une telle configuration

Provisions:

Étape 1: Configuration, code

#comprendre

#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;

rangées d'octets const = 4; const octets cols = 3;

clés de caractères lignes cols = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9' }, {'*', '0', '#'}}; byte rowPins rows = {13,10,9,8}; octets colPins cols = {7,6,1}; Clavier Clavier = Clavier (makeKeymap (keys), rowPins, colPins, rows, cols); Liquid Cristal 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); }

boucle vide () {int l; clé de caractère = keypad.getKey (); Lcd.setCursor (0,0); Lcd.print ("ENTER PASSWORD"); if (int (clé)! = 0) {Lcd.setCursor (4,1); for (l = 0; l <= currentPosition; ++ l) {Lcd.print ("*");} if (clé == notreCode currentPosition) {++ currentPosition; if (currentPosition == 4) {unlockDoor (); currentPosition = 0; }} else {invalidCode (); currentPosition = 0; }}} void invalidCode () {digitalWrite (redLed, HIGH); digitalWrite (servoPin, LOW); digitalWrite (piezoPin, HIGH); écran propre(); Lcd.setCursor (0,0); Lcd.print ("ACCÈS REFUS!"); Lcd.setCursor (0,1); Lcd.print ("INVALID CODE"); retarder (5000); digitalWrite (redLed, LOW); digitalWrite (piezoPin, LOW);

displayCodeEntryScreen (); }

void turnHandle () {for (pos = 0; pos <= 180; pos + = 1) // passe de 0 à 180 degrés {// par incréments de 1 degré myservo.write (pos); // dire au servo de se positionner dans la variable 'pos' delay (15); // attend 15ms que le servo atteigne la position} pour (pos = 180; pos> = 0; pos- = 1) // passe de 180 degrés à 0 degrés {myservo.write (pos); // dire au servo de se positionner dans la variable 'pos' delay (15); // attend 15ms que le servo atteigne la position}}

void unlockDoor () {digitalWrite (greenLed, HIGH); écran propre(); Lcd.setCursor (0,0); Lcd.print ("ACCÈS ACCORDÉ"); Lcd.setCursor (0,1); Lcd.print ("BIENVENUE !!"); digitalWrite (servoPin, HIGH); turnHandle (); retard (500); digitalWrite (greenLed, LOW); digitalWrite (servoPin, LOW); displayCodeEntryScreen (); } void displayCodeEntryScreen () {clearScreen (); Lcd.setCursor (0,0); Lcd.print ("BONJOUR ET"); Lcd.setCursor (0,1); Lcd.print ("BIENVENUE!"); retarder (3000); écran propre(); } void clearScreen () {Lcd.setCursor (0,0); Lcd.print (""); Lcd.setCursor (0,1); Lcd.print (""); }

Étape 2: Écran d'accueil

Si la création est réussie, le fichier doit être stocké dans le répertoire de fichiers suivant, par exemple: C: Utilisateurs Nom d'utilisateur Documents Atmel Studio 6.2 ProjectFolder NomProjet Debug

L'écran d'accueil est comme indiqué …

Étape 3: demande de mot de passe

Tapez votre mot de passe

Dans notre cas 1234

Étape 4: Accès accordé

En cas de succès

Étape 5: fermeture

Lorsque le moteur simule le déverrouillage de la porte, il se verrouille à nouveau et affiche l'écran d'accueil.