Таймер

white46
Offline
Зарегистрирован: 14.02.2016

Здравствуйте. Подскажите, пожалуйста, как можно реализовать такую фишку: мне нужно, чтобы каждые 6 часов с ардуино на реле подавался сигнал длиной секунд 10. В интернете посмотрел, но мне показалось, что их коды перегружены лишней информации. Хотелось, чтобы код занимал мало места и был прост

Клапауций 232
Offline
Зарегистрирован: 05.04.2016
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
#define SIGNAL_PIN	3

void setup() {
  pinMode(SIGNAL_PIN, OUTPUT);

}

void loop() {
  digitalWrite(SIGNAL_PIN, HIGH);	// включить сигнал
  delay(1000 * 10);	// ждать 10 секунд
  digitalWrite(SIGNAL_PIN, LOW);	// выключить сигнал
  delay(1000ul * 60 * 60 * 6);	// ждать 6 часов
}

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП уже привёл решение, однако, я уточню: есть реле, которые включаются по низкому уровню, есть - которые по высокому. Поэтому прямое указание HIGH как "включить реле" - неверно, надо определить константы уровней для включённого и выключенного реле, и в коде юзать уже именно их, как-то так:

#define SIGNAL_PIN	3
#define RELAY_ON LOW // уровень для включения реле
#define RELAY_OFF HIGH // уровень для выключения реле

void setup() {
  pinMode(SIGNAL_PIN, OUTPUT);

}

void loop() {
  digitalWrite(SIGNAL_PIN, RELAY_ON);	// включить сигнал
  delay(1000 * 10);	// ждать 10 секунд
  digitalWrite(SIGNAL_PIN, RELAY_OFF);	// выключить сигнал
  delay(1000ul * 60 * 60 * 6);	// ждать 6 часов
}

А то у меня, например, все реле вкл по низкому уровню ;)

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

нафига вообще делают такие реле? Они при включении питания всегда дрыгаются, ибо изначально уровень LOW.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

В смысле - реле, включающиеся по низкому уровню? Так это правильней и грамотней, да и не дрыгается ничего, вообще-то - надо пользовать расово верные модули :) Да даже если дрыгаются - что мешает подтянуть линию к питанию, чтоб не дрыгались?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

DIYMan пишет:

что мешает

враги

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Tomasina пишет:

нафига вообще делают такие реле? Они при включении питания всегда дрыгаются, ибо изначально уровень LOW.

Изначально не LOW, а Hi-Z (ибо вход). LOW там появится, когда проинициализируем пин на выход.

Чтобы не дёргалось, делаем так:

setup()
{
  digitalWrite(pin, HIGH);
  pinMode(pin, OUTPUT);
}

То есть, сначала включаем подтягивающий резистор в режиме входа, а только потом переводим на выход. И никакого LOW там не будет.