Думаю вот так должно получиться. Не проверял, т.к. Ардуину подключил к работе, не хочу снимать для проверки.

Получается так:
Переменную ВыклСветаН в каждом цикле передаю во временную переменную "Сутки". Далее проверяю, меньше времени включения и меньше текущего времени? Если меньше, значит идет переход через сутки, и чтобы небыло ложного срабатывания, временной переменной присваиваю значение, например 5000, что явно больше 2359. И далее проверка на отключение идет по временной переменной.
Когда будет полночь, время будет 0000, условие не выполнится и переменная "Сутки" будет равна заданному значению времени отключения. И отключение произойдет в указанное время без ложных срабатываний.
Как-то так
Добавлено (27.09.2016, 14:37)
---------------------------------------------
Вернее вот более правильная картинка включения и выключения света (таймера) по указанному времени, с переходом на новые сутки
