Леха Романов
Гуру
(3061)
6 лет назад
я не уверен что это все подходит ну написал.
void loop()
{
// свет включил
digitalWrite(Relay3 свет, HIGH); // или LOW // реле включено
// включил двиг
digitalWrite(Relay1 двиг, HIGH);
// проверка нажал ли двигатель на кнопку
// если кнопка была нажат то двигатель выключается
if (digitalRead(button кнопка 1) == HIGH) // или LOW // нажата ли кнопка
{
// если кнопка была нажат то двигатель выключается
digitalWrite(Relay1 двиг = LOW выкл)
// если нет то двигатель не выключается и код выполняется далее
}
// задержка 10 секунд как я понимаю
delay(10000);
// прошло 10 секунд
// включение реле2
digitalWrite(Relay2 двиг, HIGH);
// как это сделать я не знаю
// тут может быть if (relay2 = HIGH) {то двигаем двиг туда >}
// не знаю че дальше тут доходит до кнопки 2 и все не знаю че там
// или как проверить не знаю
// Выполнилась проверка или просто реле2 двигатель два включился
// и выполняем код
digitalWrite(Relay1 двиг, HIGH); // двигатель бежит куда то что ли
// доходит до кнопки 1 и останавливается как это проверить я не догоняю
// через 5 секунд выключается реле 3 свет
delay(5000);
// Выключение Реле3 свет
digitalWrite(Relay3 свет, LOW); //может LOW может HIGHT
// а вот N время или именно в нужное время как включить
// не знаю если вообще то что я написал тут это нормально
// то могу узнать наверно и как сверять часы там или
// как включить в N время если все это подходит.
// и может быть где тут выход из цикла или что то еще тоже хрен знает как все это делать.
}
Иван Сигаев
Искусственный Интеллект
(149588)
6 лет назад
Ничего не понял из данного запутанного ТЗ, но основные схемы просты
if (digitalRead(button) == HIGH) // нажата кнопка
digitalWrite(relay, HIGH); // включение реле
digitalWrite(relay, LOW); // выключение реле
time=millis(); // "засечка времени"
if(millis()>time+N) // "сработка" таймера
а теперь из этих "кубиков" собирай необходимые действия
Влад чуенкоЗнаток (366)
6 лет назад
Это я и сам нарыл, мне нужно как-то это все во едино собрать. Там одно if перекрывает другое.
AlexМыслитель (6599)
6 лет назад
Заведи одно или двухбайтные переменные для каждого из реле и крути из в таймере. Настрой скажем TIMER0 по переполнению. задай частоту и получишь что скажем каждые n переполнений счетчик увеличится на 1. Я не писал для ардуино. Пишу для меги и пиков, в основном на асме, но принцип один и тот же и да реле у тебя и так независимо включаются, ониже на отдельных пинах завязаны.
Влад чуенкоЗнаток (366)
6 лет назад
Более подробно: включается реле (3)"свет". Включается реле1(ход двигателя < ). Двигатель доходит до кнопки (1) и нажимает на неё. Эта кнопка останавливает реле (1). Проходит допустим 10секунд включается реле (2, ход двигателя >) доходит до кнопки (2) и останавливается. Проходит 10с
И реле (1 двигатель<) включается, доходит до кнопки 1и останавливается. Через 5 секунд выключается реле 3(свет)
Леха РомановГуру (3061)
6 лет назад
ты ему китайские кубики дал у него ничего не будет работать или сломается сразу.