Реле Tianbo - ресурс 10 млн переключений

Параллельная работа двух реле от Arduino UNO

Новичок
 
Регистрация: 03.02.2017
Сообщений: 6
Репутация: 10
 
03.02.2017 23:53 #1
Здравствуйте. Помогите пожалуйста реализовать проект.

Нужно запитать два реле по следующему алгоритму работы:

1. Включается реле №1 на 1с.

2. Реле №1 выключается на 10 минут.

3. Через 2 секунду после включения реле №1 включается реле №2.

4. Реле 2 отключается через 1 с работы на 10 минут.

Цикл замкнутый (пока не отключу кнопкой). Включать-включать хочу всё с одной кнопки.

Не судите строго - читаю про Ардуино 3й день и пользуясь исключительно видеоуроками из Ютуба попытался написать следующее.

void setup() {
pinMode(13, OUTPUT); // реле №1
pinMode(11, OUTPUT); // реле №2
pinMode(12, INPUT_PULLUP); // кнопка включения-выключения
}
void loop() {
if ( digitalRead(12) == LOW ) digitalWrite(13, 11, HIGH);
else digitalWrite(13, 11 LOW);
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(11, HIGH);
delay(1000);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(13, LOW);
delay(9000);
digitalWrite(11, LOW);
delay(9000);
}
}
Поскольку параллельное выполнение задач вроди как невозможно (опять же исходя из моих скромных знаний), попытался реализовать последовательно.
Проаверить пока даже негде - только завтра обещали прислать "комплект новичка" на базе Arduino UNO. Ранее вообще к программированию отношения не имел, так что не судите строго пожалуйста.
Всем заранее спасибо.
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Новичок
 
Регистрация: 30.03.2010
Сообщений: 24
Репутация: 13
3 0
0 0
 
04.02.2017 09:32 #2

У Вас 3 задачи - кнопка, реле1 и реле2

В цикле Вы должны последовательно все эти 3 задачи решать. По простому, скачите с одной на другую и нигде не застряёте. И все будут довольны.))
Оценка
Новичок
 
Регистрация: 06.12.2017
Сообщений: 4
Репутация: 10
0 2
0 0
 
06.12.2017 23:22 #3
Цитата:
Сообщение от iven83
видеоуроками из Ютуба
Не надо из Ютюба... Читать - лучше и быстрее.
Очень редко надо delay, это останавливает выполнение всего.
Вбейте в поисковике что-то типа "arduino замена delay"
Потом "arduino кнопка прерывание".
Что у Вас сейчас происходит - на краткий миг Ардуина смотрит, нажата ли кнопка или нет. Потом погружается в долгую процедуру "что-то включим, заснем на секунду, что-то выключим, поспим". Потом опять на краткий миг между прошлым и будущим взглянет на кнопку - не нажата ли в эту долю секунды.

Параллельное выполнение задач (во внешем мире - не на уровне кода) на Ардуино зависит от тактовой частоты процессора Ардуины и от количества и трудоемкости этих задач.
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
07.12.2017 14:38 #4
Вместо функции delay() в основном цикле используйте millis(). Как реализовать тайминги с помощью этой функции полно информации в сети
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 13.05.2021
Сообщений: 2
Репутация: 10
 
16.05.2021 16:15 #5
Я тоже недавно начал заниматься Arduino. Для проверки можно и не пользоваться отладочными платами. Для этого существуют программы эмитаторы, в торорых вы можите вертуально собирать схему и проверять в реальныз данных, где вы увидите: работает ли ваш скейч и с помощью этого корректировать программу.
рекомендую:
1. https://www.tinkercad.com/dashboard
2. очень хорошая Proteus8- ее используют профи
3. Virtual BreadBoard
и много другого.
Для программирования рекомендую русскую программу FLPROG- программарование блоками. Почти похожая тоже русская, но к сожалению на "ангельском" XOD IDE от Амперки ( обещают сделать тоже на русском)- ею еще не пользовался.
Адександр
Оценка
Новичок
 
Регистрация: 30.03.2010
Сообщений: 24
Репутация: 13
3 0
0 0
 
17.05.2021 08:44 #6
Вариант для ТС
Код:
void loop() {
  begin(t1);
    on(RELAY1);
    wait(t1, 1000);
    off(RELAY1);
    wait(t1, MIN(10));
  end(t1);

  begin(t2);
    wait(t2, 2000);
    on(RELAY2);
    wait(t2, 1000);
    off(RELAY2);
    wait(t2, MIN(10));
  end(t2);

  if (pin(KEY))
    halt();
}
Оценка
Ответ
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 02:26.
Обратная связь РадиоЛоцман Вверх