Реле принимает сигнал от автоматических ворот и переключается как устранить проблему?
- Войдите на сайт для отправки комментариев
Сб, 08/09/2018 - 13:55
Помогите пожалуйста я новичек в этой среде
У меня Arduino Pro Mini, HC-05, блок на 8 реле, 2 кнопки вверх вниз с общим нулем и автоматические ворота которые поднимаются и опускаются, когда подключены кнопки при полном опускании или поднимании получается какой-то скачек напряжения и реле сам переключается и ворота начинают обратное действие. Но если работать только с блютузом и отключненными кнопками все нормально.
Вот код
#include <SoftwareSerial.h> int i = 0; int ledPin_5 = 5; int switchPin = 12; boolean butt1; boolean butt2; boolean lastButton1 = LOW; boolean lastButton2 = LOW; boolean led_flag1 = 0; boolean led_flag2 = 0; void setup() { Serial.begin(57600); pinMode(7, OUTPUT); pinMode(9, OUTPUT); pinMode(5, OUTPUT); pinMode(11, INPUT_PULLUP); pinMode(10, INPUT_PULLUP); pinMode(switchPin, INPUT_PULLUP); } void loop() { butt1 = !digitalRead(10); butt2 = !digitalRead(11); if (Serial.available() > 0) { int i = Serial.read()-48; if (i == 1) { led_flag1 = !led_flag1; digitalWrite(7, led_flag1); led_flag2 = 0; digitalWrite(9, led_flag2); delay(500); } if (i == 3) { led_flag2 = !led_flag2; digitalWrite(9, led_flag2); led_flag1 = 0; digitalWrite(7, led_flag1); delay(500); } if (i == 5) { digitalWrite(ledPin_5, HIGH); delay(1000); digitalWrite(ledPin_5, LOW); } } { if (butt1 == HIGH && lastButton1 == LOW) { lastButton1 == HIGH; led_flag1 = !led_flag1; digitalWrite(7, led_flag1); led_flag2 = 0; digitalWrite(9, led_flag2); delay(500); } } { if (butt2 == HIGH && lastButton2 == LOW) { lastButton2 == HIGH; led_flag2 = !led_flag2; digitalWrite(9, led_flag2); led_flag1 = 0; digitalWrite(7, led_flag1); delay(500); } } if (!digitalRead(switchPin) == HIGH) { digitalWrite(ledPin_5, HIGH); } else { digitalWrite(ledPin_5, LOW); } }
третья кнопка switchPin это отдельная не связанная с воротами кнопка
код писал сам по обучающим видео из ютуба
подключите кнопки к другим пинам
Первое. Китайские шилды бывают с оптической развязкой и без. Первый тип - реле на 5 вольт - пускается обычым транзистором. Гадость редкостная, т.к. наводки от силовой части 220 частенько запускают слабенький транзистор.
Второй тип - с оптопарой PC817 на 12 вольт реле. Вот эта схема гораздо стабильнее. Там уже исключен сампороизвольное открытие транзистора, да и наводки от реле для мк тоже исключаются. т.к. схема 5в не задействована в управлении. Смотрите схемы
А какая стяжка-подтяжка к кнопкам?
Пробовал менять все пины к сожелению не помогло
у меня Модуль реле 8-канальный для Arduino (с оптронной изоляцией, 12В, hight and low level trigger, реле Songle) на самом реле написано SRD-O5VDC-SL-C
надо поменять? На модуле с 1 реле такая же проблема
немного не понял вопроса ибо чайник в электротехнике если вы про то как подключены провода то минус идёт к минусу от блока питания а плюсы к пинам на ардуино
Плюсы или сигнальные входы? Не запитали реле через ардуину, случаем?
А мне чудится, что кнопки антенной работают. ТС - схему нарисуйте, как кнопки подключили?
UPD: Просмотрел, на пулл-апах, Поставьте физические резисторы <=4к7.
Ну вот, злой сорок первый уже носом ткнул.)))
Раз PULLUP в ините, то вход на массу замыкает кнопкой, полагаю. Разве что усилить внутренний резистор внешним.
реле запитал от блока питания вроде на 450вт от старого компа проводом на 5в, а кнопка по сути является 3 проводами которые замыкаются при нажатии
От +5 к пинам, на которые подключены кнопки, подключите резисторы 1к-4к7 и проверьте с ними.
1)в 62 и 73 строках замените == на =
2)каким образом определяется полное поднятие/опускание ворот - концевиками/программно или на глаз?
3)к каким пинам подключено реле?
там в самих воротах что-то типо концовиков стоят, реле к пинам 7 и 9
сегодня попробовал с резисторами на 10кОМ и 4к7 проблема все та же
Я тут подумал и попробую с библеотекой OneButton на команду longPressStart поставить подачу сигнала
Может кто помочь с написанием кода?
у меня Модуль реле 8-канальный для Arduino (с оптронной изоляцией, 12В, hight and low level trigger, реле Songle) на самом реле написано SRD-O5VDC-SL-C
надо поменять? На модуле с 1 реле такая же проблема
Если у вас реле 5-ти Вольтовые почему вы считаете что их надо питать 12-тью Вольтами?
я запитал его 5 вольтами
написал программу на библиотеке onebutton но выдаёт ошибку компиляции 'longPressStart1' was not declared in this scope
вот код, ошибка получается на 20 и 21 строке не могу понять почему
Слишком много скобок.
убрал несколько все-равно не компилирует
функции void longPressStart1() и void longPressStart2() размести перед лупом
gfx125 спасибо закомпилировал и установил на ардуину пошел проверять
Гип гип УРА! Все заработало, получается там какой-то короткий сигнал идёт на пины кнопок и longPressStart решает эту проблему.
Всем ОГРОМНОЕ спасибо за участие