categorie: Circuiti a microcontrollore
Numero di visite: 32016
Commenti sull'articolo: 0
Sensori più popolari per Arduino
I sensori sono utilizzati in un'ampia varietà di circuiti e progetti. Nessuna automazione può farne a meno. Siamo interessati a loro perché è stato creato un progetto per semplificare la progettazione e la divulgazione dell'elettronica Arduino. Questa è una scheda finita con un microcontrollore e tutto il necessario per lavorarci e programmarlo. In questo articolo prenderemo in considerazione i sensori per Arduino, ma possono anche essere utilizzati con altri microcontrollori.

Quali sono i sensori?
I sensori sono gli occhi, le orecchie e altri sensi microcontrollore o altro dispositivo di controllo. Si distinguono per la natura del segnale e per scopo.
Per natura del segnale è diviso in:
-
analogico;
-
Digital.
E allo scopo, i sensori sono per misurare:
-
temperatura;
-
pressione;
-
umidità;
-
acidità;
-
illuminazione;
-
Livello dell'acqua o altre sostanze;
-
vibrazioni;
-
E altri componenti specializzati.
Se parliamo di Arduino, quindi, quando riceviamo informazioni dai sensori, elaboriamo un segnale digitale o misuriamo la tensione dall'uscita analogica del modulo. Come già accennato, i sensori sono digitali e analogici. Alcuni moduli per Arduino hanno sia l'uscita digitale che quella analogica, che li unifica.
Per dispositivo lo sono
-
resistivo;
-
induttivo;
-
capacitivo;
-
piezoelettrico;
-
Fotocellule e altri tipi.
Sensore di luce o luce
Il modo più semplice per determinare la luminosità di qualcosa - utilizzare un fotoresistor, fotodiodo o fototransistor. Puoi collegare una delle opzioni elencate ad Arduino o acquistare una scheda speciale - sensore di luce.

Quali sono i vantaggi di una soluzione chiavi in mano? In primo luogo, per rilevare i cambiamenti nell'illuminazione di una singola fotocellula non è sufficiente, è necessario anche un resistore regolare o di sintonia, forse comparatore, per l'operazione graduale sì / no. In secondo luogo, una scheda a circuito stampato fabbricata in fabbrica sarà più affidabile di un montaggio incernierato o di una scheda a pacchetto o di altri modi utilizzati dai dilettanti.

