categorii: Circuite de micro-controler
Număr de vizualizări: 32016
Comentarii la articol: 0

Cele mai populare senzori pentru Arduino

 

Senzorii sunt folosiți într-o mare varietate de circuite și proiecte. Nicio automatizare nu poate face fără ele. Suntem interesați de ei, deoarece a fost creat un proiect care să simplifice designul și popularizarea electronică Arduino. Aceasta este o placă terminată cu un microcontroler și tot ceea ce aveți nevoie pentru a lucra cu acesta și a-l programa. În acest articol, vom lua în considerare senzorii pentru Arduino, dar pot fi folosiți și cu alte microcontrolere.

Cele mai populare senzori pentru Arduino

Care sunt senzorii?

Senzorii sunt ochii, urechile și alte simțuri microcontroler sau alt dispozitiv de control. Ele se disting prin natura semnalului și prin scop.

După natura semnalului se împarte în:

  • analog;

  • Digital.

Și în acest scop, senzorii sunt pentru măsurare:

  • temperatură;

  • presiune;

  • umiditate;

  • aciditate;

  • iluminat;

  • Nivelul apei sau alte substanțe;

  • vibrații;

  • Și alte componente specializate.

Dacă vorbim despre Arduino, atunci când primim informații de la senzori, procesăm un semnal digital sau măsurăm tensiunea de la ieșirea analogică a modulului. După cum am menționat deja, senzorii sunt digitali și analogici. Unele module pentru Arduino au o ieșire digitală și analogică, ceea ce le unifică.

Pe dispozitiv sunt

  • rezistiv;

  • inductiv;

  • capacitiv;

  • piezoelectric;

  • Fotocelule și alte tipuri.



Senzor de lumină sau lumină

Cel mai simplu mod de a determina luminozitatea a ceva - utilizați un fotorezistor, fotodiod sau fototransistor. Puteți conecta una dintre opțiunile enumerate la Arduino sau puteți cumpăra o placă specială - senzor de lumină.

Senzor de lumină

Care sunt avantajele unei soluții la cheie? În primul rând, pentru a determina schimbările de iluminare a unei fotocelule nu este suficient, aveți nevoie și de o rezistență obișnuită sau de reglare, poate că comparator, pentru operațiune în trepte da / nu. În al doilea rând, o placă de circuit imprimat fabricată va fi mai fiabilă decât o montare cu balamale sau o placă de lot, sau alte modalități pe care le folosesc amatorii.

Senzor de lumină

Pe aliexpress sau în alte magazine online poate fi găsit la cerere "FOTOSENSIBIL-SENSOR" sau pur și simplu "senzor de lumină".

Acest modul are trei rezultate:

  • nutriție;

  • pământul;

  • Ieșire digitală de la comparator.

Sau o versiune cu patru pini:

  • nutriție;

  • pământul;

  • Ieșire digitală de la comparator;

  • Analog.

Deci, pe placa de rezistență de reglare plasată pentru a regla sincronizarea comparatorului poate produce un semnal digital.

Exemple de utilizare:

  • Senzor de lumină pentru releu foto;

  • Alarma (asociată cu emițătorul);

  • Contor de obiecte care traversează fasciculul de lumină etc.

Este dificil să atingeți valori exacte, deoarece un contor de lumină corect va fi necesar pentru reglarea corectă prin iluminare. Fotorezistorii sunt mai potriviți pentru determinarea valorilor abstracte, cum ar fi „întuneric sau lumină”.

În plus față de o astfel de placă la vânzare, puteți găsi destul de interesant Modulul GY-302. Acesta este un senzor de lumină bazat pe circuitul integrat BH-1750. Caracteristica sa este că este un modul digital, are o capacitate de 16 biți, comunică cu microcontrolerele prin intermediul magistralei i2c. 16 biți vă permit să măsurați iluminarea de la 1 la 65356 Lux (Lx).

Senzor de lumină ambiental bazat pe circuitul integrat BH-1750

Mai jos este o diagramă a conexiunii sale. Puteți observa că SDA și SCL conectat la pinii analogici ai microcontrolerului.

Schema de conectare a senzorului de lumină

Acest lucru se datorează faptului că autobuzul I2C este implementat pe acei pins arduino, ceea ce poate fi observat urmărind imaginea următoare. Prin urmare, nu vă lăsați păcăliți de acest fapt, senzorul este digital.

Schema modulului GY-302

Avantajul senzorilor digitali este că nu trebuie să verificați valorile fiecărei instanțe, să compilați tabele pentru a traduce valorile măsurate în scale reale și așa mai departe.În majoritatea cazurilor, pentru senzorii digitali, este suficient să conectați pur și simplu o bibliotecă gata pregătită și să citiți valorile convertite în unități reale.

