Реле времени
- Войдите на сайт для отправки комментариев
Пнд, 19/09/2016 - 23:07
Доброго времени суток!
Я новичек. У меня проблема. нашел скетч для включения светодиода с задержкой. Пробовал реле китайское
тоже работает. Мне конечно лучше реле. Но в этом скетче только на один светодиод управление одной
кнопкой. а мне нужно управление двумя реле двумя кнопками независимо друг от друга. хочу управлять ставнями.
одно реле подымает и другое реле опускает. задержка каждого реле 20 сек на отключение. потому что мотор работает если кнопку держишь пока ставня до конца не опустится. а опускается или подымается примерно 20 сек.
Вот скетч.
int lamp = 2; // ЛАМПА
int breaker = 3; // ВЫКЛЮЧАТЕЛЬ
int SEK = 0; //Таймер времени
unsigned long wait = 0;
boolean state = false;
#define pulse 2
#define delayOff 20
void setup()
{
//Serial.begin(9600);
pinMode(lamp, OUTPUT);
pinMode(breaker, INPUT);
//digitalWrite(breaker, HIGH);
}
void loop()
{
int button = 0; // локальная переменная
button = digitalRead(breaker);
if(button == HIGH){
if(SEK == 0) state = true;}
if(state == true){
if(millis() - wait > 1000){
wait = millis();
SEK++;}}
if(button == HIGH){
if(SEK > pulse){
SEK = -10;
state = false;}}
if(SEK >= 1 && SEK < pulse) digitalWrite(lamp,HIGH);
if(SEK > delayOff){
SEK = 0;
digitalWrite(lamp, LOW);
state = false;}
if(SEK == -10){
digitalWrite(lamp, button);
if(button == LOW) SEK = 0;}
/*Serial.print("State - ");
Serial.print(state);
Serial.print(" Delay - ");
Serial.println(SEK);
delay(250);*/
}
Источник
Помогите пожалуйста.
Пробовал вот так не идет
int lamp1 = 2; // ЛАМПА
int lamp2 = 4;
int breaker1 = 3; // ВЫКЛЮЧАТЕЛЬ
int breaker2 = 5;
int SEK = 0; //Таймер времени
unsigned long wait = 0;
boolean state = false;
#define pulse 2
#define delayOff 20
void setup()
{
//Serial.begin(9600);
pinMode(lamp1, OUTPUT);
pinMode(lamp2, OUTPUT);
pinMode(breaker1, INPUT);
pinMode(breaker2, INPUT);
//digitalWrite(breaker, HIGH);
}
void loop()
{
int button = 0; // локальная переменная
button = digitalRead(breaker1);
button = digitalRead(breaker2);
if(button == HIGH){
if(SEK == 0) state = true;}
if(state == true){
if(millis() - wait > 1000){
wait = millis();
SEK++;}}
if(button == HIGH){
if(SEK > pulse){
SEK = -10;
state = false;}}
if(SEK >= 1 && SEK < pulse) digitalWrite(lamp1,HIGH);
if(SEK >= 1 && SEK < pulse) digitalWrite(lamp2,HIGH);
if(SEK > delayOff){
SEK = 0;
digitalWrite(lamp1, LOW);
digitalWrite(lamp2, LOW);
state = false;}
if(SEK == -10){
digitalWrite(lamp1, button);
digitalWrite(lamp2, button);
if(button == LOW) SEK = 0;}
/*Serial.print("State - ");
Serial.print(state);
Serial.print(" Delay - ");
Serial.println(SEK);
delay(250);*/
}
простите я тоже новичек и в вашем коде ничего не понял. но вопрос. вы хотите нажатием кнопки подать 1 на пин что бы он сохранялся 20 сек и нажатием другой на другой пин тоже самое?
.
глюк
так ставнями не управляют.
нужны обязательно концевые выключатели
режимы работы кнопок по усмотрению - держим-двигаемся или нажали-поехали до концевика
можно комбинированный вариант
так ставнями не управляют.
нужны обязательно концевые выключатели
режимы работы кнопок по усмотрению - держим-двигаемся или нажали-поехали до концевика
можно комбинированный вариант
Да вы меня правильно поняли каждая кнопка управляет отдельно. На ставнях концевики работают.
Просто не хочу кнопки держать пока закроются или откроются ставни. Первый скетч рабочий но только на одну кнопку . мне нужно всего лишь переделать первый скетч он рабочий. Я просто не знаю как это сделать . Две кнопки два реле . каждое при нажатии на кнопку включалось и только через 20 сек отключалось. Вот вообщем то и все. Если кто подскажет буду благодарен.
Да вы меня правильно поняли каждая кнопка управляет отдельно. На ставнях концевики работают.
Просто не хочу кнопки держать пока закроются или откроются ставни. Первый скетч рабочий но только на одну кнопку . мне нужно всего лишь переделать первый скетч он рабочий. Я просто не знаю как это сделать . Две кнопки два реле . каждое при нажатии на кнопку включалось и только через 20 сек отключалось. Вот вообщем то и все. Если кто подскажет буду благодарен.
нафига 20 сек если есть концевики ?
Я нажимаю на кнопку ставня опускается вниз отпускаю остонавливается и стою жду 20 сек пока она не закроется
совсем. а я хочу нажать на кнопку и идти дальше по своим делам пускай сама закрывается . вот и вся проблема. мне нужно чтоб я нажал на кнопку реле включилось и через 20 сек выключилось
Я не хочу держать. я хочу нажать и идти дальше по своим делам. а оно хай сомо закрывается. Автоматика должна быть полной.
Так зачем 20 сек если концевик отключает питание мотора
Так зачем 20 сек если концевик отключает питание мотора