Проблема с реле при подключении блютуз

Доброго времени суток. Подскажите кто нибудь в чем проблема? Есть реле низкого уровня. Управляющий контакт подключен к выходу 7 ардуино нано. В сетапе прописан порт 7 на аутпут, что естетсвенно приводит реле к включению. Если прописать следующий строчкой после инициализации 1 на выход 7, то все хорошо, реле при подаче питания на ардуино не включается. Но когда происходит подключение по блютуз ( телефон - модуль НС-6) реле как бы перещелкивает, как будто сетап запускается повторно. Что с этим можно сделать? Питание на реле идет с модуля ардуино

Вставьте в сетап вывод сообщения в Сериал и сразу будет видно, идет перезапуск платы или нет

2 лайка

Подтяни пин 7 к VCC через резистор 3…10 кОм

1 лайк

Плохо, когда один источник питания для исполнительных устройств и для контроллера. Правильно делать гальваническую развязку , например, при помощи оптопар(в сети полно схем).
Как минимум, вы можете попробовать улучшить ситуацию

  • выполнив совет из поста # 3
  • добавив конденсатор по питанию контроллера ~100uF

Перед прописью в аутпут запиши в порт единицу. Можно писать в порт в любое время. Выставлятся будет сразу после инициализации порта в аутпут.

Непонятно когда и как происходит подключение. На какие ноги подключен НС-6 и как он связан с 7 ногой?

открывается ком порт у вас ? и реле перезагружается ? надо наверное отключить перезагрузку DTR



void setup() {
  // 1. Сразу устанавливаем пин в LOW перед инициализацией
  digitalWrite(RELAY_PIN, LOW);
  // 2. Устанавливаем режим пина
  pinMode(RELAY_PIN, OUTPUT);
  // 3. Еще раз подтверждаем состояние
  digitalWrite(RELAY_PIN, LOW);
  
  // 4. Длительная задержка для стабилизации
  delay(3000);  // 3 секунды
  
  // 5. Только потом инициализируем Serial
  Serial.begin(9600);
  delay(100);
  
  // 6. Принудительно выключаем реле на всякий случай
  digitalWrite(RELAY_PIN, LOW);
}

А чо, вам шары хрустальные разрешили?

2 лайка

Проверю плату на перезапуск, если это действительно он, буду делать развязку. Но я просто логически не понимаю причину. Реле, ардуино и модуль блютуз подключены, запитаны и работают. Почему происходит просадка напряжения (и или перезапуск)при подключении ( начинает работать передача данных?) Но в дальнейшем это не повторяется все работает исправно. Кнопки включения и выключения отрабатывают стабильно. Более того отключение например блютуз на телефоне опять приводит к перещелкиванию (вкл выкл) реле

Программу покажи?

Никак он не связан с 7 ногой. На 7 ноге сигнал на включение реле. Блютуз модуль подвешен на rx tx.

Это можно понять только увидев как вы все собрали, об этом ни слова у вас.
Если на макетке хлипкими проводами то что угодно может случиться

Опять же от схемы подключения всего этого хозяйства тоже зависит.

А без этой информации можно только гадать.

2 лайка

Попробую. Спасибо.

Стабилизации чего? Тока на сигнальном светодиоде? Типа этого?

1 лайк

Ну у меня действительно инициализация serial пункт 5 идет раньше чем pin mode. Поэтому попробую изменить

Проще один резистор кинуть…

Andrey12 для стабилизации орбит электронов, лишнее конечно, но пусть будет!))

1 лайк

Да проблема оказалась в самой программе. В программе написано в loop switch incomingByte case 71 включить case 70 выключить. Где разряд десятков соответствует номеру порта, а разряд единиц, что с ним нужно сделать. Видимо при подключении к телефону происходит обмен данными для установки соединения и программа среди этой служебной информации нашла команды 70 и 71. Буду переделывать.