1 кнопка - несколько действий

maksmkv
Offline
Зарегистрирован: 07.04.2013
Как реализовать управление еще 1 группой лампочек, т.е:
 
1 - 1 включаем 4 лампы -команда посылки 0x36 || 0x10036 команда отправки mySwitch.send(7652200,24); 
2- если снова нажали, то выключается люстра, 
3- если снова нажали, то включились 3 лампы , другие команда посылки 0x36 || 0x10036 команда отправки mySwitch.send(7652550,24); 
4 - если снова нажали, то выключается люстра
5- включаем все лампы - команда посылки 0x36 || 0x10036, команда отправки mySwitch.send(7652200,24); и mySwitch.send(7652550,24); 
6 - выключаем люстру
Далее по новой 
 
 
Можно хотя бы толкнуть в алгоритм, а то пока не соображу через, if или case или while такое реализовать. Спасибо
 
 
Вот набросал:
 
int flag=0;


if ((results.value == 0x36) || (results.value == 0x10036) && flag==0)
    {
     mySwitch.send(7652200,24);  // 1 включаем 4 лампы -команда посылки 0x36 || 0x10036 команда отправки mySwitch.send(7652200,24); 
     flag = 1;
    } 
    
if ((results.value == 0x36) || (results.value == 0x10036) && flag==1)
    {
     mySwitch.send(7652200,24); // если снова нажали, то выключается люстра, 
     flag =2;
    }   

if ((results.value == 0x36) || (results.value == 0x10036) && flag==2)
    {
     mySwitch.send(7652550,24); // если снова нажали, то включились 3 лампы , другие команда посылки 0x36 || 0x10036 команда отправки mySwitch.send(7652550,24); 
     flag =3;
    } 

if ((results.value == 0x36) || (results.value == 0x10036) && flag==3)
    {
     mySwitch.send(7652550,24); // если снова нажали, то выключается люстра
     flag =4;
    }       
if ((results.value == 0x36) || (results.value == 0x10036) && flag==4)
    {
     mySwitch.send(7652200,24);
     delay(100);
     mySwitch.send(7652550,24); // включаем все лампы - команда посылки 0x36 || 0x10036, команда отправки mySwitch.send(7652200,24); и mySwitch.send(7652550,24); 
     flag = 5;
    }   

if ((results.value == 0x36) || (results.value == 0x10036) && flag==6)
    {
     mySwitch.send(7652200,24);
     delay(100);
     mySwitch.send(7652550,24); // Выключаем люстру
     flag = 0;
    }           

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Вам нужен один счетчик прилетевших 0x36 || 0x10036, одно условие, обнуляющее счетчик при максимальном значении, один флажок "потрачено" и свич на счетчик.

strarbit
Offline
Зарегистрирован: 12.06.2016

вы, имеете обратная связь IR? Для конпки просто установите счетчик.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

maksmkv, а цифровой автомат? Не щи лаптем наваристее.

mkvmaks
Offline
Зарегистрирован: 07.07.2013

с пульта IR, обратно 433 мгц.

mkvmaks
Offline
Зарегистрирован: 07.07.2013

0х36 и 0х10036 это одна и таже команда. Коды прочииал с пульта и он отсылает каждый раз, то 0х36, 0х36 , то раз и 0х10036 и как их делить хз

mkvmaks
Offline
Зарегистрирован: 07.07.2013

пошел гуглить - пока не знаю, что это

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
b707
Offline
Зарегистрирован: 26.05.2017

Это бритый Макс 100500?

maksmkv
Offline
Зарегистрирован: 07.04.2013

Глянул видео, но у меня из IR переделывается в 433МГц., но у меня  нет обратной связи-  послал  и все.