Привет всем. Сейчас вы узнаете как сделать электронный дверной замок, используя микроконтроллер Arduino и небольшой соленоид для дверного замка. Соленоид дверного замка на 12 В имеет металлическую задвижку с косым срезом и монтажный кронштейн. По сути, это электрический замок, предназначенный для обычного шкафа или двери. При подаче напряжения задвижка втягивается внутрь, чтобы убрать блокировку и дверь можно было открыть. Детали, которые понадобятся для изготовления:
- Arduino UNO R3
- Электромагнитный замок на 12 В
- Кнопка с желтым светодиодом Grove
- IRF9540 P-канальный силовой полевой МОП-транзистор
- Оптопара PC817
Настройка оборудования Arduino
Это схема модуля Arduino, который нужно настроить.
В схеме есть один 5-контактный разъем (CN1) как для кнопки Grove Yellow LED, так и для модуля привода соленоида дверного замка. Этот разъем также обеспечивает напряжение 5 В постоянного тока для модуля Grove, от встроенного стабилизатора 5 В на плате Arduino UNO. Красный индикатор (LED1) это встроенный в Arduino светодиод D13, который является дополнительным компонентом.
Устройство может питаться от обычной батареи 6F22 9 В или аналогичного источника питания через входной порт разъема БП Ардуино.
Настройка драйвера соленоида
Следующее, что нужно настроить, – это блок соленоида дверного замка, который состоит из самого электромагнита и схемы его привода.
Это переключатель нагрузки на основе P-канального силового MOSFET-транзистора с гальванически изолированным входным портом. Здесь оптопара PC817 (PC1) управляется сигналом от контакта D9 Arduino UNO, а соленоид дверного замка, подключенный к CN2, управляется силовым полевым МОП-транзистором IRF9540 (T1). Зеленый светодиод – индикатор состояния дверного замка, который загорается когда тот открыт (отпущен). Диод D1 (1N4007 или MUR340) должен быть включен в схему, поскольку он обеспечивает защиту от всплеска ЭДС, который возникает при выключении электромагнитного замка.
Схема должна питаться от независимого от сети 220 В блока питания, который способен обеспечивать ток не менее 1 А при 12 В постоянного тока.
Выключатель нагрузки – это электронный компонент, не имеющий движущихся частей, который работает как реле. Обычно пара транзисторов действует как переключающий элемент, один из которых является P-канальным полевым МОП-транзистором, а другой – N-канальным полевым МОП-транзистором или малосигнальным NPN.
Другими словами, переключатель нагрузки состоит из двух основных элементов – транзистора и механизма управления включением / выключением. Транзистор чаще всего представляет собой силовой МОП-транзистор с P-каналом, который передает напряжение на заданную нагрузку, когда транзистор включен. Существует несколько способов реализации механизма переключения нагрузки, но здесь сигнал высокого логического уровня (H) от схемы Arduino используется для включения MOSFET через оптопару.
При высоком уровне входного сигнала (H) оптопара включается, затвор проходного транзистора замыкается на землю, а переключатель нагрузки включается, если шина входного напряжения выше, чем пороговое напряжение проходного транзистора PMOS. Когда на входе низкий логический уровень (L), транзистор выключен, а его затвор подтягивается до Vin.
Вот характеристики используемого здесь дверного замка:
- Рабочее напряжение: 12 В
- Потребление тока: 750 мА
- Сопротивление катушки: 16 Ом
- Рассчитан на активацию длительностью 1-10 секунд
- Включение тока разблокирует, а выключение заблокирует дверь
Желтая светодиодная кнопка Grove – это кнопочный электронный переключатель с подсветкой.
В этом модуле полезно использовать светодиод для отображения состояния кнопки. Для управления светодиодом на плате подключен малосигнальный N-канальный полевой МОП-транзистор. Вот принципиальная схема и подключение модуля кнопок Grove.
Программное обеспечение Ардуино
Есть несколько способов реализовать функцию управления дверным замком с помощью Arduino. Вот полный код, рекомендуем сначала протестировать его, а затем при необходимости настроить для вашего проекта.
const int KEY_PIN = 8;//IN::Grove
SIG2 (BUTTON)
const int DRIVE_PIN = 9;//OUT::MOSFET
CKT
const int GLED_PIN = 13;//Debug
LED::Onboard
const int YLED_PIN = 12;//OUT::Grove
SIG1 (LED)
int buttonPushCounter = 0;
int buttonState = 0;
int lastButtonState = 0;
bool lockOn = false;
unsigned long previousMillis = 0;
const unsigned long interval =
10000;//Lock Release Time::10s
const unsigned long YLED_PINInterval =
2000;
void setup()
{
pinMode(KEY_PIN, INPUT_PULLUP);//PULL_UP OPTIONAL::See Notes!
pinMode(GLED_PIN, OUTPUT);
pinMode(YLED_PIN, OUTPUT);
pinMode(DRIVE_PIN, OUTPUT);
digitalWrite(DRIVE_PIN, LOW);
}
void loop() {
buttonState = digitalRead(KEY_PIN);
unsigned long currentMillis = millis();
if ( buttonState == LOW )
{
previousMillis = currentMillis;
digitalWrite(DRIVE_PIN, HIGH);
digitalWrite(GLED_PIN, HIGH);
digitalWrite(YLED_PIN, LOW);
lockOn = true;
}
if ( lockOn )
{
if (currentMillis – previousMillis >= interval – YLED_PINInterval )
digitalWrite(YLED_PIN, (millis() / 300) % 2);//Lock Alert!
if (currentMillis – previousMillis >= interval)
{
digitalWrite(DRIVE_PIN, LOW);
digitalWrite(GLED_PIN, LOW);
digitalWrite(YLED_PIN, LOW);
lockOn = false;
}
}
}
Если кнопка нажата, соленоид замка двери активируется (замок втягивается) на 10 секунд. Желтый светодиод внутри кнопки всегда остается в выключенном состоянии, но он начинает мигать некоторое время непосредственно перед окончанием 10-секундного периода времени. Это чтобы пользователь знал, что блокировка будет снова активирована скоро.
Библиотека Arduino может улучшить использование одной кнопки для ввода. Она помогает использовать цифровой входной вывод с одной кнопкой для обнаружения некоторых типичных событий нажатия кнопки, таких как одиночные щелчки, двойные щелчки и длительное / кратковременное нажатие, что позволяет использовать одну и ту же кнопку для нескольких функций и упрощает настройку оборудования.
Проект можно модифицировать как дверной замок с секретным кодом. В этом случае соленоид дверного замка активируется только тогда, когда секретная комбинация вводится с помощью одной кнопки (короткое и долгое нажатие) или нескольких кнопок (секретный пароль).