Maker_INO Lezione Quarta Trasduttori e Sensori Digitali Prof. Ponte Vincenzo
I sensori I sensori sono componenti elettronici in grado di percepire e misurare le caratteristiche fisiche dell’ambiente circostante e quindi, ad esempio: luminosita’,temperatura,umidita’, suono, movimento, campo magnetico ed elettromagnetico.
Gli attuatori Gli attuatori sono componenti in grado di modificare le caratteristiche fisiche dell’ambiente circostante e quindi essenzialmente:sorgenti di luce, calore, umidita’, suono, movimento, campo magnetico ed elettromagnetico.
I componenti complessi Sono dei circuiti, dotati di microprocessore e componenti, in grado di fornire un servizio e quindi da fungere contemporaneamente, da sensori ed attuatori
I componenti di supporto Sono componenti che supportano l’operativita’ di sensori ed attuatori. Tra i componenti di supporto possiamo annoverare le resistenze, i condensatori, i fusibili ed altri ancora come la breadboard,pulsanti ed i cavi di collegamento
Sensore ad ultrasuoni HCSR04 Gli ultrasuoni sono delle onde meccaniche sonore. A differenza dei fenomeni acustici propriamente detti, le frequenze che caratterizzano gli ultrasuoni sono superiori a quelle mediamente udibili da un orecchio umano. La frequenza convenzionalmente utilizzata per discriminare onde soniche da onde ultrasoniche è fissata in 20 kHz.
Sensore ad ultrasuoni HCSR04 Il modulo ad ultrasuoni viene normalmente utilizzato per rilevare eventuali ostacoli e misurarne la distanza (da 2 a 400 cm). Il modulo opera usando la medesima tecnica di rilevamento utilizzata, in natura,dai pipistrelli. E’ formato da un generatore di ultrasuoni, da un ricevitore e da un circuito di controllo. Il modulo si avvia quando riceve un impulso di almeno 10 microsecondi attraverso il “trig pin” (la sua porta di attivazione).
Sensore ad ultrasuoni HCSR04 A questo punto lancia una serie di otto onde sonore da 40 kHz e si mette in attesa di un segnale di ritorno. Appena lo riceve attiva la porta di uscita (echo pin) e la mantiene attiva per un tempo proporzionale al tempo intercorso tra l’invio del segnale acustico ed il suo ritorno.
Sensore ad ultrasuoni HCSR04 Conoscendo la velocita’ del suono e sapendo che il “viaggio” dell’onda sonora e’ stato il doppio della distanza tra il modulo e l’ostacolo (l’onda e’ andata dal generatore all’ostacolo e da qui’ e’ tornata al sensore) la distanza e’ derivata dalla seguente formula: distanza = tempo * 340 / 2 dove: distanza e’ la distanza in metri tra il modulo HC-SR04 e l’ostacolo, tempo e’ il tempo in secondi di attivazione della porta di uscita 340 e’ la velocita’ del suono, in metri al secondo, a 20 gradi di temperatura.
Sensore ad ultrasuoni HCSR04 e quindi distanza = valore di echo / 58 dove: distanza = distanza in centimetri dall’ostacolo valore di echo = valore fornito dall’istruzione pulseIn 58 = valore, senza decimali di (2/340)*10000 (10000 e’ un moltiplicatore inserito per trasformare i metri in centimetri ed i secondi in millisecondi.
Misurare e visualizzare la distanza di un oggetto dal sensore const int TRIG_PIN = 12; const int ECHO_PIN = 13; int cicalino=11; long durata, distanza; void setup() { // Inizializza la comunicazione seriale: Serial.begin(9600); pinMode(TRIG_PIN,OUTPUT); pinMode(ECHO_PIN,INPUT); pinMode(cicalino,OUTPUT); } /* Attenzione: facendo il copia/incolla dal PDF o dal PPT all’IDE si perde la formattazione del testo. Per rendere piu’ facilmente leggibile il programma e’ opportuno formattarlo subito dopo il trasferimento nell’IDE, premendo CTRL+T
Misurare e visualizzare la distanza di un oggetto dal sensore void loop() { // Dare un breve segnale LOW per poi dare un segnale HIGH: digitalWrite(TRIG_PIN, LOW); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); durata = pulseIn(ECHO_PIN, HIGH); // Converti il tempo in distanza: distanza = durata / 58; delay(100);
Misurare e visualizzare la distanza di un oggetto dal sensore if (distanza <= 0) { Serial.println("Out of range"); } else { Serial.print(distanza); Serial.println("cm"); Serial.println(); delay(1000);
lo schema da realizzare è il seguente: .
Facciamo suonare una nota al cicalino Per generare un suono con la scheda Arduino si può utilizzare il comando tone(), questo comando genera un'onda quadra di frequenza specificata su un pin di uscita. La durata può essere specificata, altrimenti l'onda continua fino a quando viene inserito il comando noTone (). Sintassi tone (pin, frequenza, durata) Parametri pin: il pin su cui generare il tono frequenza: la frequenza del tono in hertz durata: la durata del segnale in millisecondi (opzionale) Esempio: tone (11, 2000, 100); delay(200);// attende per 200mS, utile per fare un sensore di parcheggio
Facciamo suonare una nota al cicalino Facciamo suonare una nota ad una certa distanza Aggiungiamo al programma precedente: if (distanza < 20) { tone (11, 2000, 100); delay(300); }
Sensori IR Principio di funzionamento: Il trasmettitore IR invia un segnale infrarosso che, nel caso di una superficie riflettente (ad esempio di colore bianco), rimbalza in alcune direzioni compresa quella del ricevitore IR il quale cattura il segnale rilevando l’oggetto. Nel caso di una superficie assorbente (ad esempio di colore nero) il segnale IR non è riflesso e l’oggetto non può essere rilevato dal sensore. Questo risultato si verificherebbe anche se l’oggetto è assente
Infrared Reflective Sensor Caratteristiche:ha una distanza di rilevamento di pochi cm(10-15). Viene utilizzato come inseguitore di linea,è provvisto di un trimmer che ne regola la sensibilità alla luce ambientale.
Infrared Reflective Sensor Ha una uscita analogica (memorizza la distanza in mm) e una digitale (passa LOW in presenza di un ostacolo). ESEMPIO: int Obstacles_din=2;//porta digitale int Obstacles_ain=A0; //porta analogica int ad_value;//variabile che memorizza la distanza void setup() { pinMode(Obstacles_din,INPUT); pinMode(Obstacles_ain,INPUT); Serial.begin(9600); }
Infrared Reflective Sensor void loop() { ad_value=analogRead(Obstacles_ain); if(digitalRead(Obstacles_din)==LOW) Serial.println("ostacolo vicino"); Serial.println("distanza"); Serial.println("mm"); Serial.println( ad_value); } else Serial.println("ostacolo lontano"); delay(2000);
Sensore IR FC-51 Il package ha 3 pin di connessione: Vcc per l’alimentazione 3-5V DC; Gnd per il riferimento a massa; Out per il segnale di uscita digitale del sensore.
ESEMPIO // Facciamo suonare un cicalino e accendiamo un LED in presenza di un ostacolo. int Sens = 8;// pin sensore presenza int cicalino = 10;//pin cicalino int led=13;//led int Sens_Stato=0;//variabile che legge lo stato del sensore void setup() { pinMode(Sens,INPUT); pinMode(cicalino,OUTPUT); pinMode(led,OUTPUT); digitalWrite(led,LOW); } void loop() Sens_Stato=digitalRead(Sens); //legge lo stato del sensore if (Sens_Stato==LOW) tone (10,2000,100); delay(300); digitalWrite(led,HIGH);
Modulo microfono Vi sono due versioni di questo modulo: 3 pin con solo uscita digitale 4 pin con anche uscita analogica Per il nostro progetto: batti le mani e accendi la luce utilizzeremo quello a 3 pin
batti le mani e accendi la luce int led = 12; //il led e' collegato alla porta 12 int microfono = 8; // l'uscita digitale del microfono (DO) int valoresuono = 0; // memorizzazione dello stato del microfono (HIGH o LOW) int sled = 0; // memorizzazione dello stato del led (1 = acceso; 0 = spento) void setup() { pinMode(led,OUTPUT); pinMode(microfono, INPUT); }
batti le mani e accendi la luce void loop() { valoresuono = 0; valoresuono = digitalRead(microfono); // rileva il segnale proveniente dal microfono if(valoresuono == HIGH) // se il rumore ha prodotto segnale digitale if (sled == 1) // verifica se il led e' acceso digitalWrite(led,LOW); // se il led e' acceso, lo spegne sled = 0; // memorizza lo stato di "led spento" delay (300); } else digitalWrite (led, HIGH); // se il led e' spento, lo accende sled = 1; // memorizza lo stato di "led acceso"
Laboratorio Realizzare semplici progetti con i sensori prendendo spunto da quelli illustrati in questa lezione. ATTENZIONE: i sensori sono alimentati, evitare di invertire la polarità causando la distruzione del dispositivo. N.B. Alcuni sensori sono del prof. Ponte Buon Lavoro! Prof. Ponte Prof. Ovazza