Generátor zvuku a ovládání tlačítkem
Napsal: 14 říj 2020, 23:41
Dobrý večer,
prosím o nakopnutí, je to vlastně myšoplaš, který generuje periodicky dokola frekvence 5-22KHz s krokem po 100Hz, to mi funguje. Ale aby bylo možné používání v přítomnosti lidí, tak potřebuji abych mohl stiskem tlačítka posunout spodní hranici frekvence. To znamená, že když už neuslyším pískání, které by mě rušilo, tak stisknu tlačítko, například na právě "hrající" frekvenci 14,5KHz a další generování frekvence bude v rozsahu 14,5 - 22KHz, opět stále dokola i po uvolnění tlačítka. K resetování by došlo až po odpojení myšoplaše od napájení. Velice děkuji za radu, třeba i za nasměrování na projekt, kde se podobné řešilo.
void loop(){
buttonState = digitalRead(Tlacitko);
//F1=5kHz, generuj postupně frekvence 5,1KHz - 22KHz, krok je 100Hz
tone (2,F1);
delay(50);
noTone(2);
delay(50);
F1 = F1 + 100;
delay (50);
Serial.println (F1);
// při překročení 22KHz skoč na 5KHz
if (F1 > 22000){
F1 = 5000;
//delay(10);
//po stisku tlačítka při určité frekvenci,
//zajisti aby se generoval zvuk od této "určité" frekvence až do 22KHz,
//stále dokola, i po uvolnění tlačítka
}
//if (buttonState = HIGH) {
//F1 = 15000;
}
prosím o nakopnutí, je to vlastně myšoplaš, který generuje periodicky dokola frekvence 5-22KHz s krokem po 100Hz, to mi funguje. Ale aby bylo možné používání v přítomnosti lidí, tak potřebuji abych mohl stiskem tlačítka posunout spodní hranici frekvence. To znamená, že když už neuslyším pískání, které by mě rušilo, tak stisknu tlačítko, například na právě "hrající" frekvenci 14,5KHz a další generování frekvence bude v rozsahu 14,5 - 22KHz, opět stále dokola i po uvolnění tlačítka. K resetování by došlo až po odpojení myšoplaše od napájení. Velice děkuji za radu, třeba i za nasměrování na projekt, kde se podobné řešilo.
void loop(){
buttonState = digitalRead(Tlacitko);
//F1=5kHz, generuj postupně frekvence 5,1KHz - 22KHz, krok je 100Hz
tone (2,F1);
delay(50);
noTone(2);
delay(50);
F1 = F1 + 100;
delay (50);
Serial.println (F1);
// při překročení 22KHz skoč na 5KHz
if (F1 > 22000){
F1 = 5000;
//delay(10);
//po stisku tlačítka při určité frekvenci,
//zajisti aby se generoval zvuk od této "určité" frekvence až do 22KHz,
//stále dokola, i po uvolnění tlačítka
}
//if (buttonState = HIGH) {
//F1 = 15000;
}