Sirena tipo "Italiana", modulata in modo continuo utilizzando la funzione predefinita "tone" di Arduino. Un interruttore di ingresso abilita/disabilita il funzionamento.
Sull'uscita è disponibile un segnale pseudo-sinusoidale che, con un condensatore di accoppiamento, si potrebbe iniettare su un amplificatore di BF con uscita su altoparlante a tromba.
/* --------------- Inizio Programma ------------------
Achille De Santis 17-10-2019 "Sirena Italiana"
V1.0 in data 17-10-2019.
---------------------------------------------------------
*/
// -------------- I/O ---------------------------------------------------------------------------------
#define Led_Red 11 // uscita ausiliaria per LED
#define out 13 // uscita BF
#define SW 8 // interruttore di ingresso (abilitazione sirena verso massa)
// -----------------------------------------------------------------------------------------------------
const int f1 = 392;
const int f2 = 660;
// --------------------------
const int T1=1;
const int T2=100;
int f;
bool S=true;
// non è richiesta la dichiarazione di variabili int o long per la funzione "tone"
void setup()
{
intestazione();
pinMode(SW, INPUT_PULLUP);
pinMode(Led_Red, OUTPUT);
// non richiede setup la funzione "tone"
}
void intestazione()
{ Serial.begin(9600); // velocità seriale di comunicazione
Serial.println(" _________ Tecnatron Creation ___________");
Serial.println(" Sirena tipo Italiana ___________");
Serial.println(" prof. Achille De Santis - 17-10-2019 V1.0 .--");
}
void tono(int F) // generazione tono
{ tone(out, F); delay(T1); }
void loop()
{
S=digitalRead(SW);
switch(S)
{
case 0:
{digitalWrite(Led_Red, HIGH);
for (f=f1; f<=f2; f++) { tono(f); delay(T2); } // Primo tono ascendente da 392 Hz
for (f=f2; f>=f1; f--) { tono(f); delay(T2); } // Secondo tono discendente da 660 Hz
break;
}
default: { noTone(out); digitalWrite(Led_Red, LOW); } // spegne la sirena
}
}
// ------------------------------- Fine programma --------------------------------------------------
Simulazione: Sirena Italiana
Argomenti correlati: Sirena "Bitonale"
> Arduino n° 37
Nessun commento:
Posta un commento