Exemplu de schiță pentru GY-302 (BH-1750):

Exemplu de schiță pentru GY-302

Cum funcționează o schiță?

La început, spunem programului că trebuie să conectăm biblioteca Wire.h, care este responsabilă de comunicare prin linia I2C, și BH1750. Restul acțiunilor sunt bine descrise în comentarii și, ca urmare, la fiecare 100ms citim valoarea de la senzorul din Lux.

Caracteristicile GY-302 BH1750:

  • Comunicare microcontroler I2C

  • Răspuns spectral similar cu sensibilitatea ochilor

  • Erorile datorate radiațiilor infraroșii sunt reduse la minimum

  • Gama de măsurare 0-65535 Lux

  • Tensiunea de alimentare: 3-5 V

  • Consum redus de curent și funcție de somn

  • Filtrare zgomot 50/60 Hz

  • Numărul maxim de senzori pe 1 autobuz I2C este de 2 bucăți.

  • Nu este necesară calibrarea

  • Consum curent - 120 μA

  • În regim de somn - 0,01 μA

  • Lungimea de undă măsurată - 560 nm

  • În modul de rezoluție înaltă - 1 Lux

  • În modul de rezoluție joasă - 4 Lux

  • ADC - 16 biți

Timpul necesar pentru măsurători:

  • În modul de rezoluție înaltă - 120 ms

  • În modul de rezoluție joasă - 16 ms


Senzor de obstacole

Am ales acest senzor ca fiind următorul, deoarece una dintre opțiunile sale funcționează pe baza unui fotodiod sau fototransistor, care sunt similare în principiu cu fotorezistorul discutat în secțiunea anterioară.

Senzor de obstacole

Numele său este "senzor optic de obstacole". Elementul funcțional principal este fotodiodul și LED-ul care emite și recepționează în spectrul IR (prin urmare, nu este vizibil pentru ochiul uman, precum și un ansamblu de prag asamblat, de exemplu, pe un comparator cu un regulator de sensibilitate. Folosind acesta, distanța la care este declanșat senzorul este ajustată, prin modul în care este digital).

Exemplu de diagrama de conexiune:

Exemplu de conexiune

Un exemplu de program de procesare a semnalului de la un senzor.

Un exemplu de program de procesare a semnalului de la un senzor

Aici, dacă ieșirea de la senzor este „1”, ceea ce înseamnă „există un obstacol”, LED-ul de pe placa Arduino sau conectat la al 13-lea pin (același lucru) se va aprinde. Cel mai adesea folosit în robotică și alarme.

Utilizarea senzorilor

Senzor de distanță

Copia anterioară este formată dintr-un receptor, - un fotodiod și un emițător, - un LED. Senzorul ultrasonic de distanță constă, de asemenea, dintr-un receptor și un emițător de unde ultrasonice. Numele lui este HC SR04.

Senzor de distanță

Caracteristici HC SR04:

  • 5V tensiune de alimentare

  • Parametrul de funcționare al forței t oka - 15 mA

  • Curent pasiv <2 mA

  • Unghiul de vizualizare - 15 °

  • Rezoluție tactilă - 0,3 cm

  • Unghiul de măsurare - 30 °

  • Lățimea impulsului - 10-6 s

  • Domeniu de măsurare: 2-400 cm.

Eroarea apare din cauza:

  • temperatura și umiditatea - pot fi reduse prin măsurarea temperaturii cu DHT-11 sau DHT-22, de exemplu, și introducând coeficienți pentru a corecta măsurătorile.

  • distanța față de obiect;

  • locația obiectului în raport cu senzorul (conform diagramei de radiații) poate fi compensată prin instalarea HC SR04 pe servomotor pentru a schimba direcția și a face ajustări precise.

  • calitatea performanței elementelor modulului senzor.

Model de radiații:

Model de radiații

Placa are patru rezultate:

  • VCC - putere;

  • Trig - semnal de intrare;

  • Ecou - semnal de ieșire;

  • GND este un fir comun.

Senzor HC SR04

Cum să procesați citirile?

1. Trimitem un impuls cu o durată de 10 μs la intrarea TRIG;

2. În interiorul modulului, impulsul este transformat într-un pachet de 8 impulsuri care se urmează reciproc cu o frecvență de 40 kHz și sunt transmise prin emițător;

3. Impulsurile reflectate din obstacol ajung la receptor și sunt transmise către ECHO;

4. Durata impulsului primit de la ieșirea ECHO trebuie împărțită cu 58,2 pentru a obține distanța în centimetri și cu 148 dacă trebuie să convertiți în centimetri.

Exemplu de cod:

