-
Публикации
7 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Oksymoron
-
-
1 минуту назад, svchekalin сказал:Какую проблему ? Очистить буфер или ребутнуть контроллер ?
сначала сбросить буфер а если не поможет тогда сделать рестарт контроллера
-
-
Сори вот скетч
Скрытый текст//* is to validate password короче чтобы войти //# is to reset password attempt Ну чтоб сделать сброс //внимаение ! если выдает ошибки качаем все библиотеки что указанны ниже ! #include <SPI.h> // скачайте эту библиотеку ! #include <MFRC522.h> // скачайте эту библиотеку ! #include <Password.h> // скачайте эту библиотеку ! #include <Keypad.h> // скачайте эту библиотеку ! #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C / reate MFRC522 instance. unsigned long uidDec, uidDecTemp; int door =8; int key = A5; int green = A1; int red = A2; Password password = Password( "DDCBC97" ); const byte ROWS = 4; // Four rows const byte COLS = 4; // columns // Define the Keymap char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = { 0,A0,7,6 };// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins. byte colPins[COLS] = { 5,4,3,2, };// Connect keypad COL0, COL1 and COL2 to these Arduino pins. // Create the Keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { pinMode (door,OUTPUT); pinMode (key,INPUT); pinMode (green,OUTPUT); pinMode (red,OUTPUT); Serial.begin(9600); SPI.begin(); // инициализация SPI / Init SPI bus. mfrc522.PCD_Init(); // инициализация MFRC522 / Init MFRC522 card. keypad.addEventListener(keypadEvent); //add an event listener for this keypad Serial.println(""); Serial.println(""); Serial.println(" ======================== "); Serial.println(" Waiting for card... "); } void loop() { { keypad.getKey(); } if (digitalRead(key) == HIGH) { digitalWrite(door,HIGH); Serial.println("Open ==>"); digitalWrite(green, HIGH); delay(100); digitalWrite(red, HIGH); delay(100); digitalWrite(door,LOW); delay(100); digitalWrite(green, LOW); delay(100); digitalWrite(green, HIGH); delay(50); digitalWrite(red, HIGH); delay(50); digitalWrite(door,LOW); delay(50); digitalWrite(green, LOW); digitalWrite(green, HIGH); delay(50); digitalWrite(red, HIGH); delay(50); digitalWrite(door,LOW); delay(50); digitalWrite(green, LOW); delay(50); digitalWrite(green, HIGH); delay(50); digitalWrite(red, HIGH); delay(50); digitalWrite(green, LOW); delay(50); digitalWrite(red,LOW); digitalWrite(door,LOW); } // Поиск новой карточки / Look for new cards. if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Выбор карточки / Select one of the cards. if ( ! mfrc522.PICC_ReadCardSerial()) { return; } uidDec = 0; // Выдача серийного номера карточки "UID". for (byte i = 0; i < mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec*256+uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); if (uidDec == 384627541) // если "UID" номер совпал. { // включим светодиод. digitalWrite(door,HIGH); // Печатаем в Serial монитор . Serial.println("Open ==>"); } // также и с другими номерами карт. else if (uidDec == 959884118) { Serial.println("Hi Sergey"); } else if (uidDec == 695670870) { Serial.println("Hi Peter"); } else // если "UID" номер карты не совпал. { Serial.println(" unknown card"); delay(10000); } Serial.println("====================================="); delay(3000); // пауза 3 секунды. digitalWrite(door,LOW); // и выключим все светодиоды. } //take care of some special events void keypadEvent(KeypadEvent eKey){ switch (keypad.getState()){ case PRESSED: Serial.print("Pressed: "); Serial.println(eKey); digitalWrite(green,HIGH); digitalWrite(red,HIGH); delay(50); digitalWrite(green,LOW); digitalWrite(red,LOW); switch (eKey){ case '*': checkPassword(); break; case '#': password.reset(); break; default: password.append(eKey); } } } void checkPassword(){ if (password.evaluate()){ Serial.println("Success"); digitalWrite(door,HIGH); // открываем дверь digitalWrite(green, HIGH); //включаем выключаем светодиоды =) моргаем короче delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); digitalWrite(green, HIGH); delay(200); digitalWrite(green,LOW); delay(200); Serial.println("Open ==>"); digitalWrite(door,LOW); }else{ Serial.println("Wrong"); digitalWrite(red, HIGH); // моргаем красным светодиодом (долго, а потомучто нефиг взламывать мой замок ! это затруднит взлом ) delay(400); digitalWrite(red,LOW); delay(400); digitalWrite(red, HIGH); delay(400); digitalWrite(red,LOW); delay(400); digitalWrite(red, HIGH); delay(400); digitalWrite(red,LOW); delay(400); digitalWrite(red, HIGH); delay(400); digitalWrite(red,LOW); delay(400); digitalWrite(red, HIGH); delay(400); digitalWrite(red,LOW); delay(400); } }
-
Доброго времени суток! Прошу помощи с доработкой кодового замка, замок работает на ура, но при вводе правильного пароля реле срабатывает и отключается а если нажать еще рас * тогда реле так же сработает. Каким способом можно организовать программный сброс который включиться после нажатия любой кнопки клавиатуры и сбросит arduino по истечению 10 сек. За ранее благодарю.
-
В 24.11.2015 в 22:58, Kitsum сказал:#include <avr/wdt.h>
дай плиз ссылку на библиотеку.
[решено] Доработка кодового замка
в Arduino
Опубликовано: · Жалоба на ответ
@Kitsum большое спасибо за помощь!