ARDUINO ШИМ + функция tone() и выполнение if условия в loop только 1 раз

Serpico

✩✩✩✩✩✩✩
8 Дек 2021
3
0
У меня шим на 3 пин для стрелочного индикатора. Нужно сделать еще сигнал тревоги, как я знаю функция tone() использует таймер 2, и шим на 3 пине отвалится если сделать tone(). Как это можно реализовать, чтобы работал и шим и звук. Изменить пин для шим я так понимаю не прокатит? (новичок)
 

Serpico

✩✩✩✩✩✩✩
8 Дек 2021
3
0
@bort707,еще такой вопрос, можно ли сделать так, чтобы alarm_sound(); в условии выполнялось только один раз, а не повторялось при проверке условия снова и снова, пока держится значение 50 и выше или пока горит лампочка.
alarm sound(); это ссылка на созданную функцию, а это if находится в цикле loop.cкрин.png
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,975
634
45
@Serpico, Используй переменную-флаг.
Примерно так:
C++:
byte flag_variable;


if (condition) {
    if (flag_variable) {
        do_something();
        flag_variable = 0;
   }
} else {
    do_else();
    flag_variable = 1;
}
И да, вставляй код текстом, а не картинкой.
 
  • Лойс +1
Реакции: Serpico