Su aliexpress o in altri negozi online è disponibile su richiesta "SENSORE FOTOSENSIBILE" o semplicemente "sensore di luce".
Questo modulo ha tre uscite:
-
alimentazione;
-
la terra;
-
Uscita digitale dal comparatore.
O una versione a quattro pin:
-
alimentazione;
-
la terra;
-
Uscita digitale dal comparatore;
-
Analogico.
Quindi sulla scheda c'è un resistore di sintonia per regolare il momento in cui il comparatore viene attivato, può dare un segnale digitale.
Esempi di utilizzo:
-
Sensore di luce per relè foto;
-
Allarme (associato all'emettitore);
-
Contatore di oggetti che attraversano il raggio luminoso, ecc.
È difficile ottenere valori esatti, poiché sarà necessario un misuratore di luce corretto per la corretta regolazione mediante illuminazione. I fotoresistori sono più adatti per determinare valori astratti come "buio o luce".
Oltre a una tale tavola in vendita, puoi trovare abbastanza interessante Modulo GY-302. Questo è un sensore di luce basato sul circuito integrato BH-1750. La sua caratteristica è che è un modulo digitale, ha una capacità di 16 bit, comunica con i microcontrollori tramite il bus i2c. 16 bit consentono di misurare l'illuminazione da 1 a 65356 Lux (Lx).

Di seguito è riportato un diagramma della sua connessione. Si può notare che SDA e SCL collegato ai pin analogici del microcontrollore.

Ciò è dovuto al fatto che il bus I2C è implementato su questi pin di Arduino, che può essere visto guardando la seguente immagine. Pertanto, non lasciarti ingannare da questo fatto; il sensore è digitale.

Il vantaggio dei sensori digitali è che non è necessario controllare i valori di ciascuna istanza, compilare tabelle per tradurre i valori misurati in scale reali e così via.Nella maggior parte dei casi, per i sensori digitali, è sufficiente collegare semplicemente una libreria già pronta e leggere i valori convertiti in unità reali.
Esempio di schizzo per GY-302 (BH-1750):

Come funziona uno schizzo?
All'inizio, diciamo al programma che abbiamo bisogno di collegare la libreria Wire.h, che è responsabile della comunicazione tramite la linea I2C e il BH1750. Il resto delle azioni sono ben descritte nei commenti e, di conseguenza, ogni 100 ms leggiamo il valore dal sensore in Lux.
Caratteristiche di GY-302 BH1750:
-
Comunicazione microcontrollore I2C
-
Risposta spettrale simile alla sensibilità oculare
-
Gli errori dovuti alle radiazioni infrarosse sono ridotti al minimo
-
Gamma di misurazione 0-65535 Lux
-
Tensione di alimentazione: 3-5 V
-
Basso consumo di corrente e funzione sleep
-
Filtro antirumore 50/60 Hz
-
Il numero massimo di sensori su 1 bus I2C è di 2 pezzi.
-
Nessuna calibrazione richiesta
-
Assorbimento di corrente - 120 μA
-
In modalità sospensione - 0,01 μA
-
Lunghezza d'onda misurata - 560 nm
-
In modalità ad alta risoluzione - 1 Lux
-
In modalità bassa risoluzione - 4 Lux
-
ADC - 16 bit
Tempo impiegato per le misurazioni:
-
In modalità ad alta risoluzione - 120 ms
-
In modalità bassa risoluzione - 16 ms
Sensore di ostacoli
Ho scelto questo sensore come il prossimo da considerare, perché una delle sue opzioni funziona sulla base di un fotodiodo o fototransistor, che sono simili in linea di principio al fotoresistor discusso nella sezione precedente.

Il suo nome è "sensore di ostacolo ottico". L'elemento funzionale principale è il fotodiodo e il LED che emettono e ricevono nello spettro IR (quindi, non visibile all'occhio umano, nonché un gruppo di soglia assemblato, ad esempio, su un comparatore con un regolatore di sensibilità. Usandolo, la distanza alla quale viene attivato il sensore viene regolata dal modo in cui è digitale.
Esempio di schema di collegamento:

Un esempio di un programma di elaborazione del segnale da un sensore.

Qui, se l'uscita dal sensore è "1", che significa "c'è un ostacolo", il LED sulla scheda Arduino o collegato al 13 ° pin (la stessa cosa) si illuminerà. Più spesso usato in robotica e allarmi.

Sensore di distanza
La copia precedente è costituita da un ricevitore, - un fotodiodo e un emettitore, - un LED. Il sensore di distanza ad ultrasuoni comprende anche un ricevitore e un emettitore di onde ultrasoniche. Si chiama HC SR04.

Caratteristiche HC SR04:
-
Tensione di alimentazione 5 V.
-
Il parametro operativo della forza t oka - 15 mA
-
Corrente passiva <2 mA
-
Angolo di visione - 15 °
-
Risoluzione del tocco - 0,3 cm
-
Angolo di misurazione - 30 °
-
Durata dell'impulso - 10-6 s
-
Campo di misura: 2-400 cm.
L'errore appare a causa di:
-
temperatura e umidità - possono essere ridotte misurando la temperatura con DHT-11 o DHT-22, ad esempio, e inserendo i coefficienti per correggere le misurazioni.
-
distanza dall'oggetto;
-
la posizione dell'oggetto rispetto al sensore (secondo il diagramma di radiazione) può essere compensata installando HC SR04 sul servoazionamento per cambiare direzione ed effettuare regolazioni accurate.
-
qualità delle prestazioni degli elementi del modulo sensore.
Modello di radiazione:

La scheda ha quattro uscite:
-
VCC - potenza;
-
Trig - segnale di ingresso;
-
Eco - segnale di uscita;
-
GND è un filo comune.

Come elaborare le letture?
1. Inviamo un impulso con una durata di 10 μs all'ingresso TRIG;
2. All'interno del modulo, l'impulso viene convertito in un pacchetto di 8 impulsi che si susseguono con una frequenza di 40 kHz e vengono inviati attraverso l'emettitore;
3. Gli impulsi riflessi dall'ostacolo arrivano al ricevitore e vengono inviati a ECHO;
4. La durata dell'impulso ricevuto dall'uscita ECHO deve essere divisa per 58.2 per ottenere la distanza in centimetri e per 148 se è necessario convertire in pollici.
Codice di esempio:

Misurare la temperatura
Il modo più semplice per misurare la temperatura utilizzando un microcontrollore è utilizzare una termocoppia o un termistore. Le termocoppie vengono utilizzate per misurare le alte temperature, per misurare l'interno e l'esterno - quello di cui parlerò un po 'di seguito lo farà, ma per ora, diamo un'occhiata a una termocoppia.

Ogni tipo di termocoppia ha il suo approccio per lavorare con un microcontrollore. Ad esempio, esiste una termocoppia di tipo K, o come viene anche chiamata - chromel-alumel, con un intervallo di temperature misurate da -200 a +1400 gradi Celsius con una sensibilità di 41 mV / grado Celsius. E per lei c'è uno speciale convertitore basato sull'IC max6675, ha una funzione per compensare la temperatura della giunzione fredda e così via.

Puoi lavorare con questo modulo usando la libreria con lo stesso nome per Arduino. Nella figura sotto vedi un esempio di codice di programma per questo caso.

Quindi sul monitor della porta seriale viene visualizzato quanto segue.

Ma c'è anche un sensore di temperatura digitale DS12B20, può essere chiamato classico, poiché è stato usato per molti anni in progetti amatoriali e molto prima della comparsa di Arduino.

Questo circuito integrato digitale il suo dispositivo interno è mostrato nella figura seguente:

Schema di collegamento della scheda:

Caratteristiche e informazioni chiave DS18b20:
-
L'errore è inferiore a 0,5 ° C (nell'intervallo di temperatura da -10 ° C a + 85 ° C).
-
Nessuna calibrazione richiesta
-
Campo di misura - da -55 С a + 125С
-
VCC, tensione di alimentazione 3,3-5 V.
-
risoluzione fino a 0,0625С, impostata dal software;
-
Risoluzione - 12 bit
-
A ogni istanza viene assegnato un codice seriale univoco. Ciò è necessario per utilizzare facilmente più pezzi in un progetto
-
Interfaccia di comunicazione - 1 filo
-
Nessuna reggia richiesta
-
Il numero massimo di sensori su una riga è di 127 pezzi.
-
Modalità di alimentazione spuria: in questo caso, il sensore viene alimentato direttamente dalla linea di comunicazione. Allo stesso tempo, una misurazione della temperatura superiore a 100 ° C non è garantita
Di seguito viene visualizzato il diagramma di conversione del codice binario da DS18b20 alla temperatura in gradi Celsius.

