Мокрый центральный замок. Аквазамок.
Вот схема на транзисторах
Скетч.
#include <rdm6300.h> // Запускаем библиотеку rdm6300.h
Rdm6300 rdm6300; // Обращение к библиотеке rdm6300.h называем rdm6300
bool Latch = 0; // Определяем логическую переменную для защелки и устанавливаем ее в 0
long Key; // Определяем переменную для ключей
void setup(){ // Установки
Serial.begin(9600); // Устанавливаем скорость ком порта для передачи номеров ключей в монитор порта пк.
pinMode(7, OUTPUT); // Подключаем 7 пин ардуино
digitalWrite(7, 0); // Устанавливаем 0 вольт на пине 7
pinMode(8, OUTPUT); // Подключаем 8 пин ардуино
digitalWrite(8, 0); // Устанавливаем 0 вольт на пине 7
rdm6300.begin(2); // На 2 пине подключаем считывание через софтсериал порт rdm6300
}
void loop(){ // Зацикливаем
if (rdm6300.update()) { // Обновляем опрос rdm6300
Key = rdm6300.get_tag_id(); // Считываем код ключа и сохраняем его в переменную Key
Serial.println(Key); // Пишем в ком порт код ключа
}
//--------------------------Открытие центрального замка-------------------------------------
if (Latch == 0) { // Если переменная Latch имеет значение 0 то проходим если 1 идем дальше
if (Key == 10626030) { // Если код ключа 10626030 то проходим
digitalWrite(7, 1); // Выставляем на пине 7 логическую еденицу (+5 вольт , включаем реле открытия)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(7, 0); // Выставляем на пине 7 логический ноль (0 вольт , выключаем реле открытия)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 1; // Переменную Latch устанавливаем в 1
rdm6300.update(); // Обновляем опрос rdm6300
} }
//--------------------------Закрытие центрального замка-------------------------------------
if (Latch == 1) { // Если переменная Latch имеет значение 1 то проходим если 0 идем дальше
if (Key == 10626030) { // Если код ключа 10626030 то проходим
digitalWrite(8, 1); // Выставляем на пине 8 логическую еденицу (+5 вольт , включаем реле закрытия)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(8, 0); // Выставляем на пине 8 логический ноль (0 вольт , выключаем реле закрытия)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 0; // Переменную Latch устанавливаем в 0
rdm6300.update(); // Обновляем опрос rdm6300
} }
} // Конец цикл
Видео про сборку, схему и скетч.
Вторая часть.
Сборка на макетной плате.
Вот ссылка на скетч, схему и библиотеку.
Про версия прошивки, добавлен еще один ключ, сделаны выходы состояния и пр.
#include <rdm6300.h> // Запускаем библиотеку rdm6300.h
Rdm6300 rdm6300; // Обращение к библиотеке rdm6300.h называем rdm6300
bool Latch = 0; // Определяем логическую переменную для защелки и устанавливаем ее в 0
long Key; // Определяем переменную для ключей
void setup() { // Установки
Serial.begin(9600); // Устанавливаем скорость ком порта для передачи номеров ключей в монитор порта пк.
pinMode(4, OUTPUT); // Подключаем 4 пин ардуино
digitalWrite(4, 0); // Устанавливаем 0 вольт на пине 4
pinMode(5, OUTPUT); // Подключаем 5 пин ардуино
digitalWrite(5, 0); // Устанавливаем 0 вольт на пине 5
pinMode(6, OUTPUT); // Подключаем 6 пин ардуино
digitalWrite(6, 0); // Устанавливаем 0 вольт на пине 6
pinMode(7, OUTPUT); // Подключаем 7 пин ардуино
digitalWrite(7, 0); // Устанавливаем 0 вольт на пине 7
pinMode(8, OUTPUT); // Подключаем 8 пин ардуино
digitalWrite(8, 0); // Устанавливаем 0 вольт на пине 8
pinMode(9, OUTPUT); // Подключаем 9 пин ардуино
digitalWrite(9, 0); // Устанавливаем 0 вольт на пине 9
pinMode(10, OUTPUT); // Подключаем 10 пин ардуино
digitalWrite(10, 0); // Устанавливаем 0 вольт на пине 10
rdm6300.begin(2); // На 2 пине подключаем считывание через софтсериал порт rdm6300
}
void loop() { // Входим в цикл
//-------------------------- Выход состояния центрального замка открытие -------------------------------------
if (Latch == 0) { // Если переменная Latch имеет значение 0 то заходим
digitalWrite(9, 1); // Выставляем на пине 9 логическую еденицу
digitalWrite(10, 0); // Выставляем на пине 10 логический 0
}
//--------------------------Выход состояния центрального замка закрытие-------------------------------------
if (Latch == 1) { // Если переменная Latch имеет значение 1 то заходим
digitalWrite(10, 1); // Выставляем на пине 10 логическую еденицу
digitalWrite(9, 0); // Выставляем на пине 9 логический 0
}
//--------------------------------------------------------------------------------------------------------
if (rdm6300.update()) { // Обновляем опрос rdm6300
Key = rdm6300.get_tag_id(); // Считываем код ключа и сохраняем его в переменную Key
Serial.println(Key); // Пишем в ком порт код ключа
}
//--------------------------Открытие центрального замка 1 ключ-------------------------------------
if (Latch == 0) { // Если переменная Latch имеет значение 0 то проходим если 1 идем дальше
if (Key == 10626030) { // Если код ключа 10626030 то проходим
digitalWrite(5, 1); // Выставляем на пине 5 логическую еденицу (+5 вольт , включаем реле открытия)
digitalWrite(8, 1); // Выставляем на пине 8 логическую еденицу (+5 вольт , включаем реле датчика)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(5, 0); // Выставляем на пине 5 логический ноль (0 вольт , выключаем реле открытия)
delay(30000); // Ждем 20 секунд секунды для различных дейсвий
digitalWrite(8, 0); // Выставляем на пине 8 логический ноль (0 вольт , выключаем реле датчика)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 1; // Переменную Latch устанавливаем в 1
rdm6300.update(); // Обновляем опрос rdm6300
}
}
//--------------------------Закрытие центрального замка 1 ключ-------------------------------------
if (Latch == 1) { // Если переменная Latch имеет значение 1 то проходим если 0 идем дальше
if (Key == 10626030) { // Если код ключа 10626030 то проходим
digitalWrite(6, 1); // Выставляем на пине 6 логическую еденицу (+5 вольт , включаем реле закрытия)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(6, 0); // Выставляем на пине 6 логический ноль (0 вольт , выключаем реле закрытия)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 0; // Переменную Latch устанавливаем в 0
rdm6300.update(); // Обновляем опрос rdm6300
}
}
//--------------------------Открытие центрального замка 2 ключ-------------------------------------
if (Latch == 0) { // Если переменная Latch имеет значение 0 то проходим если 1 идем дальше
if (Key == 1062603) { // Если код ключа 1062603 то проходим
digitalWrite(7, 1); // Выставляем на пине 7 логическую еденицу (+5 вольт , включаем реле открытия)
digitalWrite(5, 1); // Выставляем на пине 5 логическую еденицу (+5 вольт , включаем реле датчика)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(7, 0); // Выставляем на пине 7 логический ноль (0 вольт , выключаем реле открытия)
delay(20000); // Ждем 20 секунд секунды для различных дейсвий
digitalWrite(5, 0); // Выставляем на пине 5 логический ноль (0 вольт , выключаем реле датчика)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 1; // Переменную Latch устанавливаем в 1
rdm6300.update(); // Обновляем опрос rdm6300
}
}
//--------------------------Закрытие центрального замка 2 ключ-------------------------------------
if (Latch == 1) { // Если переменная Latch имеет значение 1 то проходим если 0 идем дальше
if (Key == 1062603) { // Если код ключа 1062603 то проходим
digitalWrite(8, 1); // Выставляем на пине 8 логическую еденицу (+5 вольт , включаем реле закрытия)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(8, 0); // Выставляем на пине 8 логический ноль (0 вольт , выключаем реле закрытия)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
Latch = 0; // Переменную Latch устанавливаем в 0
rdm6300.update(); // Обновляем опрос rdm6300
}
}
} // Конец цикла
Скетч
Скетч только с открытием. AKVAZAMOKmini
#include <rdm6300.h> // Запускаем библиотеку rdm6300.h
Rdm6300 rdm6300; // Обращение к библиотеке rdm6300.h называем rdm6300
long Key; // Определяем переменную для ключей
void setup() { // Установки
Serial.begin(9600); // Устанавливаем скорость ком порта для передачи номеров ключей в монитор порта пк.
pinMode(7, OUTPUT); // Подключаем 7 пин ардуино
digitalWrite(7, 0); // Устанавливаем 0 вольт на пине 7
rdm6300.begin(2); // На 2 пине подключаем считывание через софтсериал порт rdm6300
}
void loop() { // Зацикливаем
if (rdm6300.update()) { // Обновляем опрос rdm6300
Key = rdm6300.get_tag_id(); // Считываем код ключа и сохраняем его в переменную Key
Serial.println(Key); // Пишем в ком порт код ключа
}
//--------------------------Открытие центрального замка-------------------------------------
if (Key == 10626030) { // Если код ключа 10626030 то проходим
digitalWrite(7, 1); // Выставляем на пине 7 логическую еденицу (+5 вольт , включаем реле открытия)
delay(800); // Ждем 0.8 секунды для сработки реле
digitalWrite(7, 0); // Выставляем на пине 7 логический ноль (0 вольт , выключаем реле открытия)
Key = 0; // Переменную Key устанавливаем в 0 (сбрасываем код ключа)
rdm6300.update(); // Обновляем опрос rdm6300
}
} // Конец цикла
Скетч AKVAZAMOKmini
Комментарии
Отправить комментарий