![Arduino Lock Mechanism: 5 kroków Arduino Lock Mechanism: 5 kroków](https://img.gwsigeps.com/img/img/blank.jpg)
Spisu treści:
- Kieszonkowe dzieci:
- Krok 1: Konfiguracja, kod
- Krok 2: Ekran powitalny
- Krok 3: Żądanie hasła
- Krok 4: Przyznanie dostępu
- Krok 5: Zamykanie
Jest to prosty projekt Arduino, który emuluje system bezpieczeństwa w domu.
Jest w pełni symulowany na Proteusie, ale nie należy spodziewać się dużej różnicy w rzeczywistym środowisku.
Będziesz potrzebował:
- odmieniec
- Atmel Studio
- Visual Micro dla Atmel Studio
- Arduino IDE
Możesz po prostu użyć Arduino IDE z Proteus, ale wolę cały zestaw, aby skorzystać z:
- Plik.hex jest przechowywany w folderze projektu
- Atmel Studio oferuje atrakcyjne funkcje autouzupełniania
Zasadniczo, gdy projekt się ładuje, zobaczysz takie ustawienie
Kieszonkowe dzieci:
Krok 1: Konfiguracja, kod
#zawierać
#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;
const wiersze bajtów = 4; const bajt cols = 3;
char keys rows cols = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9' }, {'*', '0', '#'}}; bajt rowPins wiersze = {13,10,9,8}; bajt colPins cols = {7,6,1}; Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, rows, 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); }
void loop () {int l; klucz char = keypad.getKey (); Lcd.setCursor (0,0); Lcd.print („WPISZ HASŁO”); if (int (key)! = 0) {Lcd.setCursor (4,1); for (l = 0; l <= currentPosition; ++ l) {Lcd.print ("*");} if (klucz == naszKod currentPosition) {++ currentPosition; if (currentPosition == 4) {unlockDoor (); currentPosition = 0; }} else {invalidCode (); currentPosition = 0; }}} void invalidCode () {digitalWrite (redLed, HIGH); digitalWrite (servoPin, LOW); digitalWrite (piezoPin, HIGH); czysty ekran(); Lcd.setCursor (0,0); Lcd.print („ACCESS DENIED!”); Lcd.setCursor (0,1); Lcd.print („INVALID CODE”); opóźnienie (5000); digitalWrite (redLed, LOW); digitalWrite (piezoPin, LOW);
displayCodeEntryScreen (); }
void turnHandle () {for (pos = 0; pos <= 180; pos + = 1) // przechodzi od 0 stopni do 180 stopni {// w krokach co 1 stopień myservo.write (pos); // powiedz serwomechanizmowi, aby poszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15 ms, aby serwomechanizm osiągnął pozycję} dla (pos = 180; pos> = 0; pos- = 1) // przechodzi od 180 stopni do 0 stopni {myservo.write (pos); // powiedz serwomechanizmowi, aby poszedł do pozycji w zmiennej 'pos' delay (15); // czeka 15 ms, aż serwo osiągnie pozycję}}
void unlockDoor () {digitalWrite (greenLed, HIGH); czysty ekran(); Lcd.setCursor (0,0); Lcd.print („ACCESS GRANTED”); Lcd.setCursor (0,1); Lcd.print („ZAPRASZAMY !!”); digitalWrite (servoPin, HIGH); turnHandle (); opóźnienie (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 („ZAPRASZAMY!”); opóźnienie (3000); czysty ekran(); } void clearScreen () {Lcd.setCursor (0,0); Lcd.print (""); Lcd.setCursor (0,1); Lcd.print (""); }
Krok 2: Ekran powitalny
Po udanej kompilacji plik powinien być przechowywany w następującym katalogu plików, np.: C: Użytkownicy Nazwa użytkownika Dokumenty Atmel Studio 6.2 Folder projektu ProjectName Debugowanie
Ekran powitalny jest jak pokazano …
Krok 3: Żądanie hasła
Wprowadź hasło
W naszym przypadku 1234
Krok 4: Przyznanie dostępu
Po pomyślnym wejściu
Krok 5: Zamykanie
Po tym, jak silnik poruszy się, aby zasymulować odblokowanie drzwi, ponownie się zablokuje i wyświetli ekran główny