Мы установили Arduino uno, который контролирует плату реле. Реле возбуждаются при установке LOW и ничего не делают при приеме сигнала HIGH. Эти реле используются для открытия/закрытия дверей, и мы сталкиваемся с большой проблемой, потому что двери открываются «по их собственным», возможно, 1 раз в день или, возможно, 1 раз в 2 или 3 дня (случайная мода) ...Как читать выходные значки на Arduino?
Мы видели, что наша система не посылает команды (AT), чтобы открывать двери, и мы подозреваем, что выходное напряжение Arduino HIGH может снизиться на несколько мс, а затем плата ретранслятора обнаруживает это как сигнал и реле горячится ...
Итак, теперь вопрос программного обеспечения ...
Как я могу прочитать реальный выход булавки и проверить, есть ли какие-то моменты, когда напряжения становятся LOW, а эти выходные контакты устанавливаются ВЫСОКАЯ? Чтобы сделать это, я прочитал другую questions на SO, и я сделал следующее:
const int PIN_GARAGE = 3;
void setup() {
Serial.begin(9600);
pinMode(PIN_GARAGE, OUTPUT);
digitalWrite(PIN_GARAGE, HIGH);
}
void loop() {
// Ommited code that processes commands sent to the Arduino
if (!digitalRead(PIN_GARAGE)) {
Serial.print(millis());
Serial.print(" LOW VOLTAGE ON PIN ");
Serial.println(PIN_GARAGE);
}
}
Я не уверен, что если делать digitalRead()
на OUTPUT
штифт установлен в ВЫСОКИЙ всегда будет возвращать 1
вместо текущая реальная стоимость, что мне и нужно.
Спасибо за ваш ответ! Я пропустил этот ответ среди всех ответов ... (Интересно, почему у него просто +2 ...). Примечание: я подключил сопротивление 1K на входных выводах, ограничивающих ток. Посмотрите, что произойдет! – Caumons