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

Нужно написать код на Arduino IDE

Влад чуенко Знаток (366), закрыт 6 лет назад
‌При включении ардуино включается реле (1) через n-время нажимается кнопка-концевик (1) и реле (1) останавливается. Через n-время включается реле (2) и так же через n-время останавливается кнопкой-концевиком (2). И снова через n-время проделываются действия (1). Также есть реле (3) которое должно включиться в n-время (1) и выключится в n-время (2) независимо от реле (1) и реле (2)
Лучший ответ
Леха Романов Гуру (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 время если все это подходит.
// и может быть где тут выход из цикла или что то еще тоже хрен знает как все это делать.
}
Влад чуенкоЗнаток (366) 6 лет назад
Ну, спасибо и на том добр человек. Приду домой буду пытаться.
Остальные ответы
Иван Сигаев Искусственный Интеллект (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 лет назад
ты ему китайские кубики дал у него ничего не будет работать или сломается сразу.
Влад чуенко Знаток (366) Ну сломать то не сломаю, просто времени вагон убью.
Άηϑρέΰ ҂ Искусственный Интеллект (179765) 6 лет назад
для концевиков нужно использовать прерывания...
Похожие вопросы