12

Arduino (Wemos D1 m1 v3.0) и 3 реле

Есть Wemos D1 и 3 реле. Прошу помощи в написании скетча, вот что я хочу:
Реле №1 (подключено к пину D4) включается на 15 минут, выключается на 45 минут;
Реле №2 (подключено к пину D3) включается на 2 часа, выключается на 4 часа;
Реле №3 (подключено к пину D2) включается на 8 часов, выключается на 16 часов.
Для одного реле написал скетч сам при помощи delay, а как для трёх реле реализовать?

Схема работы

Arduino/Ардуино проекты

19 постов466 подписчиков

Правила сообщества

— Не оскорблять администрацию.

— Не оскорблять других участников.

— Не затрагивать тему политики.

— Не материться!

— Не допускаются расистские высказывания, сексизм, национализм.

— Запрещена реклама сторонних проектов, товаров, сайтов, блогов, ютуб каналов.

— Нельзя публиковать картинки и комментарии явно сексуального характера.

— Нет спаму и фишингу!

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий
Вот что выдал ИИ
Конечно, я могу помочь в написании скетча для Ардуино. Вот примерный код, который должен выполнить требуемые действия:

```
const int relay1Pin = 4; // пин для управления реле №1
const int relay2Pin = 3; // пин для управления реле №2
const int relay3Pin = 2; // пин для управления реле №3

void setup() {
pinMode(relay1Pin, OUTPUT); // устанавливаем пины на выход
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
}

void loop() {
// включение/выключение реле №1
digitalWrite(relay1Pin, HIGH); // включаем реле №1
delay(15 * 60 * 1000); // ждем 15 минут
digitalWrite(relay1Pin, LOW); // выключаем реле №1
delay(45 * 60 * 1000); // ждем 45 минут

// включение/выключение реле №2
digitalWrite(relay2Pin, HIGH); // включаем реле №2
delay(2 * 60 * 60 * 1000); // ждем 2 часа
digitalWrite(relay2Pin, LOW); // выключаем реле №2
delay(4 * 60 * 60 * 1000); // ждем 4 часа

// включение/выключение реле №3
digitalWrite(relay3Pin, HIGH); // включаем реле №3
delay(8 * 60 * 60 * 1000); // ждем 8 часов
digitalWrite(relay3Pin, LOW); // выключаем реле №3
delay(16 * 60 * 60 * 1000); // ждем 16 часов
}
```

Пожалуйста, не забудьте проверить этот код перед использованием и проверить правильность подключения реле к Ардуино и внутри схемы в целом.
раскрыть ветку (6)
2
Автор поста оценил этот комментарий

Реле должны работать одновременно как на схеме

Иллюстрация к комментарию
2
Автор поста оценил этот комментарий
В чат сбросил ему всё со слов "вот что я хочу...".))
раскрыть ветку (4)
2
Автор поста оценил этот комментарий
Потом написал ему:
Я ошибся, три реле должны работать одновременно, пока есть питание на схеме. Можешь переписать скетч?
раскрыть ветку (3)
2
Автор поста оценил этот комментарий
Ответ:
Конечно, вот исправленный скетч:

```C++
const int relayPin1 = 4; // пин для первого реле
const int relayPin2 = 3; // пин для второго реле
const int relayPin3 = 2; // пин для третьего реле

void setup() {
pinMode(relayPin1, OUTPUT);
pinMode(relayPin2, OUTPUT);
pinMode(relayPin3, OUTPUT);
}

void loop() {
// включаем реле №1 на 15 минут, затем выключаем на 45 минут
digitalWrite(relayPin1, HIGH);
delay(900000); // 15 минут
digitalWrite(relayPin1, LOW);
delay(2700000); // 45 минут

// включаем реле №2 на 2 часа, затем выключаем на 4 часа
digitalWrite(relayPin2, HIGH);
delay(7200000); // 2 часа
digitalWrite(relayPin2, LOW);
delay(14400000); // 4 часа

// включаем реле №3 на 8 часов, затем выключаем на 16 часов
digitalWrite(relayPin3, HIGH);
delay(28800000); // 8 часов
digitalWrite(relayPin3, LOW);
delay(57600000); // 16 часов
}
```

Скетч будет поочередно включать и выключать все три реле в соответствии с заданными интервалами времени.
раскрыть ветку (2)
2
Автор поста оценил этот комментарий

delay() останавливает исполнение скетча на заданный интервал. Т.е. наткнувшись на первый делэй, программа уснет на 15 минут, и только потом пойдет исполнять следующую команду...

Вообще в ChatGPT код можно писать, только если точно сможешь за ним проверить.

0
Автор поста оценил этот комментарий
надо милс
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку