Комментарии 51
Для подавления дребезга контактов кнопки лучше подключать через RC цепочку.
-1
Насколько я знаю, digitalWrite(relay_pin, HIGH) так работает везде.
И да, мне кажется хорошей практикой запитывать реле отдельно, а не подавать питание с Ардуинки. Оттуда только сигнал на коммутацию.
И да, мне кажется хорошей практикой запитывать реле отдельно, а не подавать питание с Ардуинки. Оттуда только сигнал на коммутацию.
0
И да, мне кажется хорошей практикой запитывать реле отдельно, а не подавать питание с Ардуинки. Оттуда только сигнал на коммутацию.
тогда реле не будет срабатывать. земля реле и ардуины должна быть общей.
0
Земля да, а вот VCC лучше брать напрямую с БП, потому что релюшки кушают довольно большой ток, у меня от 2 реле проседало напряжение на USB 2.0. Там есть отдельные входы IN и отдельные VCC.
+1
Нет, не должна. Убираете пин с реле и запитываете полностью отдельно. Вот картинка: http://howtomechatronics.com/wp-content/uploads/2015/09/Arduino-Relay-Module-Circuit-Diagram.png отсюда: http://howtomechatronics.com/tutorials/arduino/control-high-voltage-devices-arduino-relay-tutorial/ По ссылке подробно расписаны варианты. Собственно, я своей малинкой именно в таком виде управляю релешками.
0
На схема подключения синий провод 220V от вилки не дошел до реле? (Или я как то не так читаю схему)
0
Не боитесь, что рано или поздно использованное реле залипнет? На ГТ неоднократно уже писали, что данный модуль мягко говоря ненадежен и лучше использовать твердотельные реле.
0
Почему Вы решили использовать алюминиевые провода для высоковольтной части?
0
думаю, выбиралось из того, что было — реле все равно сдохнет раньше, чем пойдут проблемы из-за алюминиевого провода…
0
Никаких причин для выбора именно алюминиевых проводов не было. Купил то, что было и подходило по силе тока. Сделал так, чтобы алюминиевые и медные провода друг друга не касались.
0
Сорри, что не совсем по теме
Подскажите, где почитать о том, как сделать на Ардуино управление светодиодными лентами через энкодер с высокочастотным ШИМ? Гугль много что выдает, но без опыта не отделить зерна от плевел… А покупать тупо диммер с пультом – совсем не по гиковски. Понимаю, что задача простейшая, но не хочется учиться на своих обшибках
Подскажите, где почитать о том, как сделать на Ардуино управление светодиодными лентами через энкодер с высокочастотным ШИМ? Гугль много что выдает, но без опыта не отделить зерна от плевел… А покупать тупо диммер с пультом – совсем не по гиковски. Понимаю, что задача простейшая, но не хочется учиться на своих обшибках
0
1) Гуглим по фразе «ШИМ на Ардуино» — вникаем в написание прошивки с ШИМ
2) Гуглим по фразе «Светодиодная лента и ардуино» — вникаем в схемотехнику силовой части
3) Гуглим по фразе «Энкодер к ардуино» — вникаем как обрабатывать поворот энкодера
4) Напрягаем мозг и собираем все это в кучу
5) PROFIT!
2) Гуглим по фразе «Светодиодная лента и ардуино» — вникаем в схемотехнику силовой части
3) Гуглим по фразе «Энкодер к ардуино» — вникаем как обрабатывать поворот энкодера
4) Напрягаем мозг и собираем все это в кучу
5) PROFIT!
+1
Естественно я все это гуглил, как уже сказал, но опять же – не хочется учиться на своих ошибках. Может для высокочастотного ШИМ лучше купить отдельный ШИМ-модуль для управления двигателями и светодиодами, может получится обойтись программными методами
0
Буквально недавно делал управление двумя лентами с одной ардуины. Чтобы получить ШИМ с частотой около 31кГц на пинах 9 и 10 всего-то надо в setup() добавить
TCCR1B = (TCCR1B & 0b11111000) | 0x01;
После этого использовать обычный analogWrite().
Далее, через резисторы в 100 Ом я эти пины подключил к плате, которую сделал для управления двумя каналами. Плата — драйвер IR4427S, два транзистора + обвязка.
Схема вот:
Выглядит так:
Питается ардуина и плата от 12В, которые нужны светодиодной ленте. Драйвер нужен, чтобы транзисторы адекватно работали на такой частоте. Сами платы не буду выкладывать, т.к. они специфичного форм-фактора (стыкуются с другой однослойной платой), при этом я перепутал верх и низ, и стыкуется она вверх ногами. На функционал не влияет, просто некрасиво. Транзисторы вот пришлось загибать.
TCCR1B = (TCCR1B & 0b11111000) | 0x01;
После этого использовать обычный analogWrite().
Далее, через резисторы в 100 Ом я эти пины подключил к плате, которую сделал для управления двумя каналами. Плата — драйвер IR4427S, два транзистора + обвязка.
Схема вот:
Выглядит так:
Питается ардуина и плата от 12В, которые нужны светодиодной ленте. Драйвер нужен, чтобы транзисторы адекватно работали на такой частоте. Сами платы не буду выкладывать, т.к. они специфичного форм-фактора (стыкуются с другой однослойной платой), при этом я перепутал верх и низ, и стыкуется она вверх ногами. На функционал не влияет, просто некрасиво. Транзисторы вот пришлось загибать.
+1
Схемы пропали, дайте просто ссылки на изображения в виде текста без тегов
0
Таки да. Хотя в превью все было на месте.
https://habrastorage.org/files/722/8ab/724/7228ab7249e84d96a3ef1cde4b188fea.jpg
https://habrastorage.org/files/1d8/495/af2/1d8495af213546a5b0c53d6b8e28f754.jpg
https://habrastorage.org/files/722/8ab/724/7228ab7249e84d96a3ef1cde4b188fea.jpg
https://habrastorage.org/files/1d8/495/af2/1d8495af213546a5b0c53d6b8e28f754.jpg
+1
Спасибо, очень интересно!
0
Вы знаете, чем писать то что Вам надо на Arduino, сделайте лучше на Attiny. Понимание процесса у Вас будет в 100 раз лучше, объем кода в 10 раз меньше, цена устройства так же упадет. Я вот по этим статьям учился, ну и даташит конечно. На много интереснее Arduino, полный контроль, настоящий geekway.
0
Про основы управления светодиодом/светодиодной лентой можно узнать здесь. Там рассказано про схему мигающего светодиода, но на ее основе можно подключить и светодиодную ленту.
+1
Вы же можете переснять видео снова и заменить, верно?
0
А почему Ардуино, а не ESP? И если уж Ардуино, то почему Leonardo, а не Mini Pro?
+1
Mini pro вроде как не умеет работать в виде USB HID устройства. А вообще, взл Leonardo, потому что только она была в наличии при покупке (ну и Uno).
0
А еще можно было бы снабдить датчиками тока, например на эффекте Холла. Получилось бы куда интереснее.
0
То, что реле у вас по умочанию замкнуто, потенциально опасно. В случае пропадания напряжения в сети, даже довольно кратковременного, реле замкнётся, и в розетках будет напряжение, пока ардуина не загрузится.
0
На самом деле нет. Чуть выше выкладывали ссылку на статью, где есть схема платы с реле. http://howtomechatronics.com/wp-content/uploads/2015/09/Relay-Module-Circuit-Schematics02.png
Тут видно, что реле включается, когда начинает течь ток через светодиод оптопары. Для этого на управляющей ноге ардуины должен быть 0 уровень. По умолчанию же контакты реле разомкнуты — и когда отключена ардуина, и когда отсутствует питание платы реле, и когда ардуина перезагружается (по умолчанию пины настроены как вход без подтяжки).
Тут видно, что реле включается, когда начинает течь ток через светодиод оптопары. Для этого на управляющей ноге ардуины должен быть 0 уровень. По умолчанию же контакты реле разомкнуты — и когда отключена ардуина, и когда отсутствует питание платы реле, и когда ардуина перезагружается (по умолчанию пины настроены как вход без подтяжки).
0
И опять не совсем верно. Если вы обратите внимание на фото, у каждого реле на плате (К1 и К2) по три винта контактов высокого напряжения. Почему именно три? Потому что реле позволяет смонтировать как нормально-замкнутую схему, так и нормально-разомкнутую схему. В первом случае нормально состяние цепи — замкнутое, а подаче сигнала с Ардуинки будет её размыкать. Во втором случае, цепь по умолчанию разомкнута, а подача сигнала будет её замыкать.
+1
Я просто оставлю это здесь: https://www.itead.cc/sonoff-wifi-wireless-switch.html
+1
«а также разблокирует Windows на присоединенном компьютере» — на схеме отсутствует присоединенный компьютер. Тупо пихать пароль в неизвестно куда :) оно ведь и в редакторе текстовом может выплыть неожиданно.
0
А можете пояснить, как INPUT_PULLUP спасает от дребезга контактов выключателя? Кажется, что подтягивающий резистор должен спасать от того, что контакт выключателя, не замкнутый на центральную землю, будет свободно болтаться и при чтении может выдать какое угодно значение.
0
INPUT_PULLUP от дребезга контактов конечно не спасает. Но включение подтягивающего резистора позволяет иметь на высокоомном (весьма!) входе четко дифференцированный по уровню сигнал — или 0 или +5в (VCC точнее). А это позволяет схеме антидребезга правильно работать. Без подтягивающего резистора сигнал на входе будет медленно (единицы секунд) нарастать и не факт, что к VCC. Равновесный потенциал будет зависеть от соотношения утечек.
0
Схема антибребезга — это RC-цепь? А то сабж, кажется, такой схемы не имеет)
0
Дребезг можно давить как на аппаратном уровне (RC цепь или RS триггер), так и программном. Делая что-то на достаточно мощном процессоре (достаточно — применимо к обсуждаемым задачам конечно) разумно использовать готовую и отлаженную подпрограмму подавления дребезга контактов. Их есть в инете :) Я код автора не смотрел, но полагаю он что-то такое и использовал.
0
посмотрел код автора.
он вовсе не давит дребезг :))))))
У него программа выполняется либо по одной ветке, либо по другой, определяется это оператором if, который смотрит на сигнал с ноги с подключенным тумблером.
Видимо основное тело программы выполняется дольше дребезга контактов и поэтому его программа нечувствительна к дребезгу контактов. На первый взгляд время выполнения основного цикла программы составляет от 300 до 600 мС, что заведомо больше времени дребезга.
Автор путает два понятия: дребезг контактов и неопределенный потенциал на висящем в воздухе высокоомном входе.
он вовсе не давит дребезг :))))))
У него программа выполняется либо по одной ветке, либо по другой, определяется это оператором if, который смотрит на сигнал с ноги с подключенным тумблером.
Видимо основное тело программы выполняется дольше дребезга контактов и поэтому его программа нечувствительна к дребезгу контактов. На первый взгляд время выполнения основного цикла программы составляет от 300 до 600 мС, что заведомо больше времени дребезга.
Автор путает два понятия: дребезг контактов и неопределенный потенциал на висящем в воздухе высокоомном входе.
0
кстати автору — достаточно одного оператора в коде pinmode (pinnum, INPUT_PULLUP) — он включит ножку в режим входа и включит подтягивающий резистор. Предыдущий оператор не нужен.
+2
Точно, спасибо!
0
Это появилось начиная с какой-то там версии, но устаревший код переползает из туториала в туториал…
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Умная компьютерная розетка на Arduino своими руками