Arduino отвечает на ввод с вывода данных HT12D

Есть ли способ подключить контакт вывода данных от HT12D к входному контакту Arduino или ESP8266-12e, а затем определить, когда контакт данных активирован, чтобы я мог заставить Arduino или ESP8266-12e сделать что-то вроде включения выходной контакт?

, 👍-2

Обсуждение

Что такое HT12D?, @Majenko

Конечно, пока уровни напряжения подходят для Arduino или ESP, просто подключите контакты данных к цифровым входам Arduino или ESP., @chrisl

ESP 3,3В, а HT12D 5В. Могу ли я использовать резисторы в качестве делителя напряжения. Какой код я бы использовал для распознавания ввода? Я думаю, что HT12D — это устройство, которое принимает радиочастотный сигнал и превращает его в цифровой сигнал., @user1114881


2 ответа


1

Боюсь, я не смог правильно понять ваш вопрос. Но может быть, ответ ДА, если...

Прежде всего, ВЫХОДНЫЕ выводы нельзя включать и выключать, однако вы можете начать или остановить ЧТЕНИЕ этого конкретного ВЫХОДНОГО ПИН на основе другого значения ВХОДНОГО контакта.

Если вы хотите подключить декодер HT12D к любому arduino или ESP, вы должны знать, что между выводами ввода-вывода должен использоваться одинаковый уровень напряжения, хорошим подходом является использование двунаправленного переключателя уровня I2C.

if(INPUT_PIN_VALUE >= SOME_VALUE)
{
   digitalRead(PIN)
}
,

на ESP я могу сделать контакт D5 ВЫСОКИМ на основе чтения другого входного контакта от HT12D. Итак, если бы я использовал l2C, чтобы сделать 5v от HT12D вычисляемым с 3.3v ESP. Я мог прочитать входной уровень, а затем в ответ сделать другой контакт ВЫСОКИМ. цифровое чтение (D5); if(D5>=SomeValue){ digitalWrite(D6,HIGH);, @user1114881


0

Отказ от ответственности: в этом ответе я использую ESP и Arduino взаимозаменяемо, как если бы они были одинаковыми. Они в контексте этого вопроса, а не вообще.

Во-первых: в соответствии с техническим описанием HT12D, напряжение питания может быть между 2,4 В и 12 В, поэтому вы можете просто подать на него 3,3 В вашего ESP. Таким образом, выходные контакты также будут работать на 3,3 В. Затем вы можете просто провести провод от выхода чипа к цифровому входу Arduino.

Хотя тогда вы также должны обеспечить микросхему приемника напряжением 3,3 В. Если это невозможно, вы можете подать на HT12D 5 В и использовать простые делители напряжения на каждом выходе, чтобы снизить напряжение до 3,3 В. Это накладывает ограничения на скорость передачи, но я не думаю, что это здесь уместно, так как выходы больше подразумеваются как выходы мгновенного состояния, а не выходы передачи данных. В этом случае вы подключаете выход делителя напряжения к одному цифровому входу на Arduino каждый.

Как читать данные:

Чип будет считывать данные с приемника на свой контакт Din. Когда он находит действительную передачу для используемого адреса (который настраивается с помощью адресных контактов), он переводит контакт VT в состояние HIGH и выводит новые данные на контакты. В техническом описании сказано:

HT12D, с другой стороны, предоставляет контакты данных с 4 защелками, данные которых остаются неизменными до тех пор, пока не будут получены новые данные.

Представим, что вы отправили шаблон HIGH, LOW, HIGH, LOW. HT12D увидит это как достоверные данные и установит выходные данные в соответствии с этим шаблоном. Вывод VT имеет высокий уровень, чтобы показать, что поступили новые достоверные данные. Теперь вы можете прочитать этот шаблон в Arduino с помощью нескольких вызовов digitalRead(), по одному для каждого выходного контакта HT12D.

Сопутствующий код зависит от ваших потребностей. Например, вы можете просто непрерывно считывать контакты снова и снова, каждый раз просто выводя соответствующие данные. Например так:

void loop(){
    if(digitalRead(HT12D_pin1)) digitalWrite(LED_pin, HIGH);
}

Или еще проще:

void loop(){
     digitalWrite(LED_pin, digitalRead(HT12D_pin1));
}

Или вы также можете прочитать вывод VT HT12D и что-то делать только в том случае, если он ВЫСОКИЙ. Таким образом, вы действуете только в том случае, если получены достоверные данные.


Для получения дополнительной информации вам действительно нужно улучшить свой вопрос.

,