Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* NewPing: https://bitbucket.org/teckel12/arduino-new-ping/downloads
- * NewTone: https://bitbucket.org/teckel12/arduino-new-tone/downloads
- */
- // INCLUDIAMO LE LIBRERIE
- #include <NewPing.h>
- #include <NewTone.h>
- //DEFINIAMO LE COSTANTI TRA CUI ANCHE LA DISTANZA MASSIMA
- #define PIN_TRIG 2
- #define PIN_ECHO 3
- #define PIN_BUZZ 8
- #define MAX_DIST 30
- // INIZIALIZZIAMO IL SENSORE A ULTRASUONI
- NewPing rilevatore(PIN_TRIG, PIN_ECHO, MAX_DIST);
- // FACCIAMO IL SETUP A 115200 BAUD STANDO ATTENTI A SETTARLO ANCHE SUL MONITOR SERIALE
- void setup() {
- Serial.begin(115200);
- }
- // INIZIAMO IL CICLO E CONVERTIAMO IN CM IL PING
- void loop() {
- unsigned int uS = rilevatore.ping();
- int cm = rilevatore.convert_cm(uS);
- // CREIAMO UN CICLO CONDIZIONALE DO - WHILE,
- // ESEGUI FINCHE' LA DISTANZA E' TRA 1 E LA MASSIMA DISTANZA DICHIARATA
- do{
- unsigned int uS = rilevatore.ping();
- int cm = rilevatore.convert_cm(uS);
- int frequenza = cm * 2.20;
- // SE LA DISTANZA E' TRA 1 E 5, ALLORA FAI UN BIP DI UN SECONDO
- if(cm > 0 && cm < 6){
- frequenza = 1000;
- Serial.print("Entro ");
- Serial.print(cm);
- Serial.println(" cm");
- Serial.print("Frequenza: ");
- Serial.println(frequenza);
- NewTone(PIN_BUZZ,700,frequenza);
- delay(2000);
- }
- // ALTRIMENTI SE LA DISTANZA E' TRA 6 E LA MASSIMA DISTANZA DICHIARATA,
- // ALLORA FAI UN BIP ALLA FREQUENZA RILEVATA PROPORZIONALE ALLA DISTANZA.
- // MAGGIORE SARA' LA VICINANZA ALL'OGGETTO, MAGGIORE SARA' LA FREQUENZA,
- // E IL TONO SARA' PIU' BASSO.
- else if(cm > 5 && cm < MAX_DIST + 1 ) {
- Serial.print("Distante: ");
- Serial.print(cm);
- Serial.println(" cm");
- Serial.print("Frequenza: ");
- Serial.println(frequenza);
- NewTone(PIN_BUZZ,(500+(cm*10)),frequenza);
- int pausa = frequenza;
- delay(pausa);
- noNewTone(PIN_BUZZ);
- delay(frequenza);
- }
- } while(cm > 0 && cm < MAX_DIST + 1);
- // SE LA CONDIZIONE WHILE E' FALSA, ALLORA FERMA IL BUZZER
- Serial.println("Superata distanza massima");
- noNewTone(PIN_BUZZ);
- // delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement