const int TrigPin = 7;
const int EchoPin = 8; // Изменен пин
const int relayPin = 5; // Пин для реле
const int timer_led = 2;
int position = 0;
void setup() {
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(timer_led, OUTPUT);
digitalWrite(relayPin, HIGH); // Начальное состояние - реле выключено
}
void loop() {
// Формируем импульс для сонара
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
long duration = pulseIn(EchoPin, HIGH);
int distance = duration * 0.034 / 2; // Расчет расстояния в см
if (distance < 90) { // Если расстояние менее 90 см
digitalWrite(timer_led, LOW); // Инвертированная логика
position++;
} else {
digitalWrite(timer_led, HIGH);
}
delay(100);
if (position > 0 && digitalRead(timer_led) == HIGH && digitalRead(relayPin) == HIGH) {
digitalWrite(relayPin, LOW); // Включаем реле (активный низкий уровень)
position = 0;
}
if (position > 6) {
digitalWrite(relayPin, HIGH); // Выключаем реле
position = 0;
delay(1000);
}
}
Скетч есть, но проблема с реле. Реле работает на логический ноль, а у меня логическая единица. Пробивал менять ,не получилось. Возможно из-за микроконтроллера Ардуино нано-скорее выходы перепутал. Собрал на УНО ,но проблема не исчезла. Сигнал на вкл. реле идёт, но как 1,а не ноль.
Помогите пожалуйста.
Схему прилагаю. Реле не одинарное а из 4 шт. СКЕТЧ :