Не корректно работает реле под нагрузкой
- Войдите на сайт для отправки комментариев
Вс, 10/10/2021 - 19:49
Добрый день!
Не могли бы подсказать, в чем может быть причина некорректной работы реле под нагрузкой.
Имеется:
1)Arduino nano (ATmega328P)
2)Реле HIGH SLA-05VDC-SL-C - IN подключен к 12 пину ардуино
3)Модуль YK04
пин VT - > 4 пин ардуино
пин D2 - >3 пин ардуино
Если через реле не проходит ток, то по нажатию на кнопку "A", реле корректно переключается в верхнее состояние. Если к реле подключить силовые кабели, реле перестает нормально переключаться(как будто реле переключается не до конца. щелчок есть )
Скетч
#define ledPin 13 #define vtRem 3 #define vtRem 1 #define keyB_A 4 #define exitA 11 // Состояние выхода, установленного в состояние ВЫКЛ. boolean statusexitA = false; void setup() { // Конфигурация выходов. pinMode(exitA, OUTPUT); // Конфигурация ключей как входов. pinMode(keyB_A, INPUT); // Мы активируем PULL-UP Verify Tx для большей стабильности. pinMode(vtRem, INPUT_PULLUP); // Активируем прерывание (теперь мы можем прочитать команду) attachInterrupt(vtRemInt, keyBRead, RISING); } void loop() { // Припаянный к плате светодиод не горит, пока ни одна кнопка не нажата. digitalWrite(ledPin, LOW); } // Подпрограмма прерывания для чтения клавиатуры void keyBRead() { // Мы отключаем прерывания. noInterrupts(); // Мы включаем светодиод платы Arduino, чтобы показать пользователю, что что-то получено. digitalWrite(ledPin, HIGH); // Если у нас есть ВЫСОКОЕ состояние на выводе клавиши A, это означает, что она была нажата, если нет, мы проверим B и так далее. if(digitalRead(keyB_A) == HIGH){ // В этом случае, когда мы получили A, мы переключаем значение выхода A statusexitA = !statusexitA; digitalWrite(exitA, statusexitA); } delay(500); interrupts(); }
Компилятор на #3 не жалуется?
И вообще с ногами какая то фигня вроде..
Схему проверяй
07 #define exitA 11
2)Реле HIGH SLA-05VDC-SL-C - IN подключен к 12 пину ардуино
Это оно? Точно?
А результат исправления какой?
Не нашел как исправить сам текст поста скопировал его тут и изменения написал жирным шрифтом. (В описании поменял на 11 порт и переименовал в строчке 3 переменную)
Добрый день!
Не могли бы подсказать, в чем может быть причина некорректной работы реле под нагрузкой.
Имеется:
1)Arduino nano (ATmega328P)
2)Реле HIGH SLA-05VDC-SL-C - IN подключен к 11 пину ардуино
3)Модуль YK04
пин VT - > 4 пин ардуино
пин D2 - >3 пин ардуино
Если через реле не проходит ток, то по нажатию на кнопку "A", реле корректно переключается в верхнее состояние. Если к реле подключить силовые кабели, реле перестает нормально переключаться(как будто реле переключается не до конца. щелчок есть )
Скетч
ХЗ что там еще, но delay(500) в прерывании режет глаз
в обработчике должна быть одна строка
ну если нужно можно еще и условие добавить.
все! остальное переносить в лууп.
чем проверено работоспособность реле без нагрузки?
а то может подсоединяете нагрузку на контакты реле которые никогда не замыкаются.
схема, тип реле, фото - вот тогда ваша проблема быстро решится.
все перенес, все так же.
Проверку делал след способом, подключил мультиметр на контакты реле в верхнем и нижнем состоянии. Работает все корректно. Реле брал разные и верхнего и нижнего уровня. Фото реле .
P.S.: я тестировал на разных реле. Вот фото
Саама схема
Реле через ардуину питается и ноль коммутирует?
Даже не читал. Реле - мощный потребитель по +5в, плюс источник помех при срабатывании. Проверяется питанием от отдельного источника.
Если через реле не проходит ток, то по нажатию на кнопку "A", реле корректно переключается в верхнее состояние. Если к реле подключить силовые кабели, реле перестает нормально переключаться(как будто реле переключается не до конца. щелчок есть )
Такое "чудо" с трудом можно представить, но,если коммутируете мощную нагрузку, а вся система запитана через переноску с тонким проводом, или есть где-то плохой контакт и ,при подключении нагрузки, критично проседает сетевое напряжение.
Проверьте, не проседают ли напряжения при подключении нагрузки, и рассчитана ли на неё сеть
ну что сказать, чудеса!
а если включить реле без нагрузки (вижу лампа у вас), а потом штепсель в розетку?
То лампа включится, так как реле будет переключено. По напряжению, на пинах реле без нагрузки и с нагрузкой одинаково.
если ардуино,да вся схема судя по рисунку, питается от usb порта компа, запитайте от какого нибудь другого источника, например зарядника от телефона или повербанка.
все у меня мыслей больше нет.
Ещё можно проверить реле и плату на утечку, хотя-бы мультиметром на мегаомах. Между силовыми контактами реле и катушкой, а так же пинами управления, не должно быть сопротивления ниже 100МОм
Я бы предложил еще несколько экспериментов для локализации проблемы:
1) Написать простую программу автоматического включения - выключения реле раз в секунду. Если будет сбоить - значит проблема в воздействии искрения на ардуинку. Исправить шунтированием выхода реле 1-2 конденсаторами.
2) Написать простую программу нажатие клавиши - включение реле. Если (после удачного первого эксперимента) будет сбоить - проблема в воздействии искрения на входную цепь. Лечится так-же.
3) Установить очень маленькую чисто тепловую нагрузку (лампочка накаливания 10-15Вт. Такие еще продаются для холодильников) или в выходной цепи поставить светодиод с питанием от отдельного блока питания.
Я бы поверил в косяк с реле с искренеем, но он выше пишет что менял реле и ни раз. Ту наверное все таки питание.
если ардуино,да вся схема судя по рисунку, питается от usb порта компа, запитайте от какого нибудь другого источника, например зарядника от телефона или повербанка.
все у меня мыслей больше нет.
Запитал от 4 батареек (~5.5 В) ведет себя так же
Я бы предложил еще несколько экспериментов для локализации проблемы:
1) Написать простую программу автоматического включения - выключения реле раз в секунду. Если будет сбоить - значит проблема в воздействии искрения на ардуинку. Исправить шунтированием выхода реле 1-2 конденсаторами.
2) Написать простую программу нажатие клавиши - включение реле. Если (после удачного первого эксперимента) будет сбоить - проблема в воздействии искрения на входную цепь. Лечится так-же.
3) Установить очень маленькую чисто тепловую нагрузку (лампочка накаливания 10-15Вт. Такие еще продаются для холодильников) или в выходной цепи поставить светодиод с питанием от отдельного блока питания.
Спасибо за дельный совет. Сегодня попробую и напишу результат
Я бы предложил еще несколько экспериментов для локализации проблемы:
1) Написать простую программу автоматического включения - выключения реле раз в секунду. Если будет сбоить - значит проблема в воздействии искрения на ардуинку. Исправить шунтированием выхода реле 1-2 конденсаторами.
2) Написать простую программу нажатие клавиши - включение реле. Если (после удачного первого эксперимента) будет сбоить - проблема в воздействии искрения на входную цепь. Лечится так-же.
3) Установить очень маленькую чисто тепловую нагрузку (лампочка накаливания 10-15Вт. Такие еще продаются для холодильников) или в выходной цепи поставить светодиод с питанием от отдельного блока питания.
Сделал как вы и говорили, работает стабильно. Буду тогда искать причину в своем первоначальном коде. (да простят меня за delay())
Интеррапт рядом с силовыми кабелями - источник потенциальных багов - обработчик будет мотаться как г-но в проруби. Избавьтесь от него хотя бы временно - читайте через digitalRead() свой вход. Если осциллограф есть - присядьте на вход, посмотрите чего там творится.
ну вот половину отсекли (mykaida респект за системный подход), а теперь код... код который не работает СЕЙЧАС, ни вчера, ни я поправил, а только тот который СЕЙЧАС.
просто присмотрелся, вот это вызывает вопросы
В общем я подчистил код. Работает через delay(),через millis() - не захотел. Добавил вторую проверку по состоянию флага на пине. Порт VT решил не обрабатывать. Так же поменял чуть чуть пины подключения .Спасибо еще раз mykaida за совет.
Можно было и попроще:
Спасибо за еще один вариант. Так действительно проще)
Спасибо за еще один вариант. Так действительно проще)
https://www.teachmemicro.com/wp-content/uploads/2019/06/Arduino-Nano-pinout-3.jpg
Пины 2,3 с прерыванием. Ни тот ни другой подтягивать нельзя. Все силы уходят на то что бы подтягивающий резистор сытый был, на реле сил не остается. Так же внимательным нужно быть с выходами SPI. SS - вобще лучше не трогать.При этом не факт что получится его не трогать. Указано что SS это D10, но на практике еще на D4 он то ли дублируется, то ли меняется как то программно MOSI должен быть output, а вот MISO input.
Но вот в вашем примере явно резистор кушает, раз у реле сил не хватает.
Это точно в мемориз. Особенно про уходящие силы. Так то если не подтягивать, то прерывания будут от любого чиха за соседней стенкой. Но Вам можно не подтягивать - танцы с бубном от пачек прерываний будут обеспечены.
так дальше еще забавне, чел намекает нам на ремап пинов наверное:)
Указано что SS это D10, но на практике еще на D4 он то ли дублируется, то ли меняется как то программно
где указано, на какой практике... х.з.
Согласен. Однажды пришлось управлять мощным контактором, который включал индуктивную нагрузку. От реле до контактора было 20 метров. Нормальной работы удалось добиться после питания реле от отдельного источника и обвеса всех контактов снабберами. Реле было переведено в режим опторазвязки. Даже в режиме опторазвязки и отдельном питании без снабберов иногда происходил сброс ардуины.
Не то что бы не подтягивать совсем. Но подтянуть на другом пине можно. У меня была один в один проблема на wemos d1. Там китайцы вобще запутали, одни пины при подключении к реле работали другие нет. Как я понял, тогда я подавал output на пин ss. Из-за чего на других пинах случалась абракадабра, вместо установленного output контроллер начинал искать ведомое устройство. Реле от такого пина плевало на мои желания и на код прописаный у него на лбу.
В общем, кому нужны wemos d2r1, валяются три штуки. Сил и желания с ними бороться нет, отдам в хорошие терпеливые руки)))
PS:mega рулит, все остальные arduino в мусор.
На практике вспомнил свою UNO, в шите указано, выход SS пин 10. Иии нет. не работает. Пин 4 работает. Почему не понимаю, но как было так и говорю. Uno не китайская, оригинал... Может магия, может опыта мало понять сие чудо...
Собственно на этом примере и испытывался выход 10 и 4 SPI
В общем, кому нужны wemos d2r1, валяются три штуки. Сил и желания с ними бороться нет, отдам в хорошие терпеливые руки)))
у меня вемос три года работает круглосуточно, проблем нет, руки у меня хорошие, девушки говорят - как масло, а девушкам надо верить )))
Это точно в мемориз.
А зачем это комментировать. Еще при первом прочтении поста было видно, что человек под чем-то тяжелым. Может и не торчок, просто из больнички пишет? Зря обижать не стану.
человек под чем-то тяжелым
дексаметазон?
)))Ну что же вы) Я пол года как изучать это все начал. Эмбрион новичка, так сказать) Но так интересно что пихаю информацию по максимуму) Вот и получается передоз) Я не из обидчевых, так что жгите) Только по делу и с разъяснением, тупым оставаться не хочется)
тупым оставаться не хочется)
это обычно от кислорода бывает )))
Так уж и быть. Придется создать отдельно тему, что бы гуру мне извилины правильно согнули)
Собственно на этом примере и испытывался выход 10 и 4 SPI
и как тестировали? - тупо меняли пин 4 на пин 10? А комментарии в коде читали - я вот специально выше вам оставил? Строчка ** CS - pin 4 ни на какие мысли не наводит? :)