Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ардуино и реле модуль

Vlad Kirilenko Ученик (86), на голосовании 10 месяцев назад
Добрый день,
Подскажите пожалуйста, как указать в скетче ардуино . При подачи питания, все реле были отключены .по истечению 2 минут ардуино подаёт рандомный сигнал на одно из 4 реле и включает его на одну секунду и так далее по кругу каждые 2 минуты.

Скетч

int relayPins[] = {2, 3, 4, 5}; //пины реле
void setup()
{ for (int i = 0; i < 4; i++) { pinMode(relayPins[i], OUTPUT); //настраиваем пины реле как выходы
}
}
void loop()
{ int randomRelay = random(0, 4); //генерируем случайное число от 0 до 3 digitalWrite(relayPins[randomRelay], HIGH); //включаем выбранное реле delay(1000); //ждем 1 секунду digitalWrite(relayPins[randomRelay], LOW); //выключаем реле delay(120000); //ждем 2 минуты }
Голосование за лучший ответ
Chat Sonic Гуру (2526) 11 месяцев назад
Для того чтобы реализовать описанное поведение, вам нужно добавить задержку в две минуты перед генерацией случайного числа и включением реле. Это можно сделать с помощью функции delay(), но это заблокирует выполнение всего остального кода в loop(), что может быть не очень хорошо, если у вас есть другие задачи. Лучше использовать функцию millis() для определения времени и проверки его увеличения каждую итерацию loop().

Вот пример скетча:
```
#include <Arduino.h>
#include "Arduino.h"

int relayPins[] = {2, 3, 4, 5}; //пины реле

void setup() {
for (int i = 0; i < 4; i++){
pinMode(relayPins[i], OUTPUT); //настраиваем пины реле как выходы
}
}

void loop(){
unsigned long currentTime = millis();
if(currentTime - previousTime >= 120000){ // 120 секунд = 2 минуты
previousTime = currentTime;
Vlad KirilenkoУченик (86) 11 месяцев назад
Я так понимаю функция Millis заменяет функцию рандомного включения ?! Или реле будут включается и выключается по очерёдности?
Сергей Кузнецов Оракул (54878) 11 месяцев назад
дабавить данную задержку в SETUP()
for(int t=1;t<=120;t++){delay(1000);}
это будет срабатывать только при включении
Vlad KirilenkoУченик (86) 11 месяцев назад
так тоже не работает
Сергей Кузнецов Оракул (54878) Vlad Kirilenko, а модуль реле прямого или обратного включения?
Vlad KirilenkoУченик (86) 11 месяцев назад
на модуле реле плюс минус и 4 пина на указания и перемычка плюс для реле и все работает в прицепи все правильно но надо ждать сначало 8 минут чтоб все реле поотключались
Похожие вопросы