Подключаем датчик вибрации к Arduino Uno
28 ноября в 15:33
Уроки / Arduino, Датчики
Подключаем датчик вибрации с реле к Arduino UNO. Когда датчик обнаруживает вибрацию, загорается светодиод 3 раза по 2 секунды.
Идея проекта появилась при посещении стрелкового тира. Часто, когда попадаешь в цель, нет понимания промахнулся ты или попал. Появилась необходимость включать источник света, который должен мигать 3 раза если на дальней дистанции попадаешь цель. Целью, в нашем случае была металлическая круглая деталь, прикрепленная к металлической раме.
Как это работает
Когда цель ударяется, чувствительный датчик вибрации, закрепленный на задней части целевой рамы, обнаружит вибрацию. Дальше он должен передать сигнал о том, что цель была поражена, включением света 3 раза по такому принципу:
2 сек – ВКЛ, 1 сек – ВЫКЛ / 2 сек – ВКЛ, 1 сек – ВЫКЛ / 2 сек – ВКЛ, 1 сек – ВЫКЛ
Модуль датчика питается от Arduino. С помощью Optocoupler PC817 мы делаем схему для реле отделенную от Arduino UNO.
Реле питается от внешнего источника, в этом случае 3 батареи AA.
На втором видео в конце урока вы можете увидеть, что светодиод, подключенный к реле, заменяется светом, который легко увидеть с расстояния в 200 метров.
Комплектующие
В этом проекте для подключения датчика вибрации к Arduino Uno нам понадобится довольно много деталей:
- Arduino UNO & Genuino UNO × 1
- SW-420 Модуль датчика вибрации x 1
- Оптрон Optocoupler PC817 × 1
- Транзистор BC 547 × 1
- 1N4007 – высоковольтный высокоомный номинальный диод × 1
- Реле 5V DC × 1
- 5 мм светодиод красный (второй светодиод используется для проверки контакта реле ВКЛ ВЫКЛ) × 1
- Резистор 220 Ом × 2
- Макет (на выбор) × 1
- Провода-перемычки (общий) × 1
- 4xAA (в этом проекте мы использовали держатель батареи с 3 батареями АА) × 1
Из программного обеспечения нам пригодится:
Схема соединений
Схема #1
Схема #2
Все подключения датчика вибрации, Arduino Uno и комплектующих сделайте соответственно схеме выше. Вторая схема отличается наличием реле и Optocoupler PC817.
Собираем проект
Ниже фото собранного проекта со светодиодом и с реле. Внешне всё выглядит довольно громоздко, но если захотеть, то можно устройство сделать более компактным.
Код проекта
Ниже вы можете скачать или скопировать код проекта по подключению к Ардуино датчика вибрации SW-420.
Скачать arduino-datchik-vibracii.
ino// Модуль датчика вибрации (код) Arduino с реле и внешним источником питания 5В int vib_pin=2; int led_pin=13; // код настроек для запуска один раз: void setup() { pinMode(vib_pin,INPUT); pinMode(led_pin,OUTPUT); } // основной код для запуска в цикле: void loop() { int val; val=digitalRead(vib_pin); if(val==1) { digitalWrite(led_pin,LOW); delay(2000); digitalWrite(led_pin,HIGH); delay(1000); digitalWrite(led_pin,LOW); delay(2000); digitalWrite(led_pin,HIGH); delay(1000); digitalWrite(led_pin,LOW); delay(2000); digitalWrite(led_pin,HIGH); delay(1000); } else digitalWrite(led_pin,HIGH); }
Итоговый результат
Видео #1: светодиод
Видео #2: Реле и лампа
Как мы писали ранее, идея появилась в тире. Но на примере данного урока можно сделать систему безопасности дома, когда включается свет, если нарушитель задел датчик вибрации или предмет к которому он подключен.
Дополнительно можно подключать звуковую сигнализацию – мы уже делали урок по обнаружению дыма и включению сигнализации. Из этого урока вы также можете многое почерпнуть.
Источник: https://ArduinoPlus.ru/arduino-uno-datchik-vibracii/
Датчик вибрации Ардуино
Датчики вибрации Ардуино (их еще иногда называют датчиками сигнализации) применимы для выявления внешних воздействия вибрационного характера и широко используются в противоугонных автомобильных системах, различных охранных сигнализациях, позволяют детектировать вибрации при начинающемся землетрясении. В этой статье мы рассмотрим строение датчика и схему подключения к платам Arduino.
Особенности конструкции и принцип действия датчика вибрации
Основной элемент датчика – металлическая пружина гибкой структуры, расположенная во внутренней части трубки из пластика. При наличии каких-либо воздействий на нее она начинает колебаться.
Усиление сигнала происходит за счет его подачи сначала на операционный усилитель, а потом на выход аналогового типа.
Важным элементом датчика вибрации является потенциометр, который регулирует чувствительность прибора, и позволяет устанавливать необходимый порог срабатывания.
Датчик вибрации имеет три выхода:
- Земля;
- Питание;
- Выход аналогового сигнала А0.
Находящийся на плате потенциометр позволяет настроить его чувствительность. Он представляет собой переменный резистор c сопротивлением регулируемого типа.
На плате датчика также присутствуют светодиоды, которые сигнализируют о наличии питания.
Кроме того, некоторые разновидности оснащаются цифровым выводом D0, который выдает логический ноль при достижении порогового значения уровня вибрации.
В состоянии покоя модуль находится в разомкнутом состоянии, и протекания тока по нему нет. При наличии внешних вибрационных воздействий за счет раскачивания пружины происходит кратковременное замыкание контактов. В результате происходит сработка датчика, и на выходе появляется логический 0.
Срабатывание датчика происходит в независимости от его пространственного расположения.
Технические параметры датчиков вибрации для Ардуино (могут отличаться в зависимости от модели устройства):
- Питающее напряжение от 3 до 5 В;
- Ток потребления 4-5мА;
- С наличием или отсутствием цифрового выхода;
- С наличием или отсутствием регулировки чувствительности.
Датчики могут отличаться по весу и габаритам, но обязательно содержат монтажное отверстие для крепления к плате.
Варианты применения
Наиболее актуальным применение датчиков вибрации может быть реализовано в сфере охранной сигнализации различного назначения.
За счет высокого уровня чувствительности такие устройства могут реагировать на вибрации широкого диапазона интенсивности, улавливая колебания во всех плоскостях.
Благодаря простому способу подключения, датчики вибрации применяются для реализации самых разнообразных проектов:
- Системы охраны;
- Сигнализации;
- Электронные замки;
- Детекторы движения;
- Противоугонные системы;
- Сейсмостанции;
- Детские игрушки;
- Бытовые приборы;
- Спортивный инвентарь.
Пример реализации
Схема подключения датчика вибрации к ардуино
Вариантом использования вибрационного датчика может стать охранная сигнализация, в которой при ударе о поверхность, с закрепленным на ней устройством, происходит сработка (в данном примере загорится светодиод, присоединенный к пину 13). Для проекта следует подготовить такие детали:
- плату Arduino Uno;
- датчики вибрации 801S или Logo sensors v1.5;
- макетную плату;
- соединительные провода.
Сборка схемы производится согласно рисунку. Цифровой вывод DO соединяем с цифровым пином 2.
При наличии вибраций значение сигнала многократно увеличивается и при достижении порогового значения, которое устанавливается потенциометром, на вывод DO подается логическая единица.
Мы обрабатываем эту ситуацию, считывая значение функцией digitalRead, после чего подаем с помощью функции digitalWrite 5В на порт 13 и загорается встроенный в плату светодиод.
Пример скетча
#define PIN_LED 13
#define PIN_SENSOR 2 // Пин, ккотормоу присоединен датчик вибрации
void setup() { pinMode(PIN_LED, OUTPUT);
} void loop() { int val = digitalRead(PIN_SENSOR); // Считваем значение с датчика if(val==1){ digitalWrite(PIN_LED, HIGH); // Датчик сработад – включаем светодиод }else{ digitalWrite(PIN_LED, LOW); }
}
Источник: https://ArduinoMaster.ru/datchiki-arduino/datchik-vibratsii-arduino/
Включение светодиода через кнопку в Arduino UNO
Давайте продолжим разработку простых схем на Arduino UNO и cегодня мы задействуем такой элемент управления схем, как кнопка, смонтированная на монтажной плате.
Установив ее мы сможем управлять светодиодом, также нам понадобится резистор на 10 килоом, его вы его можете купить в магазинах с радиодеталями или найти в наборе, который входит в состав комплекта Arduino Uno.
Давайте установим резистор на монтажную плату, будем использовать один разъём минусовой, он отмечен синим цветом на монтажной плате, не доходя до ножки один оставим свободный разъём, также нам понадобятся провода для земли, для минуса, проводник для подачи 5 вольт, и для управления светодиодом.
Давайте перейдём в новый проект, уберём лишнее из кода, и займемся написанием скетча.
Объявим константу целочисленное значение int и дадим имя константе keyPin равно 12, также объявим еще одну константу, тип int ledPin равно 13.
const int keyPin = 12; //12 контакт для подачи напряжения
const int ledPin = 13; //13 контакт для управления светодиодом
На 12 контакт мы будем подавать напряжение 5V, 13 контакт у нас будет питать светодиод.
В подпрограмме setup с помощью функции pinMode мы объявим для keyPin 12 разъем, определим его как Input, как входящие данные, он у нас будет на прием.
Продублирую эту строчку и заменим keyPin на ledPin, и это у нас будет исходящий, OUTPUT, разъем.
void setup()
{ pinMode(keyPin,INPUT); //12 контакт, входные данные pinMode(ledPin,OUTPUT); //13 контакт, выходные данные
}
В цикле loop напишем следующий код, по условию, если DigitalRead(), читаем цифровой разъем на двенадцатом пине подано напряжение, это константа HIDE, то соответственно мы выполним условие, передадим цифровое значение через функцию digitalWrite на ledPin на двенадцатый разъем напряжение.
void loop()
{ if(digitalRead(keyPin) ==HIGH ) { digitalWrite(ledPin,HIGH);//подаем питание в 13 контакт } else { digitalWrite(ledPin,LOW);//нет напряжения на 13 контакте }
}
Если же нет на двенадцатом пине напряжения 5V, то соответственно на светодиод подаётся LOW, ноль или отсутствие напряжения.
Вот какой текст кода должен получиться.
const int keyPin = 12; //12 контакт для подачи напряжения
const int ledPin = 13; //13 контакт для управления светодиодом void setup()
{ pinMode(keyPin,INPUT); //12 контакт, входные данные pinMode(ledPin,OUTPUT); //13 контакт, выходные данные
} void loop()
{ if(digitalRead(keyPin) ==HIGH ) { digitalWrite(ledPin,HIGH);//подаем питание в 13 контакт } else { digitalWrite(ledPin,LOW);//нет напряжения на 13 контакте }
}
Проверим наш скетч, сохраним проект на рабочий стол с любым именем, без сохранения он не запустится, вернёмся к нашей монтажной плате, зальём скетч на Arduino и займемся монтажом непосредственно проводников.
Итак мы используем чёрный проводник, который мы подключим Ground, к земле, с вот этой стороны, можно использовать возле 13 разъёма Ground, но мы его ещё задействуем.
Подключим с этой стороны ближе к микросхеме и подключим его к минусу на разъеме, соответственно минус у нас сейчас подключён к резистору.
Жёлтый проводник мы подключаем к 5 вольтам рядом с Ground на этой стороне, силовой блок, силовой разъём, где написано Power.
В 12 разъемы подключаем оранжевый проводник и подключаем его в эту точку между сопротивлением и кнопкой, после того как мы нажмем на кнопку, соответственно, если у нас подаётся напряжение, замыкается цепь, 5V приходит на оранжевый проводник на 12 разъем, то загорается светодиод на плате.
Давайте подключим зелёный светодиод, обратите внимание, как выполнены контакты, длинный контакт это плюс, короткий контакт светодиода – это минус.
Длинный разъём подключаем в 13 разъем и короткий минусовой у нас идёт в GROUND, при нажимании на кнопку нас загорается светодиод.
Аналогично со светодиодом на плате, давайте установим светодиод, вынесем его на монтажную плату, задействуем ещё несколько проводников.
Давайте вот этот тёмно-зелёный мы подключим к короткой ножке и к минусу, а проводник красный мы подключим к 13 разъему и соответственно на монтажной плате к плюсовому разъёму светодиода.
Как вы можете заметить схема практически ничем не отличается, нажимая на кнопку, загорается светодиод на монтажной плате и встроенный на плате Arduino.
Смотрите видео, как включить светодиод через кнопку в Arduino UNO
В следующих статьях мы вернёмся снова к этой схеме, сделаем так чтобы при нажатии на кнопку светодиод продолжал гореть, а при повторном нажатии выключался.
Источник: https://maxfad.ru/programmer/osnovy-arduino/567-vklyuchenie-svetodioda-cherez-knopku-v-arduino-uno.html
Подключаем мощную нагрузку к Arduino, через реле модуль
Подключить на прямую к Arduino мощную нагрузку, например лампу освещения или электронасос не получится. Микроконтроллер не обеспечивает необходимую мощность, для работы такой нагрузки. Ток, который может протекать через выходы Arduino, не превышает 10-15 мА.
На помощь приходит реле, с помощью которого можно коммутировать большой ток. К тому же, если нагрузка питается от переменного тока, например 220v, то без реле ни как вообще не обойтись. Для подключения мощных нагрузок к Arduino через реле, обычно используют реле модули.
В зависимости от количества коммутируемых нагрузок, применяют одно-, двух-, трёх-, четырёх- и более канальные реле модули.
Свои, одно и четырёх канальные модули, я купил на Aliexpress, за $ 0,5 и $ 2.09 соответственно.
Устройство реле модуля для Arduino, на примере 4-х канального модуля HL-54S V1.0.
Рассмотрим более детально устройство данного модуля, по данной схеме обычно строятся все многоканальные модули.
Принципиальная схема модуля.
Для защиты выводов Ардуино от скачков напряжения в катушке реле, применяется транзистор J3Y и оптрон 817C. Обратите внимание, сигнал с пина In подаётся на катод оптрона. Это значит, для того что бы реле замкнуло контакты, нужно подать на пинIn логический 0 (инвертированный сигнал).
Так же бывают модули, у которых сигнал с пина In подаётся на анод оптрона. В таком случае, нужно подать логическую 1 на пин In, для срабатывания реле.
Мощность нагрузки, которую могут включать / отключать модули, ограничивается установленными на плате реле.
В данном случае используются электромеханические реле Songle SRD-05VDC-SL-C, имеющее следующие характеристики:
Рабочее напряжение: 5 В
Рабочий ток катушки: 71 мА
Максимальный коммутируемый ток: 10А
Максимальное коммутируемое постоянное напряжение: 28 В
Максимальное коммутируемое переменное напряжение: 250 В
Рабочий температурный режим: от -25 до +70°C
Реле Songle SRD-05VDC-SL-C имеет 5 контактов. 1 и 2 питание реле. Группа контактов 3 и 4 представляют из себя нормально разомкнутые контакты (NO), группа контактов 3 и 5 — нормально замкнутые (NC).
Подобные реле бывают на различные напряжения: 3, 5, 6, 9, 12, 24, 48 В. В данном случае используется 5-вольтовый вариант, что позволяет питать реле-модуль непосредственно от Arduino.
На плате имеется перемычка (JDVcc), для питания реле либо от Arduino, либо от отдельного источника питания.
Пинами In1, In2, In3, In4 модуль подключается к цифровым выводам Arduino.
Подключение реле модуля HL-54S V1.0 к Arduino.
Поскольку у нас модуль с 5-вольтовыми реле, подключим его по такой схеме, питание возьмём от самой Ардуино. В примере подключу одно реле, в качестве нагрузки буду использовать лампочку на 220 в.
Контакты реле модуля | Контакты Arduino UNO |
Vcc | 5V |
Gnd | Gnd |
In1 | Можно подключить на любой цифровой пин, в примере подключено на 7 пин. К какому пину будет подключен реле модуль, будет задаваться в скетче. |
Для питания реле модуля от Arduino, перемычка должна замыкать пины «Vcc» и «JDVcc», обычно по-умолчанию она там и установлена.
Если у вас реле не на 5 вольт, питать от Ардуино модуль нельзя, питание нужно брать от отдельного источника.
Нижеприведённая схема показывает, как подключить питание модуля от отдельного источника. По такой схеме нужно подключать реле, рассчитанное на питание от более или менее чем 5 В. Для 5-вольтовых реле эта схема так же будет более предпочтительная.
При таком подключении нужно убрать перемычку между пинами «Vcc» и «JDVcc». Далее пин «JDVcc» подключить к «+» внешнего источника питания, пин «Gnd» подключить к «–» источника питания.
Пин «Gnd», который в предыдущей схеме подключался к пину «Gnd» Ардуино, в данной схеме не подключается. В моём примере, внешний источник питания 5 В, если ваше реле рассчитано на другое напряжение (3, 12 ,24 В), выбираете соответствующее внешнее питание.
Скетч для управления реле модулем через Ардуино.
Зальём в Ардуино скетч, который будет сам включать и отключать лампочку (мигалка).
int relayPin = 7; void setup() { pinMode(relayPin, OUTPUT);} void loop() { digitalWrite(relayPin, LOW); delay(5000); digitalWrite(relayPin, HIGH); delay(5000);} |
В строке int relayPin = 7; указываем номер цифрового пина Arduino, к которому подключали пин In1 реле модуля. Можно подключить на любой цифровой пин и указать его в этой строке.
В строке delay(5000); можно менять значение времени, при котором лампочка будет гореть и при котором будет погашена.
В строке digitalWrite(relayPin, LOW); указано, при подаче логического нуля (LOW), реле-модуль замкнёт контакты и лампочка будет гореть.
В строке digitalWrite(relayPin, HIGH); указано, при подаче логической единицы (HIGH), реле-модуль разомкнёт контакты и лампочка погаснет.
Если вы не знаете, при каком уровне сигнала (0 или 1) будет срабатывать ваш экземпляр модуля и нет желания разбираться как подключен оптрон на плате, можно определить экспериментально. Для этого заливаете в Ардуино немного упрощённый, вышепредставленный скетч.
Как видим, в строке digitalWrite(relayPin, LOW); оставили параметр LOW. Если реле замкнёт контакты и лампочка загорится, значит на пин In1 вам нужно подавать логический нуль, как и у меня. Если лампочка не загорится, зальём скетч, в котором заменим параметр LOW на HIGH.
Если лампочка загорится, значит на пин In1 вам нужно подавать логическую единицу. |
Результат скетча на видео.
Теперь давайте добавим в схему тактовую кнопку и при нажатии на неё, реле-модуль будет включать лампочку.
Кнопку подключаем вместе с подтягивающим резистором на 10к, который не позволит внешним наводкам влиять на работу схемы.
Заливаем скетч
int relayPin = 7; void setup() { pinMode(relayPin, OUTPUT);} void loop() { if(digitalRead(14)==HIGH)//если кнопка нажата { digitalWrite(relayPin, LOW); //на пине 7 Ардуино будео логический нуль и реле замкнёт нормально разомкнутые контакты. delay(300); } else//если кнопка не нажата { digitalWrite(relayPin, HIGH); //на пине 7 Ардуино будет логическая единица и реле разомкнёт нормально разомкнутые контакты. delay(300); }} |
В строкеif(digitalRead(14)==HIGH) задаём номер цифрового пина, на котором подключена кнопка. Подключать можно на любой свободный. В примере эта аналоговый пин A0, его же можно использовать в качестве цифрового 14 пина.
В строке delay(300); задаётся значение в миллисекундах. Это значение указывает, через какое время после нажатия или отпускание кнопки, нужно производить действия. Это защита от дребезга контактов.
Для информации! Все аналоговые входы от A0 (нумеруется как 14) до A5 (19), можно использовать как цифровые (Digital PWM).
В заключении результат выполнения скетча на видео.
Более дешёвые реле-модули могут не содержать в своей схеме оптрона, как например в моём случае с одноканальным модулем.
Схема одноканального реле-модуля. Производитель сэкономил на оптроне, из-за чего Ардуино плата лишилась гальванической развязки. Для работы такой платы, на пин In нужно подавать логический нуль.
Подключение реле модуля к Arduino Due.
Arduino Due работает от 3,3 вольт, это максимальное напряжение, которое может быть на его вводах / выводах. Если будет более высокое напряжение, плата может сгореть.
Возникает вопрос, как подключить к Arduino Due реле модуль?
Убираем перемычку JDVcc. Подключаем пин «Vcc» на плате реле модуля к пину «3,3V» Arduino. Если реле рассчитано на 5 вольт, соединяем пин «GND» платы реле модуля, с пином «GND» Arduino Due.
Пин «JDVcc» подключаем к пину «5V» на плате Arduino Due. Если реле рассчитано на другое напряжение, то питание к реле подключаем как на рисунке, в примере это 5 вольт.
Если у вас многоканальный реле модуль, пожалуйста проверьте что бы «JDVcc» подключен к одной стороне всех реле. Оптопара активируется сигналом 3,3 В, которая в свою очередь активирует транзистор, используемый для включения реле.
В одной из следующей статье расскажу как с помощью реле-модуля, автоматически включать свет, когда в помещении кто то находится.
Источник: http://radiolis.pp.ua/arduino/31-pdkljuchaem-moshhnuju-nagruzku-k-arduino-cherez-rele-modul
Механические датчики для Arduino
Количество датчиков предназначенных для совместной работы с платформой Arduino поистине не поддается исчислению. При желании можно приобрести почти какой угодно готовый модуль от банальной кнопки до детектора радиации.
Такие датчики можно приобрести как по отдельности, так и в наборах самого разнообразного размера. Один из таких сравнительно дешевых наборов можно приобрести на Али за 10 долларов. Набор поставляется в полиэтиленовом пакете, некоторые из датчиков, примерно треть были упакованы в отдельные пакеты.
Вместе с датчиками в посылку вложен отдельный листок с перечнем комплектации.
В первой части данного обзора речь пойдет о механических датчиках, реагирующих на нажатие, вибрацию, поворот и т.п. Большая часть описанных ниже датчиков подключаются, по сути, аналогично цифровой кнопке. Для примера в память микроконтроллера на плате Arduino UNO можно записать программу, которая по командам от датчика зажигает светодиод, подключенный к 13 цифровому порту, код взят из [4].
Модуль тактовой кнопки KY-004 [5]
Размер модуля 24 х 15 мм, масса 1,3 г. Помимо кнопки на плате установлен резистор, сопротивлением 10 кОм. Для подключения служит трех контактный разъем, общий вывод разъема обозначен знаком «-», центральный контакт служит для подачи напряжения питания +5В, информационный контакт обозначен «S»
В целом обычная цифровая кнопка. Применение такого модуля, пожалуй, оправдано только в схемах, где требуется подключить к микроконтроллеру 1-2 кнопки.
Датчик вибрации KY-002 [6]
Размер модуля 24 х 15 х 15 мм, масса 1,2 г. Конструктивно датчик представляет собой цилиндрическую металлическую пружину по оси, которой располагается проводник, который замыкается при резких ускорения, сообщаемых устройству [7]. Схема подключения, логика работы и маркировка контактов, аналогичны таковым у модуля тактовой кнопки KY-004
Следует иметь в виду, что этот датчик по-разному реагирует на ускорения в различных направлениях. Ускорения попрек оси датчика он воспринимает хорошо, а вот на ускорения вдоль оси датчика реагирует заметно хуже. Датчик припаян к плате маркировка контактов, на которой совпадает с таковой у двух предыдущих датчиков.
Датчик удара KY-031 [8]
Размер модуля 30 х 18 мм, масса 1,6 г. Датчик представляет собой пружинный контакт в прямоугольном пластиковом корпусе. Датчик чувствителен к ускорениям направленным поперек продольной оси датчика
Датчик поворота KY-020 [9]
Размер модуля 24 х 15 мм, масса 1,3 г. Датчик представляет собой металлический шарик, который замыкает контакты, в том случае, когда плата изменяет свое положение в пространстве примерно на 90 градусов.
Полезное: USB тестер ёмкости АКБ, тока, напряжения и мощности нагрузки
Устройство подключается полностью идентично кнопке KY-004.
Следует иметь в виду, что датчик совершенно не подходит для определения малых поворотов. В целом, как и два предыдущих механических датчика данная конструкция иногда может срабатывать не очень надежно.
Механический датчик поворота
Механический датчик поворота (Валкодер или энкодер) KY-040 [10-15].
Валкодер представляет собой группу механических контактов по последовательности замыкания, которых можно судить о скорости и направлении вращения его штока.
Непосредственно под штоком располагается кнопка, которую можно использовать нажимая на шток. К сожалению, в экземпляре, доставшемся автору, эта кнопка сильно залипает, так что о надежном срабатывании нет и речи.
Размер модуля 30 х 18 мм, высота 28 мм, масса 6,5 г. В плате имеется два крепежных отверстия, диаметром 3 мм, на расстоянии 14 мм друг от друга. Модуль имеет пять выводов:
- “GND” – общий,
- “+” – питание 5 В,
- “SW” – вывод кнопки,
- “DT” и “CLK” – выводы сигналов с валкодера.
Работа с кнопкой аналогична таковой для любой цифровой кнопки, например KY-004, или аналогичной.
С выводов “DT” и “CLK” при вращении штока устройства можно считать последовательности сигналов высокого и низкого логического уровня, сдвинутые по фазе примерно на четверть периода.
Определяя с помощью этих меандров скорость и направление вращения ручки валкодера можно например управлять яркостью светодиода [14]. Главное преимущество данного устройства перед переменным резистором, в том, что угол поворота штока валкодера ничем не ограничен.
Джойстик KY-040 [16-17]
Джойстик представляет собой комбинированный датчик из двух переменных резисторов и цифровой кнопки. Конструктивно модуль представляет собой печатную плату, на которой располагается модуль джойстика.
Ручка джойстика механически связана с парой переменных резисторов, сопротивлением 10 кОм. Отклонение ручки вызывает изменение сопротивления резисторов. При нажатии на джойстик замыкается расположенная под ним кнопка.
Впрочем, надежность срабатывания кнопки оставляет желать лучшего, особенно при больших углах отклонения ручки джойстика.
Размер модуля 40 х 26 мм, высота 28 мм, масса 9,8 г. В плате есть четыре крепежных отверстия, диаметром 3 мм, расположенных в вершинах прямоугольника со сторонами 20 и 26 мм. На плате имеется пять выводов:
- “GND” – общий,
- “+5V” питание,
- “VRx” — выводы переменного резистора кодирующего перемещение по оси X,
- “VRy” — выводы переменного резистора кодирующего перемещение по оси Y,
- “SW” — вывод кнопки.
Можно написать простую программу, которая будет при помощи светодиода, подключенного к 13 цифровому порту отображать нажатие кнопки джойстика, а информацию о сопротивлении переменных резисторов выводить в терминал последовательного порта.
- 1) https://arduino-kit.ru/catalog/id/37-v-1-nabor-datchikov
- 2) https://arduinomaster.ru/arduino-kit/nabor-arduino-sensor-kit-37-v-1/
- 3) https://mysku.ru/blog/china-stores/37299.html
- 4) http://robocraft.ru/blog/arduino/57.html
- 5) https://arduino-kit.ru/catalog/id/modul-taktovoy-knopki
- 6) https://arduino-kit.ru/catalog/id/modul-datchika-vibratsii
- 7) https://arduino-kit.ru/userfiles/image/SW-1801_a.jpg
- 8) https://arduino-kit.ru/catalog/id/modul-datchika-udara
- 9) https://arduino-kit.ru/catalog/id/modul-datchika-naklona_
- 10) https://arduino-kit.ru/catalog/id/modul-datchika-vrascheniya-_valkoder_
- 11) https://mysku.ru/blog/aliexpress/40668.html
- 12) https://datagor.ru/microcontrollers/281-chto-est-valkoder….html
- 13) http://www.zi-zi.ru/docs/modules/info_KY-040.pdf
- 14) http://cxem.net/arduino/arduino8.php
- 15) http://mypractic.ru/urok-55-rabota-s-inkrementalnym-enkoderom-v-arduino-biblioteka-encod_er-h.html
- 16) http://soltau.ru/index.php/arduino/item/384-kak-podklyuchit-dzhojstik-k-arduino
- 17) http://www.zi-zi.ru/module/module-ky023
Вторую часть обзора читайте здесь. Специально для 2 Схемы.ру — Denev
2– 5,00Загрузка…
НАЖМИТЕ ТУТ И ОТКРОЙТЕ КОММЕНТАРИИ
Источник: https://2shemi.ru/mehanicheskie-datchiki-dlya-arduino/
Магический шар на arduino. Пример работы с датчиком вибрации SW-520D
Мне недавно попался на глаза датчик SW-520D, он определяет вибрацию, а также может определить положение – только очень грубо: вертикально или горизонтально. Повертев датчик в руках, ни чего лучше, как сделать шар с предсказаниями в голову не пришло.
Работа шара очень простая, если он находится в состоянии покоя, то ни чего не происходит, но стоит потрусить шар, тогда должно появиться сообщение, подсказка к действию. В идеале нужно сделать дисплей и на нем отображать разные текстовые сообщения, но тратить на такую игрушку дисплей – это большое расточительство.
Поэтому было решено урезать ответы шара до двух – «Да» и «Нет».
Как работает датчик вибрации SW-520D
Прежде чем, начать работу над проектом нужно понять, как работает датчик вибрации, ведь на него будет завязана вся логика.
Как оказалось, датчик имеет очень простую реализацию, на столько, что при желании его можно сделать и самому: внутри цилиндра находится два электрода и металлический шарик.
При встряске или при перевороте, шарик скатывается к электродам и замыкает цепь. Все очень просто и в то же время безотказно работает.
Как выглядит датчик можно посмотреть на фотке ниже.
Визуализация ответа магического шара
Я уже написал, что для вывода ответа шара не хочу использовать дисплей, но все же ответы нужно как-то выводить, поэтому тут пришлось немного извратиться и сделать отображение ответа «Да» и «Нет» с помощью светодиодов. Из красных получилось собрать крестик, а из зеленых галочку. Что получилось можно посмотреть на картинке ниже.
Логика работы магического шара
В двух словах опишу логику работы устройства. В состоянии покоя ни чего не происходит, только мониторим порт, к которому подключен датчик SW-520D. Как только на нем появляется сигнал, начинаем анимацию – поочередно моргаем красными и зелеными светодиодами, сопровождая переключения писком зуммера.
Генерируем случайное число — 0 или 1, что и будет нашим ответом. По завершению анимации, необходимо включить соответствующие светодиоды ответа – да или нет. Когда загорелся ответ, сделаем задержку на несколько секунд, во время которой не будем обращать внимание на встряску.
Так же можно гасить светодиоды ответа после 10-15 секунд, чтобы экономить питание.
Ни чего сложного в логике нет, хочу только обратить внимание на генерацию случайного числа. Сначала у меня с этим были проблемы, после включения arduino всегда получались одни и те же последовательности ответов.
Микроконтроллер arduino не умеет генерировать случайные числа, они все псевдослучайные, поэтому повторяются. Чтобы решить эту проблему, можно внутри setup указать, чтобы микроконтроллер брал случайные числа опираясь на шумы с одного из аналоговых пинов, которые не задействованы в устройстве.
Сделать это можно вот такой функцией: randomSeed(analogRead(0));
Что использовалось в проекте:
Скетч магического шара на arduino
Все что можно было тут рассказать, я описал, остается только привести код скетча, он будет ниже, а также доступен для скачивания тут: скачать.
int pinGreen = 10; // пин для зеленой галочки int pinRed = 11; // пин для красного крестика int pinShock = 12; // пин, который определяет встряска int pinBeep = 9; // пищалка bool startAnimate = false; // флаг работы анимации int timer_sec = 0; // таймеранимации int timer_sleep = 0; // таймер простоя int oldRnd = 2; // значение активного пина, нужно для сравнения void beep(unsigned char delayms){ analogWrite(pinBeep, 10); delay(delayms); analogWrite(pinBeep, 0); delay(delayms); } void setup() { pinMode(pinGreen, OUTPUT); pinMode(pinRed, OUTPUT); pinMode(pinShock, INPUT); pinMode(pinBeep, OUTPUT); digitalWrite(pinGreen, LOW); digitalWrite(pinRed, LOW); // пусть рандомное число генерится на основе шумов на аналоговом пине A0 randomSeed(analogRead(0)); } void loop() { // если была встряска, то начинаем моргать, пищать и через 3 сек выведем результат if(digitalRead(pinShock) == HIGH) startAnimate = true; if(startAnimate){ int pinRnd = random(0, 2); // рандомное число int arrayPins[2] = {pinGreen, pinRed}; // тушим два ответа digitalWrite(pinGreen, LOW); digitalWrite(pinRed, LOW); // зажигаем случайный ответ digitalWrite(arrayPins[pinRnd], HIGH); timer_sec = timer_sec + 50; // считаем время анимации // пищим если сменился вариант if(oldRnd != pinRnd){ beep(50); oldRnd = pinRnd; timer_sec = timer_sec + 50; // добавляем еще чуток } // время вышло, выводим результат if(timer_sec > 3000){ // выключаем анимацию и обнуляем переменные startAnimate = false; timer_sec = 0; oldRnd = 2; timer_sleep = 0; delay(3000); // останавливаем все на 3 секунды } delay(40); }else{ if(timer_sleep > 20000){ // если 20 сек шар не трусят, то выключаем результат digitalWrite(pinGreen, LOW); digitalWrite(pinRed, LOW); }else{ timer_sleep = timer_sleep + 10; } } delay(10); }
Послесловие
В завершение статьи приведу видео работы устройства, электронику я собрал на небольшой плате, запитал от трех пальчиковых батареек, а корпус напечатал на 3D принтере.
P.S.
после финальной сборки я обнаружил косяк — пара светодиодов сгорело или уже были плохие, но это подпортило внешний вид законченного устройства.
Может быть когда-нибудь доберусь и впаяю новые, но пока желания нет 🙂
Источник: https://vk-book.ru/magicheskij-shar-na-arduino-primer-raboty-s-datchikom-vibracii-sw-520d/
Управление лампочкой от 220В на Arduino
Все знают, что выводы Arduino способны подавать напряжение в 3,3В или в 5В на подключенные к ним модули или датчики.
К примеру, мы можем подключить к нашему микроконтроллеру датчики температуры и влажности, и дисплей – получится миниатюрная метеостанция с выводом данных на экран; или можем измерять расстояние до различных объектов при помощи датчика ультразвука.
Однако, как быть с управлением освещением? Ведь питания от Arduino хватает на обычные светодиоды, но не на лампочки (будь то накаливания, энергосберегающие или светодиодные). Решим эту проблему, используя реле!
Начнем с того, что лампочки, о которых мы говорим в данной статье, питаются чаще всего от сети в 220В. Более того, тяжело представляется подключение лампочки напрямую к плате, ведь это будет чересчур непривычно по сравнению с подключением диодов.
Такая же проблема обычно и с подключением других устройств, которые получают питание от сети. На помощь приходит устройство под названием реле.
Стоят модули реле недорого, могут иметь от одного до нескольких каналов. Внизу на фото изображен одноканальный модуль реле, который уже готов к подключению его к Ардуино.
Данный модуль можно свободно подключать к Arduino, так как требует рабочего напряжения в 5 вольт, а вот уже коммутировать реле может несколько разных значений. Чаще всего они прописываются на корпусе: чаще всего это свободная коммутация до 10А 30V DC и 10A 250V AC.
Реле представляет собой управляемый переключатель, который по сигналу с Arduino переключает средний контакт между двумя крайними, таким образом, размыкая или замыкая цепь.
Для подключения к Arduino используются 3 контакта: два контакта питания (5В и Gnd) и контакт управления, который подключается к цифровому выводу на плате(например, к пину номер 3).
На самом реле с другой стороны есть еще три контакта, но для подключения нагрузки (например лампочки) – к двумя из них подключатся контакты управления лампочкой, а другой остается свободным (внутри самого реле он связан с заземлением).
Поэтому при включении реле, происходит замыкание контактов COM (общий) и NC (нормально замкнутый) и лампочка загорается, а при выключении реле замыкаются другие контакты – COM (общий) и NO (нормально разомкнутый). Не забывайте, что контакты лампочки должны быть подключены и к сети в 220В
Схема подключения изображена на картинке ниже:
После того, как собрали цепь, подключаем плату к компьютеру и загружаем следующий программный код (он очень простой):
const int relPin = 3; void setup() { pinMode(relPin, OUTPUT); } void loop() { digitalWrite(relPin, HIGH); delay(1000); digitalWrite(relPin, LOW); delay(3000); }
Сначала мы устанавливаем переменную relPin, модуль реле подключается к пину 3. Далее устанавливается сигнал с реле как выходной.А в цикле программы у нас включается реле, через секунду выключается и через 3 секунды снова включается
И таким же образом можно управлять и другими устройствами. Теперь вы знаете, как подключить лампочку к Arduino через реле и можете программировать различные устройства на данной основе. Например, сделать автоматическое включение света с помощью датчика движения (при наличии движения включается свет) или с помощью датчика света (когда стало темно, то включился свет) и т.д.
К минусам данного типа реле можно отнести большое потребление тока, малую живучесть при больших нагрузках и возможное залипание контактов, если была подключена большая нагрузка (например кипятильник или что-то подобное)
Таких недостатков не будет иметь твердотельное реле: там вместо катушки находится полупроводник.
На этой данная статья подходит к концу. Всем спасибо за внимание и удачной компиляции! 🙂
Купить компоненты, используемые в статье, вы можете на нашем сайте: Амперкот.ру
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
Источник: https://amperkot.ru/blog/relay-arduino/
Реле включения нагрузки по времени на arduino
Итак, задача. Нужно включать-выключать некоторую нагрузку, скажем, насос для полива растений на улице, и делать это в автоматическом режиме с гибко настраиваемыми интервалами.
Для решения этой задачи нам понадобится
- Arduino Uno – плата, которую мы программируем
- Sensor shield (или плата прототипирования) – для облегчения соединения датчиков с платой
- Провода мама-мама
- Дисплей на 2 строки по 16 символов LCD1602
- Реле переключения нагрузки
- Датчик угла поворота с кнопкой
- Блок питания 9V 1А (для тестирования можно питать устройство и по USB кабелю самой Arduino)
Принцип действия
К реле подключается полезная нагрузка, скажем, двигатель на 12 вольт или насос. Реле выступает в качестве включателя/выключателя, который управляется программно, т.е. мы в коде говорим, когда нам замкнуть контакты в реле (включить насос) или разомкнуть (выключить насос).
Датчиком угла поворота мы настраиваем через какой промежуток времени (минут) нам нужно включить реле (ON) и через какой – выключить (OFF). Сколько осталось минут до окончания текущего режима, сколько минут продлится режим включения и выключения – все это мы видим на экране LCD.
Подключение
Arduino UNO | LCD1602 | Реле | Датчик угла |
VCC 5V | VCC | + | + |
GND | GND | – | GND |
Analog 4 | SDA | ||
Analog 5 | SCL | ||
Digital 5 | SW | ||
Digital 8 | S | ||
Digital 11 | CLK | ||
Digital 12 | DT |
Полный код программы: relay-timer-project.zip
Вот и видео того, что получилось.
Комментарий к видео.
На дисплее строка Active OFF 1 говорит, что активен режим OFF – реле выключено и это продлится еще 1 минуту. Строка ON: 4 OFF: 1 говорит что устройство настроено на периодическое включение реле на 4 минуты, затем выключение на 1 минуту.
Крутим датчик угла поворота, регулируя сколько осталось до смены режима (ON/OFF). Нажав кнопку переходим в режим редактирования значения ON, далее по кнопке переходим в режим редактирования OFF, далее по кнопке возвращаемся в основной режим.
Спустя минуту после щелчка загорается светодиод на реле (реле включено) и на дисплее видим смену режима на ON, который продлится 2 минуты.
Отключаем питание устройства и включаем снова, видим, что настройки ON2 и OFF1 сохранились – при загрузке arduino прочла их из энергонезависимой памяти eeprom. Также режим изменился на OFF.
Заключение
Если все-таки хочется сделать готовое устройство:
- Плату arduino uno лучше заменить на arduino pro mini – она значительно меньше, дешевле и припаивать провода легче
- Все соединительные провода между платой и остальными устройствами нужно припаять – ржавчина теперь не повлияет на долговечность соединительных контактов
- Собрать все в корпус – на вид приличнее будет, да и защита от всяких воздействий (случайно задетого провода)
- Добавить выключатель – при покидании жилища на длительное время (при том что в этом устройстве нет необходимости в отсутствии хозяев) лучше все-таки обесточивать девайс, и делать это выключателем удобнее, чем выдергивать блок питания из розетки
Удачных экспериментов!
Возможно, вам потребуются файлы:
- Библиотека для дисплея 1602 I2c: LiquidCrystal_I2C.zip
Источник: http://www.arduino.md/relay-timer-project/
Подключение модуля управления реле к плате Ардуино. Делаем свет по хлопку
Рано или поздно каждый задумывается о реализации автоматизированного включения и выключения различных бытовых приборов окружающих нас в повседневной жизни.
Такие нагрузки, да ещё и с переменным током (АС) мы ни как не можем подключать напрямую к плате Ардуино. Поэтому для решения такой задачи существует такое устройство, как электромагнитное реле.
В данной статье мы будем рассматривать уже готовый с обвязкой модуль, на котором установлено реле, готовое к простому подключению к микроконтроллеру.
Модуль реле имеет на своей плате всего три пина для подключения. VCC – питание, GND – земля и IN – вывод для приема управляющего сигнала. Если на вашем модуле название выводов называются немного по-другому, думаю, догадаться что и где будет не трудно.
Так же мы видим на плате два светодиода. Красный светодиод загорается, когда мы подключаем питание к модулю реле. Зеленый светодиод показывает режим срабатывания реле. Если зеленый светодиод загорелся, значит, реле замкнулось и наоборот, если потух зеленый, значит, реле разомкнулось.
С другой стороны модуля мы видим клемы для подключения нагрузки.
Давай возьмем плату Ардуино. В данном случае я возьму плату Arduino Nano. Вы можете брать любую другую. И подключим обычную лампу накаливания, которая питается от сети 220V.
Как мы видим, подключение модуля реле к плате Arduino довольно простое. Вывод VCC модуля реле соединяем с пином 5V платы Arduino, а вывод GND модуля реле соединяем с выводом GND платы Ардуино.
Тем самым модуль реле мы обеспечили питанием. Пин управления IN подсоединяем к выводу D2 платы Ардуино. Нагрузка, идущая от сети 220V в виде нашей лампы, подключается к модулю реле в разрыв своей цепи одного из проводов.
Просто разрезаем один из проводов и один конец заводим в общий контакт COM, который всегда находится на среднем выводе.
А второй конец соединяем с нормально разомкнутым контактом NO, который обычно находится сверху, если смотреть на модуль “правильно”, как на картинке сверху (чтобы все цифры и надписи на самом реле были не верх ногами).
Часто клемы могут быть не подписаны, либо подписаны как на рисунке выше в виде китайских иероглифов. Это не должно вас смущать. Просто переверните модуль реле и посмотрите на него с обратной стороны.
Мы видим, что у нас есть общий контакт, нормально замкнутый и нормально разомкнутый контакты. Рисунок схемы на плате, помогает понять какой контакт замкнутый, а какой разомкнутый.
К замкнутому контакту на схеме наклонена линия, то есть, притянут общий контакт. Когда мы будем подавать слабое напряжение на модуль реле, общий контакт будет замыкаться с разомкнутым контактом.
Поэтому подсоединяйте именно к NO – нормально разомкнутому контакту.
Управлять модулем реле довольно просто, то же самое, что и зажигать обычный светодиод.
const int rele = 2; // Пин Arduino к которому подключен вывод IN реле void setup ()
{
pinMode(rele, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода }
void loop ()
{
digitalWrite(rele, HIGH); //включаем реле
delay(3000); //пауза 3 секунды
digitalWrite(rele, LOW); //выключаем реле
delay(3000); //пауза 3 секунды
}
Свет включается и выключается с паузой в 3 секунды. Всё это довольно скучно и хочется подключить какой-нибудь датчик для более интересного взаимодействия с электронным реле.
Свет по хлопку
Давайте сделаем так, чтобы наша лампа включалась и выключалась по хлопкам в ладоши. Для этого мы добавим в нашу схему датчик звука KY-037.
Цифровой вывод D0 датчика звука KY-037 соединяем с цифровым выводом D5 платы Ардуино. Вывод + датчика звука соединяем с выводом 5V платы Arduino Nano.
Вывод G датчика звука подводим к выводу GND (земле) платы Ардуино. То есть питаем датчик звука с тех же выводов Ардуино, с которых питаем и модуль реле.
В идеале конечно различные датчики и устройства надо питать отдельно от мозгов, но ардуинка вполне без сбоев тянет реле с датчиком звука. Поэтому обойдемся минимумом проводов в ходе этой статьи.
Работу с данным датчиком звука мы уже рассматривали подробно в статье Подключение и настройка датчика звука KY-037. Так что для большего понимания всего происходящего прочитайте обязательно эту статью. Там рассматриваются примеры кода для срабатывания датчика на включение и выключение света по одному хлопку.
А так же рассматривается пример кода на включение света по двум хлопкам и выключению по одному хлопку. Здесь я выложу специально код на включение света по двум хлопкам и выключению света тоже по двум хлопкам, от части, для тех, кто не смог или не захотел немного изменить имеющийся код из предыдущей статьи.
Работа минимум в два обычных хлопка более надежна, так как случаи непредсказуемых срабатываний от побочных шумов при таком подходе практически приближаются к нулю. Каждая строчка кода прокомментирована, читайте внимательно, должно стать все ясно.
const int sensorD0 = 5; // Пин Arduino к которому подключен выход D0 датчика
const int rele = 2; // Пин Arduino к которому подключено реле
int releState = LOW; // Статус реле “выключен”
long soundTime=0; // время первого хлопка
void setup ()
{
pinMode(rele, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода }
void loop ()
{
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
if (sensorValue == 1 && releState == LOW) //если порог громкости достигнут и реле было ВЫКЛЮЧЕНО
{
long diodTime=millis(); // записываем текущее время //если текущее время хлопка больше времени последнего хлопка на 100 миллисекунд //и хлопок произошел не позже чем через 1000 миллисекунд после предыдущего
//считаем такой хлопок вторым УСПЕШНЫМ if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)
Источник: http://voltom.ru/project/97-podklyuchenie-modulya-upravleniya-rele-k-plate-arduino-delaem-svet-po-khlopku
Как подключить реле к Arduino
В статье описывается такое электронное устройство как реле, кратко объясняются принципы его работы, а также рассматривается подключение модуля с реле постоянного тока к Arduino на примере управления светодиодами.
Реле – это электромеханическое устройство для замыкания и размыкания электрической цепи. В классическом варианте реле содержит электромагнит, который управляет размыканием или замыканием контактов.
Если в нормальном положении контакты реле разомкнуты, а при подаче управляющего напряжения замыкаются, такое реле называется замыкающим.
Если в нормальном состоянии контакты реле сомкнуты, а при подаче управляющего напряжения размыкаются, такой тип реле называется размыкающим.
Принцип действия замыкающего реле
Кроме того, существует множество других видов реле: переключающие, одноканальные, многоканальные, реле постоянного или переменного тока, и другие.
2Схема подключения модуля реле SRD-05VDC-SL-C
Будем использовать модуль с двумя одинаковыми реле типа SRD-05VDC-SL-C или аналогичный.
Модуль имеет 4 разъёма: силовые разъёмы K1 и K2, управляющий разъём и разъём для подачи внешнего питания (с джампером).
Реле типа SRD-05VDC-SL-C имеет три контакта для подключения нагрузки: два крайних неподвижных, а средний – переключающийся. Именно средний контакт является своего рода «ключом», который коммутирует цепи тем или иным образом.
На модуле есть подсказка, какой именно контакт реле является нормально замкнутым: маркировка “K1” и “K2” соединяет средний контакт с крайним левым (на фото).
Подача управляющего напряжения на вход IN1 или IN2 (слаботочный управляющий разъём) заставит реле скоммутировать средний контакт контактной группы K1 или K2 с правым (силовой разъём). Ток, достаточный для переключения реле – около 20 мА, цифровые выводы Arduino могут выдавать до 40 мА.
Разъёмы модуля реле SRD-05VDC-SL-C
Разъём для подачи внешнего питания используется для того, чтобы обеспечить гальваническую развязку платы Arduino и модуля реле. По умолчанию, на разъёме между штырьками JD-VCC и VCC имеется перемычка.
Когда она установлена, модуль использует для питания напряжение, поданное на вывод VCC управляющего разъёма, а плата Arduino не имеет гальванической развязки с модулем. Если нужно обеспечить гальваническую развязку модуля и Arduino, необходимо подавать питание на модуль через разъём внешнего питания.
Для этого убирается перемычка, и дополнительное питание подаётся на контакты JD-VCC и GND. При этом питание на вывод VCC управляющего разъёма также подаётся (от +5 В Arduino).
Кстати, реле может коммутировать не только слаботочную нагрузку, как в нашем примере. С помощью реле можно замыкать и размыкать достаточно большие нагрузки.
Какие именно – нужно смотреть в техническом описании к конкретному реле. Например, данное реле SRD-05VDC-SL-C может коммутировать сети с током до 10 А и напряжением до 250 В переменного тока или до 30 В постоянного тока.
То есть его можно использовать, например, для управления освещением квартиры.
Откуда получило своё название реле
От фамилии британского учёного лорда Рэлея – 28.6%От процедуры смены уставших почтовых лошадей – 57.
1%От названия физической величины измерения яркости – 0%
В данном примере нам не нужна гальваническая развязка Arduino и модуля реле, поэтому будем питать модуль напрямую от платы Arduino, а джампер оставим на своём месте. Соберём схему, как показано на рисунке. Используемые резисторы – 220 Ом, светодиоды любые.
Схема подключения модуля реле SRD-05VDC-SL-C к Arduino
3Скетч управления реле с помощью Arduino
Будем поочерёдно зажигать пару светодиодов одного цвета, и каждую секунду переключаться на пару другого цвета. Напишем вот такой скетч.
const int relay1 = 2; // пин управления 1-ым реле const int relay2 = 3; // пин управления 2-ым реле const int led1 = 4; // коммутируемый вывод – питание 1-го светодиода const int led2 = 5; // коммутируемый вывод – питание 2-го светодиода void setup() { pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); // установим оба реле в исходное положение: digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); // подадим питание на светодиоды: digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); } void loop() { // переключим оба реле: digitalWrite(relay1, LOW); digitalWrite(relay2, LOW); delay(1000); // переключим оба реле обратно: digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); delay(1000); }
Теперь загрузим скетч в память Arduino. Вот как это всё выглядит у меня. Реле громко пощёлкивают раз в секунду, а светодиоды весело моргают.
Демонстрация работы Arduino с модулем реле SRD-05VDC-SL-C
Кстати, существуют другие типы коммутирующих устройств, например, оптроны. Эти устройства не имеют механических частей, что существенно повышает их износоустойчивость и скорость срабатывания. Кроме того, они имеют меньший размер и меньшее энергопотребление.
Скачать техническое описание (datasheet) реле SRD-05VDC-SL-C
- Скачать datasheet реле SRD-05VDC-SL-C с Depositfiles.com
Источник: https://soltau.ru/index.php/arduino/item/493-kak-podklyuchit-rele-k-arduino