![Mécanisme de verrouillage Arduino: 5 étapes Mécanisme de verrouillage Arduino: 5 étapes](https://img.gwsigeps.com/img/img/blank.jpg)
Table des matières:
- Provisions:
- Étape 1: Configuration, code
- Étape 2: Écran d'accueil
- Étape 3: demande de mot de passe
- Étape 4: Accès accordé
- Étape 5: fermeture
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:
- Proteus
- Atmel Studio
- Visual Micro pour Atmel Studio
- 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:
- Le fichier.hex est stocké dans le dossier du projet
- 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.