У меня есть код сирены, я использую переключатель что бы менять звук, но при переключении есть задержка, я использую Gyverbutton и в ролике было сказано что нужно убирать delay но я не умею.
Вот код:
Вот код:
C++:
#include <GyverButton.h>
GButton butt1(5);
GButton butt2(6);
GButton butt3(7);
GButton butt4(8);
GButton butt5(9);
int buzzer = 3; //переменная с номером пина динамика
int pwm;
int i = 650;
float dy = 1;
void setup(){
Serial.begin(9600);
}
void loop() {
butt1.tick();
butt2.tick();
butt3.tick();
butt4.tick();
if (butt1.isHold()){
Serial.println("OFF");
noTone(3);
}
// Tone 1
if (butt2.isHold()){
Serial.println("Code 1");
for (i = 750; i < 1250; i++){
tone(3,i);
delay(4);
}
for (i = 1250; i > 750; i--){
tone(3,i);
delay(4);
}
}
// Tone 2
Serial.println("Code 2");
if (butt3.isHold()){
for (i = 900; i < 1600; i++){
tone (3,i);
delayMicroseconds(165);
}
for (i = 1600; i > 900; i--){
tone (3,i);
delayMicroseconds(15);
}
}
// Tone 3
Serial.println("Code 3");
if (butt4.isHold()){
for (i = 450; i < 750; i++){
tone (3,i);
delayMicroseconds(20);
}
for (i = 750; i > 450; i--){
tone (3,i);
delayMicroseconds(20);
}
}