Управление реле с компа через USB, проблема при подключении нагрузки
- Войдите на сайт для отправки комментариев
Есть ардуино UNO на CH3400, к нему подключен 8 ми канальный 5ти вольтовый модуль реле.
Через простеньку программу написанную в делфи передаю 1 байт в ардуино, число от 1 до 8. Ардуино включает на 1 секунду одно из 8 ми реле.
Без нагрузки на реле все работает отлично. При подключении нагрузки в модуль реле, а именно 12ти вольтовый электромагнитный замок, запитанный от отдельного компьютерного блока питания, вся система срабатывает ровно 1 раз. Далше при попытке передать повторно данные программа на компе ругается:
"writefile function failed win error code 31"
Оживить систему помогает переподключение ардуинки. Похоже что вешается ком порт. Монитор порта тоже не может поключится, пишет ошибку "Ошибка при настройке параметров последовательного порта: 9 600 N 8 1"
Подскажите в чем может быть проблема? Я никак не могу понять как подключение нагрузки к выводам реле может повлиять на работу ком порта? Пробовал разные блоки питания (компьютерные). Пробовал разные компоненты для делфи, результат один.
Код ардуинки
int pin[] = {2,3,4,5,6,7,8,9}; // Объявляем массив в котором указанны номера выводов byte i; void setup() { // Запускаем цикл, в котором определяем контакты 2-9 как выводные for (int t = 0; t < 8; t++ ) // > { pinMode(pin[t], OUTPUT); digitalWrite(pin[t], HIGH); } Serial.begin(9600); // Инициализируем перередачу данных по COM-порту на скорости 9600 бод } void loop() { // Запускаем цикл без каких либо действий // Только когда данные придут на COM-порт продолжится выполнение программы дальше этой строки while (Serial.available() == 0); // Данные пришли, считываем их в переменную i i = Serial.read(); //Serial.print("Poluchil"); i--; digitalWrite(pin[(i)], LOW); // включаем реле delay(1000); digitalWrite(pin[i], HIGH); // выключаем реле Serial.println(i); // отправляем ответ что все прошло успешно }
В делфи использую компонент CPortLib, пробовал еще CommPortDriver.
Буду рад любым советам и помощи.
Реле вот такое
http://ru.aliexpress.com/item/Free-Shipping-8-channel-8-channel-relay-co...
Замок вот такой
http://ru.aliexpress.com/item/2-PCS-Cabinet-Door-Lock-Electric-Lock-Asse...
А схема подключения?
Согласно вот этому описанию, только у меня на 5 В реле. В схеме еще 1 проводка +5 В не хватает.
http://arduino.ru/forum/apparatnye-voprosy/podklyuchenie-n-channel-12v-relay-shield-module-arduino
Возможно идет просадка напряжения по +5 вольтам питания в момент коммутации реле, если включить все релюхи, то ток будет более 500 мА, что недопустимо для USB порта компьютера. Питание на реле надо подавать от других +5В полюбому. Попробуй, может получится. Еще может на плате грязь какая, протри спиртом плату с реле.
[quote=ConstantinS]
Согласно вот этому описанию, только у меня на 5 В реле. В схеме еще 1 проводка +5 В не хватает.
+5 В или земли не хватает? Земли не видать что то.
Посмотрел даташит. Согласен с коллегой. У этих реле ток даже не 500, а 570mA. А Вы их от ардуины питаете :(
Подключил как вы рекомедуете отдельно. БП тот же что и питает элмагнитный замок. В схеме землю дорисовал ее не хватало, выше ошибся.
Результат тот же.
Более того, попытался просто позамыкать эл замок через одну из клемм модуля реле. Через несколько срабатываний порт отвалился.
Есть еще один модуль реле, пробовал на нем. Тоже отваливается
Н априведённой схеме не вижу как подключена Ардуина. От чего она питается-то? И соединена ли её земля с землёй БП и релейнго модуля?
замок создает большую эдс самоиндукции при выключении, с ней и нужно бороться.
Методы, как и с обмоткой реле, только ток тут поболе будет.
Ардуина питается от USB. Все земли соеденены.
Земля ардуины соеденена с землей релейного модуля и питанием релейного модуля (дорожка в релейном модуле общая). А питание +5В модуля и +12В замка имеет общую землю.
Плату протер, не помогло.
Надо попробовать другой БП, есть подозрения что этот чудит.
Надо попробовать к своему компьютерному подрубить по последней схеме.
для исключения проблемы в программной части на ПК можете попробовать отправить что-то через powershell
работало на вин8.1
по опыту, открытьй порт нельзя открыть )) будет ошибка
Ну что могу сказать ещё? Длина USB кабеля может быть критичной, попробуй сделать как можно меньше. А без нагрузки точно всё шикарно работает и сбоев никогда не бывает? Если это так, то попробуй сделать следующие этапы:
1. Подключи питание +12В на плату, нагрузку (замок или что там ещё) в цепь не включай. Попробуй протестировать. Если все ОК, то дальше:
2. Попробуй вместо индуктивной нагрузки подключить лампочку. Протестируй, Если всё ок, то бороться надо с самоиндукцией.
Если на каком то шаге случился сбой, то попробуй поменять полярность, т.е. на плату подавай землю, а +12В на нагрузку. Если это решит проблему, то получается какой то косяк с платой.
Попробовано несколько БП, не помогло
Подключена активная нагрузка (автомобильная лампа 21Вт), с ней все работает на всех БП.
Подключен диод к элмагнитному замку, все работает.
Спасибо за советы.
Возможно напишу бред но....
Буквально час назад поборол у себя такую же проблему. Пока тестирую зависнет или нет. В моем случае висла именно ардуинка при открытии электро замка.
Решил проблему таким образом, поставил диод параллельно электромагниту замка, аналогично как на обмотку реле. Добавил еще керамический конденсатор, незнаю зачем, но пусть пока будет ))
Попробуйте, может и вам поможет.
Попробовано несколько БП, не помогло
Подключена активная нагрузка (автомобильная лампа 21Вт), с ней все работает на всех БП.
Подключен диод к элмагнитному замку, все работает.
Спасибо за советы.
Так у Вас импульсные БП, которые без нагрузки не заводятся. Как-то надо было это сразу оговорить. Чёт никто про это и не подумал. Наверное, все считали это самоочевидным. Я на такие БП сразу ставлю мощный резистор, чтобы он минимальную нагрузку ему давал и тогда нет проблем. Например, если хочу использовать для чего-нибудь компьютерный БП, всегда ставлю резистор 25-50 Ом / 50Вт в 5-вольтовую линию и забываю об этой проблеме. Правда, эта нагрузка, понятное дело, бесполезно греет атмосферу и увеличивает этропию. Имейте это в виду на будущее.