«Мигающее» реле путем переключения контактов между входом и выходом

Изменить для поиска: Этот вопрос связан с использованием реле 5v с контактами Raspberry Pi GPIO, которые выводят 3,3 В.

Ниже приведен ряд замечательных вопросов, которые вы прочитали, чтобы понять, что происходит.

Если вам просто нужен tldr для того, что сработало для меня, это то, что я считаю для работы с моим:

  • 3.3v реле, как SRD-03VDC-SL-C, как показано ниже:
  • твердотельное реле 5v может работать, если сигнал может работать с 3,3 В, например. высокочастотный сигнал начинается с 2,5 В, например, это . Я также обнаружил, что реле, которое поставляется с оптроном, может работать, при условии, что у него есть отдельные контакты для оптопары vcc и катушки vcc, а оптрон может быть активирован с 3,3 В, например, this .

Я пытаюсь управлять реле 5v с помощью контактов GPIO.

Проводка устанавливается таким образом:

  • VCC реле подключен к физическому выводу № 4 (5v)
  • GND реле, подключенный к физическому выводу # 6 (GND)
  • Вход /сигнал реле подключен к физическому выводу № 8 (GPIO 14)

По какой-то причине я обнаружил, что реле активируется, когда контакт установлен в режим вывода, независимо от того, установлен ли он на высокий или низкий, и его можно отключить, установив его в режим ввода. По существу, мой «мигающий» код выглядит следующим образом:

GPIO.setmode(GPIO.BCM)
while True:
  GPIO.setup(14, GPIO.OUT)
  time.sleep(1)
  GPIO.setup(14, GPIO.IN)

Пока этот код, который я использовал для мигания светодиодов, ничего не делает (реле остается в режиме «включено»)

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.OUT)
while True:
  GPIO.output(14, GPIO.HIGH)
  time.sleep(1)
  GPIO.output(14, GPIO.LOW)

Мои вопросы:

  • Почему это так?
  • Это потому, что «низкое» состояние выходного вывода по-прежнему выдает ненулевое напряжение, которое достаточно высоко, чтобы активировать реле? Должен ли я установить промежуточный резистор между ними?
  • Это ожидаемое поведение?

Изменить: Поэтому я проводил дополнительное тестирование, и кажется, что реле также срабатывает, когда я подключаю входной контакт реле к одному из выводов GND от RPi. Из того, что я понимаю из чтения this , я считаю, это означает, что реле имеет триггер низкого уровня?

Я все еще не уверен, как это объясняет вышеизложенное поведение? Почему настройка вывода GPIO в выходной режим делает его выдающим то же поведение, что и вывод GND?

5 голосов | спросил hndr 18 62017vEurope/Moscow11bEurope/MoscowSat, 18 Nov 2017 16:59:24 +0300 2017, 16:59:24

3 ответа


1

На вашем релейном щите есть обведенный кругом компонент?

 Релейная плата с управлением транзисторной катушкой

Если да, тогда вам нужно найти таблицу данных для доски. Транзистор может быть настроен на включение катушки на низком входе ... т. Е. Заземление входного терминала. Или это может быть настройка для активации катушки на высоком входе ... т. Е. На вход подается 5 В. Если вы не можете найти больше информации в Интернете об этой конкретной доске, попробуйте обратиться в местный магазин за дополнительной информацией. Большинство людей из магазина электроники будут говорить ваши уши, если вы зададите вопрос или два ... Я знаю, потому что я был один раз.


Если вы смотрите руководство, связанное с @RichardChambers, тогда плата реле имеет транзистор и диод (оранжевый компонент с прозрачной упаковкой), указанный в цепи управления реле. Однако важно отметить, что транзистор может быть настроен на обратную логику. Тип транзистора определит, как работают входные функции. NPN BJT, сконфигурированный так же, как в приведенном выше руководстве, будет следовать обычной логике. Однако некоторые другие транзисторы могут использоваться для изменения чувствительности входного напряжения или, возможно, применяемой логики.

ответил RubberStamp 18 62017vEurope/Moscow11bEurope/MoscowSat, 18 Nov 2017 17:31:49 +0300 2017, 17:31:49
1
  

Я все еще не уверен, как это объясняет вышеизложенное поведение?

Поскольку Pi GPIO выводит только 3.3V, и, по-видимому, этого недостаточно, чтобы вызвать высокий уровень в цепи управления реле 5V.

По той причине, что использование этого параметра для ввода работает, вход реле, вероятно, вытягивается высоко, так что оно по умолчанию выключено. Входной файл GPIO находится в состоянии высокого импеданса (он же высокий Z), который отличается от выходной сигнал с высоким или низким уровнем; следовательно, GPIO действительно работают в терминах трех государственных логик . Состояние высокой Z очень похоже на провод, который не связан ни с чем, включая землю. Он имеет очень высокий импеданс и будет потреблять напряжение всего, что связано с меньшим сопротивлением - означает, что это, вероятно, не очень хорошая идея для вас, поскольку вы эффективно управляете входным сигналом Pi с 5 В, над допуском 3,3 В для штыря .

Вы можете дважды проверить состояние входа, чтобы подтвердить это (если вы хотите продолжать играть в азартные игры ...).

ответил goldilocks 18 62017vEurope/Moscow11bEurope/MoscowSat, 18 Nov 2017 19:06:50 +0300 2017, 19:06:50
0

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

Измените свой код соответственно:

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.OUT)
while True:

  # relay on
  GPIO.output(14, GPIO.LOW)
  time.sleep(1)

  # relay off
  GPIO.output(14, GPIO.HIGH)
  time.sleep(1)

Похожие сообщения: не может установить gpio на низкий уровень, пытаясь контролировать одноканальное реле (малина pi b +)

Для справки спецификация на моем модуле реле гласит:

  

IN1 - Контролирует реле 1, активное значение Low! Реле включается, когда этот вход   ниже примерно 2,0 В

http://modtronix.com/mod-rly2-5v.html

ответил CoderMike 18 62017vEurope/Moscow11bEurope/MoscowSat, 18 Nov 2017 19:10:28 +0300 2017, 19:10:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132