Действие on/off надо делать не по кнопке, а по флагам:
- последнее срабатывание не мотало (light--, light++)
- отпущено раньше чем минимум 3 мотания
Соответственно, на условие мотать +/- с шагом надо добавить: получить минимум 3 кода этой кнопки, поставить флаг что это не однократная кнопка. Отличить нажимание от удерживания возможно только так, то есть однократное условие проверяет реально не саму кнопку а отпускание кнопки. Не позже определённого момента (в данном примере 3 срабатывания). Иначе мотать +/-.
А как сделать так чтобы при уменьшении яркости до минимума при удержании кнопки не включался опять канал?
ты изменил шаг на 5. а условие
не поправил на
в другую сторону аналогично
все равно не понял. я имею ввиду чтобы кнопка вкл. была яркость + а кнопка выкл. яркость - вот что !
byte переменная может принимать значения от 0 до 255
если например к 254 добавить 1 получим 255. еще раз и будет 0. возникает переполнение
и тоже самое когда 249+5=254. 254+5=3. началось сначала. вот такая математика
поэтому если неправильно настроил условия у тебя постоянно будет перескакивать
да неее ! я знаю не перескакивает просто я имею ввиду чтобы кнопка вкл. была яркость + а кнопка выкл. яркость - вот что
сейчас работает только яркость и все!
я взял твой переделанный код и просто поменял кнопки местами для регулировки яркости
попробуй загрузи себе и все поймешь !
не хочу
ладно все равно большое спасибо за помощь !
допиливай код как тебе уже будет удобно. удачи
rave0000, у меня нечто подобное есть: http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku?page=5#comment-89760
Действие on/off надо делать не по кнопке, а по флагам:
- последнее срабатывание не мотало (light--, light++)
- отпущено раньше чем минимум 3 мотания
Соответственно, на условие мотать +/- с шагом надо добавить: получить минимум 3 кода этой кнопки, поставить флаг что это не однократная кнопка. Отличить нажимание от удерживания возможно только так, то есть однократное условие проверяет реально не саму кнопку а отпускание кнопки. Не позже определённого момента (в данном примере 3 срабатывания). Иначе мотать +/-.