Состояние выводов при подаче питания
- Войдите на сайт для отправки комментариев
Втр, 27/10/2020 - 17:16
Доброго времени суток!
Вопрос такой, есть схема управления воротами:
1. Arduino Uno;
2. Модуль реле из 4 реле;
3. Кнопки открыть, закрыть, стоп.
Логика работы такая, при нажатии на кнопку открыть/закрыть включается двигатель и работает до срабатывания концевика.
Проблема в следующем, при подаче питания оба реле включаются враз, после нажатия на кнопку стоп всё начинает работать как задумано, до следующего выключения питания. Не могу понять в чем причина.
const int RO = 8;
const int RC = 9;
const int buttonO = 2;
const int buttonC = 3;
const int buttonS = 4;
void setup() {
Serial.begin(9600);
pinMode (buttonO, INPUT_PULLUP);
pinMode (buttonC, INPUT_PULLUP);
pinMode (buttonS, INPUT_PULLUP);
pinMode (RO, OUTPUT);
pinMode (RC, OUTPUT);
}
void loop () {
if (digitalRead(buttonO) == LOW)
{
digitalWrite(RO, HIGH);
digitalWrite(RC, LOW);
}
if (digitalRead(buttonC) == LOW)
{
digitalWrite(RC, HIGH);
digitalWrite(RO, LOW);
}
if (digitalRead(buttonS) == LOW)
{
digitalWrite(RC, HIGH);
digitalWrite(RO, HIGH);
}
}
Не могу понять в чем причина.
в том что у вас реле управляются низким уровнем, то есть при подаче питания на управляющий пин реле выключено, при подключении GND - включено
Это следует из вашего кода кнопки Стоп
if (digitalRead(buttonS) == LOW) { digitalWrite(RC, HIGH); digitalWrite(RO, HIGH); }А теперь смотрите на последние строчки в Setup:
Эти строки равносильны подаче на реле управляющего LOW - поэтому-то реле при перехагрузке включаются.
Добавьте в Setup строчки из кода кнопки Стоп, чтобы реле после старта были выключены
Спасибо. Теперь всё работает.