Cod de exemplu

Măsurați temperatura

Cel mai simplu mod de a măsura temperatura folosind un microcontroler este folosiți un termopar sau un termistor. Termocuple sunt folosite pentru a măsura temperaturile ridicate, pentru a măsura interiorul și exteriorul - cel despre care voi vorbi puțin mai jos îl va face, dar, deocamdată, să ne uităm la un termopar.

Senzor de temperatură

Fiecare tip de termopar are propria sa abordare pentru a lucra cu un microcontroller. De exemplu, există un termocuplu de tip K, sau cum se mai numește - crom-alumel, cu o gamă de temperaturi măsurate de la -200 până la +1400 grade Celsius cu o sensibilitate de 41 mV / grad Celsius. Și pentru ea există un convertor special bazat pe max6675 IC, are o funcție de compensare a temperaturii joncțiunii la rece și așa mai departe.

Modul pentru măsurarea temperaturii

Puteți lucra cu acest modul folosind biblioteca cu același nume pentru Arduino. În figura de mai jos vedeți un exemplu de cod de program pentru acest caz.

Cod de exemplu

Apoi, următorul lucru este afișat pe monitorul portului serial.

Monitor de port serial

Există însă și un senzor digital de temperatură DS12B20, poate fi numit clasic, așa cum a fost folosit de mai mulți ani în proiecte de amatori și cu mult înainte de apariția lui Arduino.

Senzor digital de temperatură DS12B20

Acest circuit digital integrat dispozitivul său intern este prezentat în figura de mai jos:

Microcircuit dispozitiv intern

Schema de conectare a placii:

Schema de conectare a plăcii

Caracteristici și informații cheie DS18B20:

  • Eroarea este mai mică de 0,5 ° C (în intervalul de temperatură de la -10 ° C la + 85 ° C).

  • Nu este necesară calibrarea

  • Domeniul de măsurare - de la -55 С la + 125 С

  • VCC, tensiune de alimentare 3,3-5V.

  • rezoluție până la 0,0625С, setată de software;

  • Rezoluție - 12 biți

  • Fiecărei instanțe i se atribuie un cod serial unic. Acest lucru este necesar pentru a utiliza cu ușurință mai multe piese într-un singur proiect

  • Interfață de comunicare - 1-Wire

  • Nu este necesară o curea

  • Numărul maxim de senzori pe o linie este de 127 de bucăți.

  • Mod de alimentare spurios - în acest caz, senzorul este alimentat direct de la linia de comunicație. În același timp, nu este garantată o măsurare a temperaturii mai mare de 100C

Mai jos vedeți graficul de conversie al codului binar de la DS18b20 la temperatura în grade Celsius.

Tabel de conversie pentru codul binar de la DS18b20 la temperatura în grade Celsius

Exemplu de program pentru citirea valorilor temperaturii.

Exemplu de program pentru citirea valorilor temperaturii

Senzori de presiune atmosferică

Barometrele electronice sunt asamblate pe baza senzorilor de presiune atmosferică. Următoarele opțiuni au fost utilizate pe scară largă:

  • BMP180;

  • BMP280;

  • BME280.

Senzori de presiune atmosferică

Dacă cele două instanțe anterioare erau similare între ele, atunci Senzor BME280 - Aceasta este o stație meteorologică în miniatură. În el sunt încorporate 3 senzori:

  • temperatură;

  • presiune;

  • Umiditate.

Caracteristicile sale tehnice:

  • Dimensiuni 2,5 x 2,5 x 0,93 mm;

  • Carcasă metalică LGA, dotată cu 8 ieșiri;

  • Tensiunea de alimentare 1.7 - 3.6V;

  • Disponibilitatea interfețelor I2C și SPI;

  • Consum de curent standby 0,1 µA.

Aceste exemple sunt barometre MEMS. MEMS înseamnă microelectromecanică. Aceasta este o microstructura mecanică care folosește fenomene capacitive și alte principii pentru activitatea sa. Mai jos vedeți un exemplu de astfel de senzor în context.

Exemplu secțional de senzor

Exemplu de diagrama de conexiune:

Exemplu de conexiune

Și un exemplu de cod de program:

Cod de exemplu

Logica programului este simplă:

1. Apelați citirea subrutinei (funcție) de la senzor.

2. Cerere pentru citirea senzorului de temperatură integrat în barometru.

3. Asteptam timp pentru evaluarea senzorului de temperatura;

4. Citiți rezultatul măsurătorilor de temperatură;

5. Cereți valori de presiune;

6. Așteptăm timpul de măsurare a presiunii;

7. Citiți valoarea presiunii;

8. Întoarceți valoarea presiunii din funcție.

Un fapt interesant este faptul că există patru opțiuni pentru citirea valorilor, acestea sunt specificate ca argument în funcția startPressure, al doilea semn este de la 0 la 3, unde 0 este o estimare brută, iar 3 este o estimare exactă.


Senzor de mișcare

Cel mai frecvent senzor de mișcare pentru Arduino este Modul senzor IR HC SR501. O caracteristică a acestui modul este că are o ajustare a distanței de răspuns și a timpului de întârziere a semnalului de ieșire după operație.

Senzor de mișcare

Caracteristici modul:

1. Tensiunea de alimentare 4.5 - 20 V.

2. Curentul liniștit ≈ 50 μA;

3. Tensiunea semnalului de ieșire (nivel logic): 3,3 V;

4. Intervalul de temperatură de funcționare - de la -15 ° C la 70 ° C;

5. Dimensiuni: 32 * 24 mm;

6. Câmpul vizual - 110 °;

7. Distanța maximă de operare - de la 3 la 7 m (reglabil); Peste 30 ° C, această distanță poate scădea.

Schema de cablare:

Schema de conectare a senzorului de mișcare

Cum am lucrat cu el am considerat într-un articol publicat anterior: Schemele senzorilor de mișcare, principiul muncii și diagramelor de cablare


Senzor de nivel de apă

Proiectat pentru a indica nivelul de fluid.

Senzor de nivel de apă

Caracteristici:

1. Tensiune de alimentare 3-5V

2. Curent de consum> 20 mA

3. Analog

4. Dimensiunile zonei de măsurare 40x16 mm

5. Umiditate admisă 10% - 90%

Exemplu de cod:

Cod de exemplu

Valorile de ieșire sunt de la 0 (în stare uscată) la 685 (poate diferi de fapt depinde de conductivitatea apei). Nu uitați de electroliză, atunci când măsurați nivelul de sare sau apă tare, aceasta va coroda.


Senzor de scurgere

Modulul este format din două părți - senzorul în sine și comparatorul, pot fi construite pe LM393, LM293 sau LM193.

Senzor de scurgere

Datorită comparatorului, semnalul analog este convertit în digital.

Schema de cablare:

Schema de cablare a senzorului de scurgere

Board Pinout:

  • VCC - putere, trebuie să se potrivească cu puterea placii Apduino, în majoritatea cazurilor este de 5V;

  • GND - sârmă comună;

  • AO - semnal analogic;

  • DO este un semnal digital.

Pe placa de comparație există un rezistor de reglare, setează sensibilitatea senzorului. Poate acționa ca un semnal de ploaie sau scurge ceva, iar când este asociat cu o astfel de macara, poate funcționa ca protecție împotriva scurgerilor de conducte în apartament:

Robinet de protecție împotriva scurgerilor

Videoclipul arată cum funcționează:


Senzor de umiditate

Folosit frecvent în proiecte de udare automată, pentru a determina umiditatea solului, precum și cel precedent este format din electrozi și o placă cu un comparator.

Senzor de umiditate

Poate funcționa atât în ​​moduri analogice, cât și digitale. Un exemplu de diagrama de conectare pentru un sistem automat de irigare cu o macara bazată pe un motor:

Schema de conectare a senzorului de umiditate la Arduino

Și un exemplu de cod de program pentru procesarea unui semnal digital de la un senzor de umiditate:

Exemplu de cod pentru procesarea unui semnal digital de la un senzor de umiditate
Senzor digital de temperatură și umiditate AM2302

concluzie

Am examinat senzorii populari, dar există și mulți alții. Acestea sunt o varietate de senzori de vibrații, giroscopuri, accelerometre, senzori de radiații și multe altele.

Scopul articolului a fost de a colecta într-un singur loc o varietate de elemente care pot fi utile pentru un inginer electronist începător pentru implementarea proiectelor lor. Dacă sunteți interesat de un anumit senzor - scrieți în comentarii și îl vom considera mai detaliat.

Pentru confortul dvs., v-am întocmit un tabel cu un cost estimat și o listă de senzori populari pentru Arduino, în ordinea în care au fost luați în considerare în articol:Senzori pentru Arduino

Prețurile sunt preluate de la magazinele online din Rusia sau Ucraina. În China, costă de 2 sau mai multe ori mai ieftin.

Consultați și la i.electricianexp.com:

  • Măsurarea temperaturii și umidității pe Arduino - o selecție de metode
  • Conectarea senzorilor analogici la Arduino, citirea senzorilor
  • Care este diferența dintre senzorii analogici și cei digitali
  • Modul de funcționare și funcționarea senzorului de linie
  • Schemele senzorilor de mișcare și principiul muncii lor, diagrame de cablare

  •