Мазмуну:
Video: Коопсуз куту: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Кодду жүктөп, жыйынтыктагандан кийин бул сиздин акыркы натыйжаңыз болушу керек.
1 -кадам: Сизге керектүү нерселер
Jumper Wires, 220 OHM каршылыгы, 16x2 LCD экраны, баскычтар, Servo Motor, 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 = 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 (); // 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); // messaged lcd.printти орнотуу ("Саламатсызбы Берч мырза"); кечигүү (2000); lcd.clear (); lcd.setCursor (0, 0); // сырсөз lcd.print ("Сырсөз:") сурамын орнотуу;
DisplayTimer = millis () + 200; }
void loop () {
Lock ();
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);
} else 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 ("Кулпусу ачылган"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (CODE, Str); үчүн (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 ("Сырсөз:");
} // кодду ачуу учурунда (Кулпусу ачылган) {Кулпуну ачуу (); if (digitalRead (clearlockbutton) == LOW) {кечигүү (200); lcd.clear (); lcd.print ("Кулпуланган"); кечигүү (2000); lcd.clear (); Кулпусу ачылган = жалган; SaveTimer = millis () + 30000; }}
ClearCode ();
}
else if (clButtonState == LOW) {кечиктирүү (500);
while (clearlockbutton == LOW); if ((миллис () - SaveTimer)> 4500) {
}
ClearCode ();
}
if ((long) (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);
} // программаны кулпулоо баскычы void Lock () {
myServo.write (50);
}
3 -кадам:
бүткөндөн кийин, ал ушундай көрүнүшү керек.
Сунушталууда:
RGB куту сааты: 6 кадам (сүрөттөр менен)
RGB куту сааты: Бул саат жана декоративдүү RGB Led Matrix Бул i2C байланышын колдонуу менен Colorduino Shield жана NodeMCU v3 Board тарабынан көзөмөлдөнөт. Blynk колдонмосу менен ойготкучту, түстөрдү жана башка нерселерди өзгөртө аласыз. ESP8266
Кантип портативдүү акылдуу күзгү түзүү/куту айкалышын түзүү: 8 кадам
Кантип портативдүү акылдуу күзгү түзүү/куту айкалыштыруу: Дэвистеги капстоюнум үчүн акыркы долбоор катары & Элкинс колледжи, мен порт катары иштей турган чоң күзгү жана малина пи жана сыйкырдуу күзгү программалык платформасын колдонуу менен бирге саякат кутусун иштеп чыгууну чечтим
UV-C дезинфекциялоочу куту-Негизги версия үйрөткүчү: 11 кадам (сүрөттөр менен)
UV-C дезинфекциялоочу кутуча-Негизги версия үйрөткүчү: Стивен Фенг, Шахрил Ибрахим жана Санни Шарма, 6-апрель, 2020 Шерилге өзгөчө ыраазычылык билдирүү үчүн Бул нускаманын Google doc версиясын караңыз https://docs.google. com/document/d/1My3Jf1Ugp5K4MV … WarningUV-C жарыгы
АВТО-ТАШТАГЫ КУТУ: 5 кадам
AUTO-TRASH BOX: Arduino аркылуу авто сенсор таштанды кутусун кантип жасоо керек // ///////////////////////////////// ///////////////////////////////////////////////////////// Реферанс: https: //www.instructables.com/id/TRASH-BOT-Arduino
Телефонуңузду жана гаджетти кантип коопсуз жана коопсуз кылуу керек: 4 кадам
Телефонуңузду жана гаджетти кантип коопсуз жана коопсуз кылуу керек: дээрлик бардыгын жоготкон адамдан (албетте, апыртылган) .Ошондуктан, моюнга алуу убактысы, менин мурунку сүйлөмүм айткандай, мен абдан олдоксонмун. Эгерде мага бир нерсе байланып калбаса, анда мен аны туура эмес жайгаштырып жиберүү мүмкүнчүлүгү чоң, унутуу бир жерде