Programma di esempio per la lettura dei valori di temperatura.

Sensori di pressione atmosferica
I barometri elettronici sono assemblati sulla base di sensori di pressione atmosferica. Sono state ampiamente utilizzate le seguenti opzioni:
-
BMP180;
-
BMP280;
-
BME280.

Se le due precedenti istanze erano simili tra loro, allora Sensore BME280 - Questa è una stazione meteorologica in miniatura. In esso sono integrati 3 sensori:
-
temperatura;
-
pressione;
-
Umidità.
Le sue caratteristiche tecniche:
-
Dimensioni 2,5 x 2,5 x 0,93 mm;
-
Custodia in metallo LGA, dotata di 8 uscite;
-
Tensione di alimentazione 1,7 - 3,6 V;
-
Disponibilità di interfacce I2C e SPI;
-
Assorbimento in standby 0,1 µA.
Questi esempi sono barometri MEMS. MEMS sta per microelettromeccanico. Questa è una microstruttura meccanica che utilizza fenomeni capacitivi e altri principi per il suo lavoro. Sotto vedi un esempio di tale sensore nel contesto.

Esempio di schema di collegamento:

E un esempio di codice programma:

La logica del programma è semplice:
1. Chiamare la lettura della subroutine (funzione) dal sensore.
2. Richiesta di letture del sensore di temperatura integrato nel barometro.
3. Stiamo aspettando il tempo per valutare il sensore di temperatura;
4. Leggi il risultato delle misurazioni della temperatura;
5. Richiedere valori di pressione;
6. Stiamo aspettando il tempo di misurazione della pressione;
7. Leggere il valore della pressione;
8. Restituisce il valore della pressione dalla funzione.
Un fatto interessante è che ci sono quattro opzioni per leggere i valori, che sono specificati come argomento nella funzione startPressure, il secondo segno è compreso tra 0 e 3, dove 0 è una stima approssimativa e 3 è una stima esatta.
Sensore di movimento
Il sensore di movimento più comune per Arduino è Modulo sensore IR HC SR501. Una caratteristica di questo modulo è che ha una regolazione della distanza di risposta e del tempo di ritardo del segnale di uscita dopo l'operazione.

