Официальный сайт компании Arduino по адресу arduino.cc
таймер с кнопкой вкл. выкл
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 02/11/2016 - 15:25
алгоритм такой после нажатия кнопки1 включается реле1 и запускается таймер на 3 часа , и выключается сам или по повторному нажатию кнопки1 и так со всеми.
int switchPin1 = 8;
int ledPin1 = 13;
boolean lastButton1 = LOW;
boolean currentButton1 = LOW;
boolean ledOn1 = false;
int switchPin2 = 9;
int ledPin2 = 12;
boolean lastButton2 = LOW;
boolean currentButton2 = LOW;
boolean ledOn2 = false;
int switchPin3 = 5;
int ledPin3 = 7;
boolean lastButton3 = LOW;
boolean currentButton3 = LOW;
boolean ledOn3 = false;
int switchPin4 = 3;
int ledPin4 = 6;
boolean lastButton4 = LOW;
boolean currentButton4 = LOW;
boolean ledOn4 = false;
int switchPin5 = 4;
int ledPin5 = 2;
boolean lastButton5 = LOW;
boolean currentButton5 = LOW;
boolean ledOn5 = false;
void setup()
{
pinMode(switchPin1, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(switchPin2, INPUT);
pinMode(ledPin2, OUTPUT);
pinMode(switchPin3, INPUT);
pinMode(ledPin3, OUTPUT);
pinMode(switchPin4, INPUT);
pinMode(ledPin4, OUTPUT);
pinMode(switchPin5, INPUT);
pinMode(ledPin5, OUTPUT);
}
boolean debounce1(boolean last)
{
boolean current1 = digitalRead(switchPin1);
if(last != current1)
delay(5);
current1 = digitalRead(switchPin1);
return current1;
}
boolean debounce2(boolean last)
{
boolean current2 = digitalRead(switchPin2);
if(last != current2)
delay(5);
current2 = digitalRead(switchPin2);
return current2;
}
boolean debounce3(boolean last)
{
boolean current3 = digitalRead(switchPin3);
if(last != current3)
delay(5);
current3 = digitalRead(switchPin3);
return current3;
}
boolean debounce4(boolean last)
{
boolean current4 = digitalRead(switchPin4);
if(last != current4)
delay(5);
current4 = digitalRead(switchPin4);
return current4;
}
boolean debounce5(boolean last)
{
boolean current5 = digitalRead(switchPin5);
if(last != current5)
delay(5);
current5 = digitalRead(switchPin5);
return current5;
}
void loop()
{
currentButton1 = debounce1(lastButton1 == LOW);
if (lastButton1 == LOW && currentButton1 == HIGH)
ledOn1 = !ledOn1;
lastButton1 = currentButton1;
digitalWrite(ledPin1, ledOn1);
currentButton2 = debounce2(lastButton2 == LOW);
if (lastButton2 == LOW && currentButton2 == HIGH)
ledOn2 = !ledOn2;
lastButton2 = currentButton2;
digitalWrite(ledPin2, ledOn2);
currentButton3 = debounce3(lastButton3 == LOW);
if (lastButton3 == LOW && currentButton3 == HIGH)
ledOn3 = !ledOn3;
lastButton3 = currentButton3;
digitalWrite(ledPin3, ledOn3);
currentButton4 = debounce4(lastButton4 == LOW);
if (lastButton4 == LOW && currentButton4 == HIGH)
ledOn4 = !ledOn4;
lastButton4 = currentButton4;
digitalWrite(ledPin4, ledOn4);
currentButton5 = debounce5(lastButton5 == LOW);
if (lastButton5 == LOW && currentButton5 == HIGH)
ledOn5 = !ledOn5;
lastButton5 = currentButton5;
digitalWrite(ledPin5, ledOn5);
}
Ощущаю некоторую недосказанность в теме (и в скетче)...
вот так надо оформлять
я хотел чтоб мне помогли усовершенствовать скетч
класс титановый велосипед для тактовой кнопки.
я хотел чтоб мне помогли усовершенствовать скетч
А можно Ваши хотелки поподробнее? Цель усовершенствования? Что именно не устравивает в нынешнем?
добавить таймер к данному скетчу
добавить таймер к данному скетчу
Простите, я ещё раз напишу, но больше не буду.
Если Вы хотите помощи, потрудитесь объяснять что Вам нужно понятно и подробно.
Вот что значит "добавить таймер"? Для чего его добавлять и что этот таймер должен делать?
Пока же Вам можно лишь посоветовать "ну, купите таймер и примотайте его скотчем к ардуине".
Если Вы не хотите обяснять что Вам нужно подробно и понятно, не удивляйтесь, что Вам либо вовсе не ответят, либо постебаются как про скотч выше.
Алгоритм такой после нажатия кнопки1 включается реле1 и запускается таймер на 3 часа , и выключается сам и может выключиться по нажатию кнопки и так со всеми.
Просто в данном скетче установленна защита от дребежания кнопки и надо добавить к нему после нажатия кнопки включается реле, запустился таймер на 3 часа и по окончанию он выключает реле, но реле с таймером можно выключвить с помощью тойже кнопки.
я хотел чтоб мне помогли усовершенствовать скетч
Что там соверщенствовать? Сейчас это просто клочек непонятно чего!
Могу проедложить ТРИ пути:
1. Пойти в институт и может быть там смогуть тебя чему-то научить
2. Напрячь мозг и попытаться выучить это самостоятельно (информации сейчас в отличии от 70-80х годов прошлого столетия не море а просто океан)
3. Заплатить денег тем у кого есть мозги, знания и свободное время......
PS - любая задача начинается с ТЗ - технического задания.
И самое главное , что если вам "нарисуют" код, то вы в нем разберетесь. Вот как в этом. Там только на 2 реле
qwone, в твоем говнокоде нет смысла разбираться, пока ты не исправишь в нем ошибки.