Эффекты для адрески "встают" при попытке их переключить

Arsenii

✩✩✩✩✩✩✩
23 Июн 2021
4
0
Хотел добавить bluetooth управление к своем проекту, но почему-то, при попытке переключить эффекты, эти самые эффекты перестают двигаться. Пробовал уже и в switch запихнуть, не помогло. Видимо глаз уже замылился, не могу найти причину. Буду благодарен если поможете. Код приложил.Думаю, что проблема может быть в самих эффектах
1716318582963.png
 

Сотнег

★★★★★★★
15 Янв 2020
4,446
1,520
@Arsenii,
если mode_change отличен от символов нуля и единицы, тогда этот код ничего не рисует.
Вместо else if оставьте просто else.
 

Arsenii

✩✩✩✩✩✩✩
23 Июн 2021
4
0
Сегодня попробовал, а также попробовал снова switch, и кажется, я понял в чём дело - переменной mode_change в момент прихода сигнала присваивается char "0" или "1", но сразу же опустошается, как это решить?проблема2.png
 

Вложения

Сотнег

★★★★★★★
15 Янв 2020
4,446
1,520
Хотел добавить bluetooth управление
Думаю, когда начнёте обрабатывать команды от bluetooth, проблема отпадёт сама собой.

Ну или проверяйте, какой сигнал приходит, и присваивайте в mode_change только разрешённые варианты.
 

Arsenii

✩✩✩✩✩✩✩
23 Июн 2021
4
0
В com-порт выводится состояние переменной mode_change, которое я присылаю с помощью bluetooth терминала с телефона
 

Sergo_ST

★★★★★★✩
15 Мар 2020
996
831
@Arsenii, Просто проверяйте принятый символ на разрешенный диапазон как и сказал @Сотнег, а всё лишнее просто "выкидывайте":
C++:
if (mySerial.available() > 0) { //если доступны символы для чтения
  uint8_t temp = mySerial.read(); //записали текущий символ в буфер
  if ((temp >= '0') && (temp <= '9')) mode_change = temp; //если текущий символ находится в диапазоне от 0 до 9, то изменяем текущий режим
}