Caratteristiche del modulo:
1. Tensione di alimentazione 4,5 - 20 V.
2. Corrente di riposo ≈ 50 μA;
3. Tensione di uscita (livello logico): 3,3 V;
4. Intervallo di temperatura di funzionamento - da -15 ° C a 70 ° C;
5. Dimensioni: 32 * 24 mm;
6. Campo visivo - 110 °;
7. Distanza operativa massima - da 3 a 7 m (regolabile); Oltre 30 ° C, questa distanza può diminuire.
Schema elettrico:

Come lavorare con lui abbiamo considerato in un articolo pubblicato in precedenza: Schemi di sensori di movimento, principio del loro lavoro e schemi elettrici
Sensore di livello dell'acqua
Progettato per indicare il livello del fluido.

Caratteristiche:
1. Tensione di alimentazione 3-5 V.
2. Corrente assorbita> 20 mA
3. Analogico
4. Dimensioni della zona di misurazione 40x16 mm
5. Umidità consentita 10% - 90%
Codice di esempio:

I valori di uscita vanno da 0 (allo stato secco) a 685 (può variare infatti, dipende dalla conduttività dell'acqua). Non dimenticare l'elettrolisi, quando si misura il livello di sale o acqua dura, si corroderà.
Sensore di perdite
Il modulo è composto da due parti: il sensore stesso e il comparatore, possono essere costruiti su LM393, LM293 o LM193.

Grazie al comparatore, il segnale analogico viene convertito in digitale.
Schema elettrico:

Scheda Pinout:
-
VCC - power, deve corrispondere alla potenza della scheda Apduino, nella maggior parte dei casi è 5V;
-
GND - filo comune;
-
AO - segnale analogico;
-
DO è un segnale digitale.
C'è una resistenza di sintonizzazione sulla scheda del comparatore, imposta la sensibilità del sensore. Può fungere da segnale di pioggia o perdite di qualcosa e, se abbinato a tale gru, può funzionare come protezione contro le perdite della conduttura nell'appartamento:

Il video mostra come funziona:
Sensore di umidità
Comunemente usato nei progetti di irrigazione automatica, per determinare l'umidità del suolo, così come il precedente è costituito da elettrodi e una scheda con un comparatore.

Può funzionare sia in modalità analogica che digitale. Un esempio di uno schema di collegamento per un sistema di irrigazione automatico con una gru basata su un motore:

E un esempio di codice di programma per l'elaborazione di un segnale digitale da un sensore di umidità:


conclusione
Abbiamo esaminato i sensori più diffusi, ma ce ne sono anche molti altri. Si tratta di una varietà di sensori di vibrazioni, giroscopi, accelerometri, sensori di radiazioni e altro ancora.
Lo scopo dell'articolo era quello di raccogliere in un unico posto una varietà di elementi che potrebbero essere utili a un ingegnere elettronico principiante per la realizzazione dei loro progetti. Se sei interessato a un particolare sensore, scrivi nei commenti e lo considereremo in modo più dettagliato.
Per tua comodità, abbiamo compilato per te una tabella con un costo stimato e un elenco di sensori popolari per Arduino, nell'ordine in cui sono stati considerati nell'articolo:Sensori per Arduino
I prezzi sono presi dai negozi online in Russia o Ucraina. In Cina, costano 2 o più volte in meno.
Vedi anche su electro-it.tomathouse.com
: