lipov-andrey
26.08.2016, 00:02
Ситуация в следующем работаю с каном авто, все кнокпи работают по кану.
Хочу подключить их чтобы управлять Ардуинкой в своих личных целях.
Ардуина будет управлять Андройд приставкой.
Имеется UNO (https://duino.ru/arduino-uno-r3.html) и Atmega 2450.
Написал скетч на обработку одиночного нажатия, а вот с длительным не могу справится.
то есть например нажимаю 1 раз кнопку звук + и приходит 2-3 одинаковых сигнала в кан пусть будет 12345.
То есть если жму долго он так и будет кидать в лог:
12345 12345 12345 12345 12345 12345
Вот мне нужно при удерживании скажем более 8 секунд сделать чтобы он выполнял другое действие.
Пробовал millis() ставить, но он к сожалению не обнуляется.
Пока что работает только один мой вариант по количеству, то есть если пришло в лог более 8 одинаковых сигналов 12345 то выполнять долгое действие, но это не очень удобно, так как счетчик не обнуляется а постоянно по кругу идут.
Или может подскажите как обнулять счетчик если допустим между действиями прошло более скажем 3 секунд.
Сейчас у меня что то типа этого:
if(rpId == 410) //Нажата кнопка след. трек >>
{
irsend.sendNEC (0x11E937,32);
Serial.println("Next track");
}
А нужно чтобы при длительном нажатии на кнопку другое действие.
Что то типа этого :
if(rpId == 410) //Нажат кнопка след. трек >>
{
nextrack = nextrack++
if (nextrack > 8)
{
irsend.sendNEC (0x15D937,32);
Serial.println("Next LOND press track");
}
irsend.sendNEC (0x11E937,32);
Serial.println("Next track");
}
Но в этом случае каждое 8ео нажатие выдается как долгое, хоть по одному разу жми хоть по долгу.
То есть нет срабатывания сброса как бы.
Заранее благодарен, Андрей.
Хочу подключить их чтобы управлять Ардуинкой в своих личных целях.
Ардуина будет управлять Андройд приставкой.
Имеется UNO (https://duino.ru/arduino-uno-r3.html) и Atmega 2450.
Написал скетч на обработку одиночного нажатия, а вот с длительным не могу справится.
то есть например нажимаю 1 раз кнопку звук + и приходит 2-3 одинаковых сигнала в кан пусть будет 12345.
То есть если жму долго он так и будет кидать в лог:
12345 12345 12345 12345 12345 12345
Вот мне нужно при удерживании скажем более 8 секунд сделать чтобы он выполнял другое действие.
Пробовал millis() ставить, но он к сожалению не обнуляется.
Пока что работает только один мой вариант по количеству, то есть если пришло в лог более 8 одинаковых сигналов 12345 то выполнять долгое действие, но это не очень удобно, так как счетчик не обнуляется а постоянно по кругу идут.
Или может подскажите как обнулять счетчик если допустим между действиями прошло более скажем 3 секунд.
Сейчас у меня что то типа этого:
if(rpId == 410) //Нажата кнопка след. трек >>
{
irsend.sendNEC (0x11E937,32);
Serial.println("Next track");
}
А нужно чтобы при длительном нажатии на кнопку другое действие.
Что то типа этого :
if(rpId == 410) //Нажат кнопка след. трек >>
{
nextrack = nextrack++
if (nextrack > 8)
{
irsend.sendNEC (0x15D937,32);
Serial.println("Next LOND press track");
}
irsend.sendNEC (0x11E937,32);
Serial.println("Next track");
}
Но в этом случае каждое 8ео нажатие выдается как долгое, хоть по одному разу жми хоть по долгу.
То есть нет срабатывания сброса как бы.
Заранее благодарен, Андрей.