Innehållsförteckning:

Skåp: 3 steg
Skåp: 3 steg

Video: Skåp: 3 steg

Video: Skåp: 3 steg
Video: Installera IKEA METOD kök, kapitel #3 - Uppsättning av stommar 2024, Juli
Anonim
Kassaskåp
Kassaskåp
Kassaskåp
Kassaskåp
Kassaskåp
Kassaskåp

Detta är vad ditt slutliga resultat bör vara efter att du har satt ihop det och laddat upp koden.

Steg 1: Saker du behöver

Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver
Saker du behöver

Jumper Wires, 220 OHM -motstånd, 16x2 LCD -skärm, tryckknappar, servomotor, brödbräda, Arduino Uno.

Steg 2: Kod

James chinchay

#omfatta

#inkludera #inkludera

int -adress = 0; statisk osignerad lång SaveTimer; statisk osignerad lång SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; röding Str [10]; char CodeLength = 4; int Pos = 0; bool olåst; statisk osignerad lång DisplayTimer; statisk osignerad lång DisplayDelay = 200;

LiquidCrystal lcd (12, 11, 9, 8, 7, 6);

int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5;

int enter -knapp = 10; int clearlock -knapp = 13;

Servo myServo; // ställa in konstruktionsprogrammet void setup () {

myServo.attach (A1);

int EEPROMCodeOK = true; för (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// inte en giltig kod EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // konfigurera ingångar pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (enter -knapp, INPUT_PULLUP); pinMode (clearlock -knapp, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // konfigurera meddelande lcd.print ("Hej Mr Birch"); fördröjning (2000); lcd.clear (); lcd.setCursor (0, 0); // ställa in prompt för lösenord lcd.print ("Lösenord:");

DisplayTimer = millis () + 200; }

void loop () {

Låsa();

Pos = begränsning (Pos, 0, CodeLength); // läs knappar int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);

int clButtonState = digitalRead (clearlockbutton); int enterButtonState = digitalRead (enterbutton);

lcd.setCursor (9, 0); // krav för att aktivera if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; fördröjning (250); medan (digitalRead (buttonPin1) == LOW);

}

annars om (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; fördröjning (250); medan (digitalRead (buttonPin2) == LOW);

}

annars om (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; fördröjning (250); medan (digitalRead (buttonPin3) == LOW); }

annars om (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; fördröjning (250); medan (digitalRead (buttonPin4) == LOW);

} annars if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; fördröjning (250); medan (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("åtkomst beviljad"); fördröjning (2000); lcd.clear (); lcd.print ("olåst"); } annars om (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (KOD, Str); för (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Sparningskod:"); lcd.setCursor (0, 1); lcd.print (Str);

Olåst = sant; }

annat {

lcd.clear (); lcd.print ("Åtkomst nekad."); fördröjning (2000); lcd.clear (); lcd.print ("Lösenord:");

} // upplåsningskod medan (Unlocked) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Låst"); fördröjning (2000); lcd.clear (); Olåst = falskt; SaveTimer = millis () + 30000; }}

ClearCode ();

}

annars if (clButtonState == LOW) {delay (500);

medan (clearlock -knapp == LÅG); if ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");

} }

void ClearCode () {

Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Lösenord:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Unlock () {

myServo.write (150);

} // programlåsningsknapp void Lock () {

myServo.write (50);

}

Steg 3:

när allt är gjort ska det se ut så här.

Rekommenderad: