Pull to refresh

Comments 51

Для подавления дребезга контактов кнопки лучше подключать через RC цепочку.
Программно дребезг легко фильтруется, смысла нет ставить конденсатор.
Насколько я знаю, digitalWrite(relay_pin, HIGH) так работает везде.
И да, мне кажется хорошей практикой запитывать реле отдельно, а не подавать питание с Ардуинки. Оттуда только сигнал на коммутацию.
И да, мне кажется хорошей практикой запитывать реле отдельно, а не подавать питание с Ардуинки. Оттуда только сигнал на коммутацию.

тогда реле не будет срабатывать. земля реле и ардуины должна быть общей.
Земля да, а вот VCC лучше брать напрямую с БП, потому что релюшки кушают довольно большой ток, у меня от 2 реле проседало напряжение на USB 2.0. Там есть отдельные входы IN и отдельные VCC.
Нет, не должна. Убираете пин с реле и запитываете полностью отдельно. Вот картинка: 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/ По ссылке подробно расписаны варианты. Собственно, я своей малинкой именно в таком виде управляю релешками.
На схема подключения синий провод 220V от вилки не дошел до реле? (Или я как то не так читаю схему)
Все верно, Вы правы. Видимо, в первоначальном варианте провод куда-то убежал :) Обновил схему в статье и в репозитории. Спасибо.
Не боитесь, что рано или поздно использованное реле залипнет? На ГТ неоднократно уже писали, что данный модуль мягко говоря ненадежен и лучше использовать твердотельные реле.
Почему Вы решили использовать алюминиевые провода для высоковольтной части?
думаю, выбиралось из того, что было — реле все равно сдохнет раньше, чем пойдут проблемы из-за алюминиевого провода…
«Нет ничего более постоянного, чем временное!» (С)
Никаких причин для выбора именно алюминиевых проводов не было. Купил то, что было и подходило по силе тока. Сделал так, чтобы алюминиевые и медные провода друг друга не касались.
Понятно. Поясню свое удивление — в электронике и силовой электронике принято избегать алюминия, только медь. Поэтому было интересно выяснить — были ли какие-то причины использовать нестандартный материал проводов.
Сорри, что не совсем по теме
Подскажите, где почитать о том, как сделать на Ардуино управление светодиодными лентами через энкодер с высокочастотным ШИМ? Гугль много что выдает, но без опыта не отделить зерна от плевел… А покупать тупо диммер с пультом – совсем не по гиковски. Понимаю, что задача простейшая, но не хочется учиться на своих обшибках
1) Гуглим по фразе «ШИМ на Ардуино» — вникаем в написание прошивки с ШИМ
2) Гуглим по фразе «Светодиодная лента и ардуино» — вникаем в схемотехнику силовой части
3) Гуглим по фразе «Энкодер к ардуино» — вникаем как обрабатывать поворот энкодера
4) Напрягаем мозг и собираем все это в кучу
5) PROFIT!
Естественно я все это гуглил, как уже сказал, но опять же – не хочется учиться на своих ошибках. Может для высокочастотного ШИМ лучше купить отдельный ШИМ-модуль для управления двигателями и светодиодами, может получится обойтись программными методами
Буквально недавно делал управление двумя лентами с одной ардуины. Чтобы получить ШИМ с частотой около 31кГц на пинах 9 и 10 всего-то надо в setup() добавить
TCCR1B = (TCCR1B & 0b11111000) | 0x01;
После этого использовать обычный analogWrite().
Далее, через резисторы в 100 Ом я эти пины подключил к плате, которую сделал для управления двумя каналами. Плата — драйвер IR4427S, два транзистора + обвязка.
Схема вот:

Выглядит так:

Питается ардуина и плата от 12В, которые нужны светодиодной ленте. Драйвер нужен, чтобы транзисторы адекватно работали на такой частоте. Сами платы не буду выкладывать, т.к. они специфичного форм-фактора (стыкуются с другой однослойной платой), при этом я перепутал верх и низ, и стыкуется она вверх ногами. На функционал не влияет, просто некрасиво. Транзисторы вот пришлось загибать.
Схемы пропали, дайте просто ссылки на изображения в виде текста без тегов
Таки да. Хотя в превью все было на месте.
https://habrastorage.org/files/722/8ab/724/7228ab7249e84d96a3ef1cde4b188fea.jpg
https://habrastorage.org/files/1d8/495/af2/1d8495af213546a5b0c53d6b8e28f754.jpg
Спасибо, очень интересно!
Вы знаете, чем писать то что Вам надо на Arduino, сделайте лучше на Attiny. Понимание процесса у Вас будет в 100 раз лучше, объем кода в 10 раз меньше, цена устройства так же упадет. Я вот по этим статьям учился, ну и даташит конечно. На много интереснее Arduino, полный контроль, настоящий geekway.
Я умею водить машину, но категорически не хочу уметь ее чинить. Я умею паять, немного программирую, но не хочу заниматься этим на уровне отдельных битов. Как то так…
Про основы управления светодиодом/светодиодной лентой можно узнать здесь. Там рассказано про схему мигающего светодиода, но на ее основе можно подключить и светодиодную ленту.

Кармы у вас не хватало для оформления ссылок, повторите ее плиз
http://ledjournal.info/shemy/migayushhij-svetodiod-arduino.html

но это основа-основ)
Ну да, самые азы :) Спасибо, буду гуглить дальше
Вы же можете переснять видео снова и заменить, верно?
А почему Ардуино, а не ESP? И если уж Ардуино, то почему Leonardo, а не Mini Pro?
Mini pro вроде как не умеет работать в виде USB HID устройства. А вообще, взл Leonardo, потому что только она была в наличии при покупке (ну и Uno).
Кстати, на Uno (ATMega328) и даже на ATTiny можно поставить софтверный USB (http://www.obdev.at/products/vusb/index.html). Если иметь желание и свободное время, конечно)
А еще можно было бы снабдить датчиками тока, например на эффекте Холла. Получилось бы куда интереснее.
То, что реле у вас по умочанию замкнуто, потенциально опасно. В случае пропадания напряжения в сети, даже довольно кратковременного, реле замкнётся, и в розетках будет напряжение, пока ардуина не загрузится.
На самом деле нет. Чуть выше выкладывали ссылку на статью, где есть схема платы с реле. http://howtomechatronics.com/wp-content/uploads/2015/09/Relay-Module-Circuit-Schematics02.png
Тут видно, что реле включается, когда начинает течь ток через светодиод оптопары. Для этого на управляющей ноге ардуины должен быть 0 уровень. По умолчанию же контакты реле разомкнуты — и когда отключена ардуина, и когда отсутствует питание платы реле, и когда ардуина перезагружается (по умолчанию пины настроены как вход без подтяжки).
И опять не совсем верно. Если вы обратите внимание на фото, у каждого реле на плате (К1 и К2) по три винта контактов высокого напряжения. Почему именно три? Потому что реле позволяет смонтировать как нормально-замкнутую схему, так и нормально-разомкнутую схему. В первом случае нормально состяние цепи — замкнутое, а подаче сигнала с Ардуинки будет её размыкать. Во втором случае, цепь по умолчанию разомкнута, а подача сигнала будет её замыкать.
«а также разблокирует Windows на присоединенном компьютере» — на схеме отсутствует присоединенный компьютер. Тупо пихать пароль в неизвестно куда :) оно ведь и в редакторе текстовом может выплыть неожиданно.
Ну, вообще мне лично не нравится то, как я это сделал. Это лишь первый пробный вариант. Я подумаю над тем, как выпилить пароль из исходников и сделать разблокирование более-менее секьюрным :)
А можете пояснить, как INPUT_PULLUP спасает от дребезга контактов выключателя? Кажется, что подтягивающий резистор должен спасать от того, что контакт выключателя, не замкнутый на центральную землю, будет свободно болтаться и при чтении может выдать какое угодно значение.
INPUT_PULLUP от дребезга контактов конечно не спасает. Но включение подтягивающего резистора позволяет иметь на высокоомном (весьма!) входе четко дифференцированный по уровню сигнал — или 0 или +5в (VCC точнее). А это позволяет схеме антидребезга правильно работать. Без подтягивающего резистора сигнал на входе будет медленно (единицы секунд) нарастать и не факт, что к VCC. Равновесный потенциал будет зависеть от соотношения утечек.
Схема антибребезга — это RC-цепь? А то сабж, кажется, такой схемы не имеет)
Дребезг можно давить как на аппаратном уровне (RC цепь или RS триггер), так и программном. Делая что-то на достаточно мощном процессоре (достаточно — применимо к обсуждаемым задачам конечно) разумно использовать готовую и отлаженную подпрограмму подавления дребезга контактов. Их есть в инете :) Я код автора не смотрел, но полагаю он что-то такое и использовал.
посмотрел код автора.

он вовсе не давит дребезг :))))))

У него программа выполняется либо по одной ветке, либо по другой, определяется это оператором if, который смотрит на сигнал с ноги с подключенным тумблером.

Видимо основное тело программы выполняется дольше дребезга контактов и поэтому его программа нечувствительна к дребезгу контактов. На первый взгляд время выполнения основного цикла программы составляет от 300 до 600 мС, что заведомо больше времени дребезга.

Автор путает два понятия: дребезг контактов и неопределенный потенциал на висящем в воздухе высокоомном входе.
кстати автору — достаточно одного оператора в коде pinmode (pinnum, INPUT_PULLUP) — он включит ножку в режим входа и включит подтягивающий резистор. Предыдущий оператор не нужен.
На здоровье!

Обратите также внимание на мой комментарий на пару записей выше касательно дребезга. Я там обратил внимание, что в вашей программе нет подавления дребезга.
Да, уже посмотрел, спасибо. «Покурю» эту тему детальнее, когда будет время.
Это появилось начиная с какой-то там версии, но устаревший код переползает из туториала в туториал…
UFO just landed and posted this here
Sign up to leave a comment.

Articles