Агуулгын хүснэгт:

Аюулгүй хайрцаг: 3 алхам
Аюулгүй хайрцаг: 3 алхам

Видео: Аюулгүй хайрцаг: 3 алхам

Видео: Аюулгүй хайрцаг: 3 алхам
Видео: 3 чудодейственных точки массажа шиацу эффективно устраняют мешки под глазами 2024, Долдугаар сарын
Anonim
Аюулгүй хайрцаг
Аюулгүй хайрцаг
Аюулгүй хайрцаг
Аюулгүй хайрцаг
Аюулгүй хайрцаг
Аюулгүй хайрцаг

Үүнийг нэгтгэж, кодыг байршуулсны дараа таны эцсийн үр дүн ийм байх ёстой.

Алхам 1: Танд хэрэгтэй зүйлс

Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс

Jumper Wires, 220 OHM эсэргүүцэл, 16x2 LCD дэлгэц, түлхэх товч, Servo мотор, Breadboard, Arduino Uno.

Алхам 2: Код

Жеймс Чинчай

#оруулах

#оруулах #оруулах

int хаяг = 0; статик гарын үсэг зураагүй урт SaveTimer; статик тэмдэггүй урт SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; статик гарын үсэггүй урт DisplayTimer; статик тэмдэггүй урт DisplayDelay = 200;

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

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

int enterbutton = 10; int clearlockbutton = 13;

Servo myServo; // бүтээх програмыг тохируулах void setup () {

myServo.attach (A1);

int EEPROMCodeOK = үнэн; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// хүчинтэй код биш EEPROMCodeOK = худал; }} Pos ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = худал; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // pinMode оролтыг тохируулах (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (enterbutton, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // мессежээр илгээсэн lcd.print -ийг тохируулах ("Сайн уу, ноён Бирч"); саатал (2000); lcd.clear (); lcd.setCursor (0, 0); // lcd.print нууц үгийн хүсэлтийг тохируулах ("Нууц үг:");

DisplayTimer = millis () + 200; }

void loop () {

Түгжих ();

Pos = хязгаарлах (Pos, 0, CodeLength); // унших товчлуурууд 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); // идэвхжүүлэх шаардлагатай бол (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; саатал (250); while (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; саатал (250); while (digitalRead (buttonPin2) == LOW);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; саатал (250); while (digitalRead (buttonPin3) == LOW); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; саатал (250); while (digitalRead (buttonPin4) == LOW);

} if if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; саатал (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("Хандалтыг зөвшөөрсөн"); саатал (2000); lcd.clear (); lcd.print ("Түгжээг тайлсан"); } if if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (CODE, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Хадгалах код:"); lcd.setCursor (0, 1); lcd.print (Str);

Түгжээг тайлсан = үнэн; }

өөр {

lcd.clear (); lcd.print ("Хандалтыг хориглосон."); саатал (2000); lcd.clear (); lcd.print ("Нууц үг:");

} // түгжээг тайлах үед код (түгжээг тайлах) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {саатал (200); lcd.clear (); lcd.print ("Түгжигдсэн"); саатал (2000); lcd.clear (); Түгжээг тайлсан = худал; SaveTimer = millis () + 30000; }}

ClearCode ();

}

else if (clButtonState == LOW) {саатал (500);

байхад (clearlockbutton == LOW); if ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

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

} }

хүчингүй ClearCode () {

Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Нууц үг:"); lcd.setCursor (0, 1); lcd.print ("");

}

хүчингүй болгох түгжээг тайлах () {

myServo.write (150);

} // програм түгжих товчлуур хүчингүй Lock () {

myServo.write (50);

}

Алхам 3:

бүх зүйлийг хийсний дараа иймэрхүү харагдах ёстой.

Зөвлөмж болгож буй: