Хлоп-реле

Проекты на Arduino и Slot Shield

Управлять электроприборами не вставая с дивана легко и просто. Щелкнул пальцами и включил свет, хлопнул в ладоши — вентилятор заработал. Не жизнь, а праздник.

Всё что нужно — Iskra Neo (российский аналог Arduino Leonardo), датчик шума (он и будет определять хлопки и щелчки), мини-реле (через него подключим любимый торшер) и кнопка, а то вдруг шуметь не захочется.

Этот девайс мы использовали в видеообзоре датчика шума.

Видеоинструкция

Что потребуется

Полный сет компонентов проекта. В сет входят:

Внимание!

Работа с высоким напряжением опасна для вашего здоровья и жизни. На плате существуют области, прикосновение к которым приведёт к поражению электрическим током. Это винты контактных колодок и места пайки выводов контактных колодок и реле. Не работайте с платой, если она подключена к бытовой сети. Для готового устройства используйте изолированный корпус.

Если вы сомневаетесь как подключить к реле электроприбор, работающий от общей сети 220 В и у вас есть сомнения, вопросы на тему того как это делается, остановитесь: вы можете устроить пожар или убить себя. Убедитесь, что у вас в голове — кристальное понимание принципа работы устройства и опасностей, которые связаны с высоким напряжением.

Как собрать

Установите Troyka Slot Shield на Iskra Neo

Возьмите датчик шума, поверните его на 90 градусов против часовой стрелки и вставьте в верхний левый слот.

Вставьте светодиодную кнопку в центральный нижний слот, повернув её на 90 градусов против часовой стрелки.

Вставьте мини-реле в верхний правый слот.

Скетч

Прошейте контроллер скетчем через Arduino IDE.

clap-relay.ino
// номер пина кнопки
#define BUTTON_PIN        12
// номер пина светодиода
#define LED_PIN           A1
// номер пина реле
#define RELAY_PIN         4
// номер пина датчика уровня шума
#define NOISE_PIN      A4
// порог срабатывания датчика шума
#define SENSITIVITY_NOISE 200
 
// состояния системы
enum State
{
    OFF,
    ON,
};
// объявлеем переменную state
State state;
 
void setup()
{
  // система выключена
  state = OFF;
  pinMode(LED_PIN, OUTPUT);
  pinMode(RELAY_PIN, OUTPUT);
}
 
void loop()
{
  // считываем текущее показание уровня шума
  // считываем текущее состояние кнопки
  int valNoise = analogRead(NOISE_PIN);
  bool valButton = digitalRead(BUTTON_PIN);
  // если показания шума превышают норму или нажата кнопка
  // и система была выключена
  if ((valNoise > SENSITIVITY_NOISE || !valButton) && state == OFF) {
    // включаем реле и переводим систему в режим «ON»
    digitalWrite(RELAY_PIN, HIGH);
    digitalWrite(LED_PIN, HIGH);
    state = ON;
    delay(500);
  } else if ((valNoise > SENSITIVITY_NOISE || !valButton) && state == ON) {
    // если показания шума превышают норму или нажата кнопка
    // и система была выключена
    // выключаем реле и переводим систему в режим «OFF»
    digitalWrite(RELAY_PIN, LOW);
    digitalWrite(LED_PIN, LOW);
    state = OFF;
    delay(500);
  }
}

Что дальше?

Хотите собрать другой девайс? Выберите своё будущее устройство из списка проектов на Slot Shield.