I trasduttori piezoelettrici trovano oggi vastissimo impiego non solo nella domotica, nell’elettronica di consumo e in campo musicale ma anche in quello scientifico, essendo utilizzabili sia per generare piccole quantità di energia (microgenerazione) in situazioni particolarmente adatte allo scopo, sia soprattutto per rivelare e/o misurare suoni, ultrasuoni (cioè oltre i 20 kHz) e vibrazioni di ogni tipo. In questo articolo vedremo come usare vari tipi di sensore piezo con Arduino e come “ascoltare” – e in seguito analizzare – quanto da essi captato tramite il collegamento del sensore a un computer.
La capacità di un materiale piezoelettrico di convertire uno stress meccanico in carica elettrica è chiamata “effetto piezoelettrico”. La parola “piezoelettrico” deriva dalla parola greca “piezein” che significa spingere, premere. L’effetto piezoelettrico è un effetto reversibile: significa che quando abbiamo applicato uno stress meccanico al materiale piezoelettrico otteniamo una certa carica elettrica in uscita; analogamente, quando forniamo una carica elettrica al sensore piezo, questo si allunga o si comprime.
Pierre Curie ha scoperto l’effetto piezoelettrico nel 1880, ma questo ha iniziato ad essere utilizzato per applicazioni di rilevamento industriale nel 1950. Il sensore piezoelettrico viene utilizzato per convertire lo stress meccanico in carica elettrica, e fornisce una tensione alternata (AC) in uscita. Vi sono molti materiali piezoelettrici naturali – come ad es. il quarzo, il sale di Rochelle, il topazio – e molti “sintetici”, fra cui il piombo-zirconato di titanio (PZT), l’ossido di zinco (ZnO), il titanato di Bario (BaTiO3).
Un comune sensore piezoelettrico in piombo-zirconato di titanio (PZT) e relative specifiche. L’elemento piezoelettrico è posizionato tra due piastre metalliche. Potete trovare vari tipi di sensori piezo in vendita su Internet, ad esempio qui.
L’effetto piezo-elettrico è definito, dal punto di vista elettrico, come il cambiamento nella polarizzazione elettrica che viene prodotta in alcuni materiali quando sono soggetti a sollecitazioni meccaniche. Esso può essere sfruttato ad es. per produrre energia elettrica, come illustrato nel ns. articolo Come ricaricare una batteria camminando, che trovi qui. Il cosiddetto “effetto piezoelettrico inverso”, invece, è definito come la deformazione prodotta in determinati materiali se sottoposti a campo elettrico.
Alcune delle applicazioni dei trasduttori piezo
Alcuni cristalli – come il titanato di bario, il quarzo, la tantalite di litio, etc. – hanno la proprietà di produrre elettricità applicando una forza o una pressione su di essi secondo una disposizione specifica. Inoltre, possono lavorare all’inverso trasformando il segnale elettrico applicato su di esso in vibrazioni. Pertanto, vengono utilizzati come trasduttori in molte applicazioni. In estrema sintesi, un trasduttore piezoelettrico produce tensione quando si applica una forza su di esso e viceversa.
Figura che illustra l’effetto piezoelettrico diretto e inverso.
Le applicazioni dell’effetto piezoelettrico e di un trasduttore piezo sono numerose:
- Produzione e rilevazione del suono (ad es. chitarra elettrica)
- Produzione e rilevazione degli ultrasuoni (> 20 kHz)
- Generazione di energia elettrica
- Generazione elettronica di frequenza
- Sensore di vibrazioni (ad es. allarmi)
- Analizzatore di stress meccanico
- Microbilance
- Messa a fuoco ultra-fine di gruppi ottici
- Applicazioni quotidiane (ad es. accendini)
Una delle applicazioni principali dei trasduttori piezoelettrici è quella di “analizzatore di stress meccanico” per colonne, in edifici in cui viene misurata la tensione proporzionale prodotta dallo stress su cristallo e può essere quindi calcolato lo stress corrispondente. L’accendino a gas e l’accendisigari sfruttano anch’essi il principio dell’effetto piezoelettrico, per cui producono impulsi elettrici (scintille) a seguito della forza prodotta dall’improvviso impatto del grilletto sul materiale al loro interno.
Una comune applicazione, invece, dell’effetto piezoelettrico inverso è costituita dai cicalini piezo-elettrici (buzzer), che sono ampiamente utilizzati in molte applicazioni, come l’indicatore di retromarcia per auto, i computer, e così via. In questo caso, quando si applica la tensione a una certa intensità e frequenza attraverso il cristallo piezo-elettrico, il trasduttore tende a vibrare. Se il trasduttore piezo è collocato in un contenitore con una piccola apertura, la vibrazione è resa un suono udibile.
Una comunissima applicazione dell’effetto piezo-elettrico inverso: il cicalino o buzzer (a sinistra), in cui l’alloggiamento nero diventa la struttura per creare un suono udibile, e (a destra) il circuito interno di un buzzer piezo-elettrico alimentato con una tensione di 12 V. Si noti che il trasduttore piezo-elettrico è, in questo caso, a tre terminali. Qui sotto lo spettro in frequenza del suono prodotto dal buzzer a due terminali mostrato nel riquadro.
Un’altra comunissima applicazione dell’effetto piezoelettrico inverso si trova negli orologi al quarzo. All’interno del nostro orologio, infatti, è presente un risuonatore al quarzo che funziona da oscillatore. L’elemento è il biossido di silicio. Il piccolo segnale elettrico fornito dalla pila ed applicato attraverso il cristallo lo fa vibrare periodicamente con estrema precisione, il che a sua volta regola gli ingranaggi meccanici presenti all’interno del nostro orologio al quarzo.
Come produrre e accumulare energia elettrica
Usare un sensore piezoelettrico – come ad es. quelli piatti in piombo-zirconato di titanio (PZT) – è assai semplice: basta collegare il terminale positivo e negativo al circuito e premere la parte superiore del sensore. Premendo, a causa della pressione meccanica, si crea tensione all’uscita che viene ulteriormente fornita al circuito. Puoi semplicemente collegare un LED al sensore piezoelettrico, come mostrato nel circuito qui sotto. Ogni volta che si preme il sensore, il LED emetterà un lampo.
Il più semplice circuito possibile basato su un sensore piezoelettrico.
Non è difficile immagazzinare l’energia elettrica prodotta attraverso la forza o la pressione esercitata su un disco trasduttore piezoelettrico. In un nuovo circuito, l’uscita alternata dal trasduttore piezoelettrico viene convertita in corrente continua e l’energia viene accumulata all’interno del condensatore di uscita. L’energia accumulata viene successivamente dissipata attraverso un LED grazie a un’uscita controllata da un pulsante. Quindi, la dissipazione dell’energia immagazzinata sarà visibile.
Il trasduttore piezoelettrico, infatti, produce un’uscita discontinua o alternata all’applicazione di una forza di presa ripetuta su di esso. Perciò il segnale in tensione deve essere rettificato per renderlo utilizzabile sotto forma di corrente continua (DC). Pertanto, per un’efficienza di rettifica superiore dell’80% o superiore, usiamo un raddrizzatore a onda intera. Oppure possiamo usare una combinazione di quattro diodi nella configurazione a ponte o direttamente un diodo a ponte (come l’RB156).
Un semplice circuito per l’accumulo dell’elettricità prodotta da un sensore piezo.
Inizialmente, per caricare il condensatore, diamo un tocco continuo sul trasduttore piezo. Una volta raggiunto il livello di tensione richiesto, premiamo l’interruttore tattile e il LED si illumina per un momento. La ragione per cui il LED lampeggia è che il condensatore da 47μF utilizzato può immagazzinare solo tanta energia per far lampeggiare il LED per alcuni secondi. La quantità di energia prodotta e immagazzinata può essere aumentata aumentando il numero di trasduttori e il valore del condensatore.
Il condensatore utilizzato nell’uscita può essere dunque aumentato per aumentare la capacità di accumulo, ma in tal caso è necessario aumentare anche il numero di trasduttori piezoelettrici. Perciò, qui la capacità è di soli 47μF. Se invece vuoi usare dei trasduttori piezoelettrici per ricaricare il tuo cellulare mentre cammini, puoi trovare il relativo circuito qui. Infine, se saldi dei fili su un sensore piezoelettrico, fai attenzione a non surriscaldare la superficie, poiché questa si scioglie anche a bassa temperatura.
Come possiamo rivelare le vibrazioni oltre una soglia
Un sensore di vibrazioni piezo-elettrico è adatto per misure di flessibilità, vibrazione, impatto e tocco. Il modulo qui sotto, ad es., si basa sul sensore a pellicola PZT LDT0-028. Quando il sensore si muove avanti e indietro, una certa tensione verrà generata dal comparatore di tensione al suo interno. Un’ampia gamma dinamica (0,001 Hz – 1000 MHz) garantisce eccellenti prestazioni di misurazione. Inoltre, puoi regolare la sua sensibilità regolando il potenziometro integrato con una vite.
Un sensore di vibrazioni Grove-Piezo, compatibile con Arduino.
Un sensore di vibrazioni piezoelettrico ha una quantità di possibili applicazioni:
- Rilevazione delle vibrazioni in lavatrice
- Interruttore di attivazione a bassa potenza
- Rilevazione a basso costo delle vibrazioni
- Allarmi per auto
- Rilevazione del movimento del corpo
- Sistemi di sicurezza (ad es. allarme rottura vetri)
Il sensore di vibrazioni Grove-Piezo appena illustrato, in particolare, emette un livello logico ALTO (5 V) quando viene rilevata una vibrazione. Possiamo usare qualsiasi pin di Arduino per leggere i dati. Ecco, qui sotto, un esempio di circuito che utilizza il modulo di vibrazione piezo-elettrico per controllare un led. Quando viene rilevata la vibrazione, questo sensore emette un segnale logico alto (la sensibilità può essere modificata regolando il potenziometro), e di conseguenza il led si accende.
L’interfacciamento del sensore di vibrazioni Grove-Piezo ad Arduino tramite una Base Shield (che puoi trovare ad es. qui). Il sensore può emettere un livello basso (0 V) – anche se originariamente emetteva un livello elevato – quando si aumenta la tensione di soglia regolando il potenziometro in senso orario.
In pratica, dopo esserti procurato una scheda Arduino Uno, una Base Shield e un modulo Grove-Piezo Vibration, procedi come segue: collega il modulo all’ingresso D2 della Base Shield utilizzando il cavo a 4 pin, e utilizza, come uscita, il LED integrato in Arduino Uno, che è collegato al pin13 digitale; poi collega la Base Shield ad Arduino; infine, collega Arduino Uno al PC utilizzando un cavo USB. A questo punto, per far funzionare il tutto, copia e incolla dello sketch per Arduino che trovi qui e caricalo su Arduino.
Si noti che, quando un sensore a pellicola (come il PZT LDT0-028 o similare) è usato accoppiato a un modulo come quello appena descritto, si ha un semplice rivelatore di vibrazioni, che in sostanza rivela quando le vibrazioni superano un certa soglia, cosa utile in molte applicazioni pratiche. Quando invece il sensore è usato da solo, oppure è interfacciato a un modulo che lo trasforma in un sensore analogico, si può usare per realizzare un semplice misuratore di vibrazioni, ad es. con Arduino.
Come possiamo misurare l’intensità delle vibrazioni
Il modulo di vibrazione ceramico piezoelettrico analogico mostrato qui sotto, ad esempio, bufferizza un trasduttore piezo che risponde alle variazioni di deformazione, generando una variazione misurabile della tensione di uscita che è proporzionale alla forza della vibrazione, grazie all’effetto piezoelettrico. Quindi puoi conoscere l’entità della vibrazione. Diversamente dal sensore di vibrazione digitale, che tiene conto soltanto dei tempi, questo sensore analogico può misurare l’entità della vibrazione.
Un modulo di vibrazione piezoelettrico, dotato di un diodo e di una resistenza, compatibile con Arduino.
Quando il sensore piezoelettrico a disco genererà un segnale elettrico, la porta analogica del controller percepirà lievi segnali di vibrazione. Inoltre, con questo modulo puoi realizzare dei pick-up per strumenti musicali, come ad esempio i tamburi elettronici. La tensione di uscita è proporzionale alla forza di shock o alla vibrazione. Quindi puoi misurare e caratterizzare la vibrazione, o usarla per riprodurla nel range audio (vedremo più avanti come lo si può fare in modo semplice).
Utilizzare un sensore piezoelettrico in questo modo è semplice: basta collegare il terminale positivo e negativo al modulo (shield) per Arduino e premere la parte superiore del sensore. Premendo il disco o attaccandolo a un tamburo, a causa della pressione meccanica si crea una tensione all’uscita che viene fornita al circuito, e precisamente all’ingresso analogico A0 di una scheda Arduino Uno. In pratica, collega il sensore piezoelettrico come mostrato nello schema qui sotto.
Schema di collegamento del modulo di vibrazione piezo ad Arduino.
Una volta effettuato il cablaggio del circuito come nello schema che vedi qui sopra, fai un copia e incolla da qui del codice (sketch) per Arduino, e caricalo sulla scheda Arduino Uno. Dopo l’avvio del codice, apri il monitor seriale di Arduino, quindi imposta la velocità di trasmissione su 9600 (se non lo è già). Quando si fa vibrare il sensore piezoelettrico con diversi gradi di intensità, si vedrà il diverso valore di uscita visualizzato sul monitor seriale, proprio come mostrato nella figura sotto.
Il livello di vibrazione come verrà mostrato dal monitor seriale.
Si può fare qualcosa di simile pure con il sensore di vibrazioni Minisense 100 è un sensore di vibrazioni a sbalzo a basso costo caricato da una massa per offrire un’alta sensibilità alle basse frequenze. I perni sono progettati per una facile installazione e sono saldabili. Sono disponibili opzioni di montaggio orizzontale e verticale. L’area del sensore attivo è schermata per un migliore rifiuto delle interferenze elettromagnetiche RFI / EMI. Resistente e flessibile, l’elemento sensibile resiste a sovraccarico di shock elevato.
Il sensore, essendo di tipo a sbalzo (cantilever), ha un’eccellente linearità e gamma dinamica e può essere utilizzato per rilevare vibrazioni continue o impatti. Esso ha un’alta sensibilità espressa da un’elevata uscita in tensione con carichi minimi (1 V/g), fornisce oltre 5 V/g alla risonanza e funziona fino a 40 Hz (2.400 rpm) al di sotto della risonanza. Questo sensore ha solo due terminali (+Ve e –Ve), quindi è facile interfacciarlo con la maggior parte dei microcontroller, sistemi integrati e scheda di sviluppo Arduino.
Il sensore di vibrazione Minisense 100, con la curva della risposta in frequenza e della linearità.
Collegando semplicemente il terminale di terra a GND e il terminale +Ve (segnale in uscita) del sensore di vibrazione al pin di ingresso analogico Arduino A0, possiamo creare apparecchiature di monitoraggio delle vibrazioni ad alta sensibilità. Interfacciando con moduli trasmittenti wireless RF, possiamo realizzare dispositivi wireless di monitoraggio delle vibrazioni. Fai un copia e incolla da qui del codice (sketch) per Arduino utilizzabile per questo tipo di sensore di vibrazione piezoelettrico.
Questo codice rileva le vibrazioni o gli impatti e fornisce un avviso visibile tramite il LED collegato al pin D13 di Arduino. Naturalmente, è possibile collegare un dispositivo di segnalazione acustica anziché un LED per un avviso sonoro. Varia il livello di soglia secondo le tue necessità: qui ho preso il livello di soglia 500 come esempio. Questo codice consente di visualizzare sul monitor seriale di Arduino il livello di tensione di uscita del sensore piezoelettrico, dati che puoi eventualmente usare per un grafico.
Il collegamento del sensore a sbalzo ad Arduino.
Come possiamo “ascoltare” e analizzare le vibrazioni
Se però non sei interessato a misurare l’intensità della vibrazione, bensì a riprodurla come segnale audio (ad es. da una chitarra o per un esperimento), non ti conviene usare un modulo per Arduino e una scheda Arduino, bensì solo il sensore piezo a disco a mo’ di pickup – cioè di microfono a contatto – e inviare il suo segnale (opportunamente attenuato e adattato, come ora vedremo) alla scheda audio di un computer o, meglio ancora, bypassare la scheda audio via USB con una “interfaccia audio”.
Infatti, in generale non è possibile collegare direttamente un sensore piezo all’ingresso MIC, poiché la tensione massima prodotta da un tale sensore – che può essere anche di 25 V o più – supera di gran lunga quella massima accettata dalle schede audio. Tipicamente tali schede accettano max 1 V se il guadagno di input è impostato al livello più alto (cioè di 100). Pertanto, una volta che sai qual è la tensione massima prodotta dal tuo sensore, per inserire il jack – convertito in un mini-jack (mono) – nell’input MIC della scheda audio dovresti comunque usare un opportuno partitore di tensione (v. figura, ma usa valori di R2 adeguati al tuo caso).
Come collegare il sensore piezo all’ingresso MIC usando un partitore di tensione opportuno (quello qui illustrato ha un rapporto troppo basso), poiché la sua tensione max supera di gran lunga quella massima accettata dalla propria scheda audio.
Per un migliore, più semplice (e meno rischioso) collegamento diretto pickup–> ingresso MIC, in realtà, è utile usare un piccolo apparecchio chiamato Direct Injection Box (D.I. Box). I pickup, infatti, sono dispositivi ad alta impedenza (hi-Z) e per connetterli direttamente a un ingresso che accetta il segnale di un dispositivo ad impedenza diversa occorre trasformare il segnale: in pratica “far vedere” alla scheda audio la chitarra come se fosse un microfono. Lo stesso vale per il collegamento diretto chitarra–> mixer.
Le D.I. Box sono dispositivi relativamente poco costosi, ne esistono di vari tipi (ne puoi trovare diversi modelli a un buon prezzo, ad esempio, qui), occorre solo verificare di quali livelli di ingresso/uscita dispongono e scegliere in base alle esigenze della propria apparecchiatura. In questo modo, il segnale della chitarra viene trasmesso correttamente al PC o al mixer, preservando l’intera gamma dinamica del pickup e garantendo una qualità sensibilmente superiore.
Un esempio di D.I. Box “attiva” per il collegamento di un pickup piezo al PC.
Un’altra possibilità è collegare il pickup a un mixer e inviare poi l’uscita del mixer nell’ingresso LINE della scheda audio. Ma ancora meglio è bypassare la scheda audio, spesso di scarsa qualità, con una cosiddetta “interfaccia audio” (come ad es. una Focusrite Scarlett), che ha un’uscita USB. Comunque, abbiamo illustrato in ampio dettaglio i numerosi tipi di collegamento di un pickup al computer nell’articolo Come collegare un pickup al computer, che puoi trovare qui. Ti consigliamo quindi di leggerlo.
La soluzione della Focusrite è quella che garantisce una migliore qualità (sono dotate di ADC a 24 bit e 196 kHz di campionamento). Una volta acquisito il segnale del pickup o di altro sensore piezoelettrico (ad es. di quello usato come buzzer o cicalino), si possono usare vari software gratuiti sia per registrare il segnale, sia per visualizzarne la forma d’onda sia, infine, per analizzarne lo spettro in frequenza. Ovviamente, la scelta del software più adeguato dipenderà dallo scopo dell’analisi.
Un esempio di software gratuito che mostra la forma d’onda (in alto) e uno spettro in frequenza nel tempo, ovvero uno “spettrogramma” (in basso).