kategorier: Microcontroller kredsløb
Antal visninger: 32016
Kommentarer til artiklen: 0
Mest populære sensorer til Arduino
Sensorer bruges i en lang række kredsløb og projekter. Ingen automatisering kan undvære dem. Vi er interesseret i dem, fordi der er oprettet et projekt for at forenkle design og popularisering af elektronik Arduino. Dette er et færdigt bord med en mikrocontroller og alt hvad du har brug for for at arbejde med det og programmere det. I denne artikel vil vi overveje sensorer til Arduino, men de kan også bruges sammen med andre mikrokontrollere.

Hvad er sensorer?
Sensorer er øjne, ører og andre sanser mikrocontroller eller anden kontrolenhed. De er kendetegnet ved signalets art og efter formål.
Efter signalets art er der opdelt i:
-
analog;
-
Digital.
Og til formålet er sensorerne til måling:
-
temperatur;
-
tryk;
-
fugtighed;
-
surhedsgrad;
-
belysning;
-
Vandstand eller andre stoffer;
-
vibrationer;
-
Og andre specialiserede komponenter.
Hvis vi taler om Arduino, behandler vi et digitalt signal, når vi modtager information fra sensorer, eller måler spændingen fra modulets analoge udgang. Som allerede nævnt sensorer er digitale og analoge. Nogle moduler til Arduino har både digital og analog output, hvilket forener dem.
Fra enhed er de det
-
resistiv;
-
induktiv;
-
kapacitiv;
-
piezoelektriske;
-
Fotoceller og andre typer.
Lys eller lyssensor
Den nemmeste måde at bestemme lysstyrken på noget - Brug en fotoresistor, fotodiode eller fototransistor. Du kan tilslutte en af de anførte muligheder til Arduino eller købe et specielt bræt - lyssensor.

Hvad er fordelene ved en nøglefærdigt løsning? For det første at detektere ændringer i belysningen af en enkelt fotocelle ikke er nok, har du også brug for en regelmæssig eller indstillingsmodstand, måske komparator, til trinvis ja / nej-betjening. For det andet vil et fabriksfremstillet printkort være mere pålideligt end en hængslet montering eller et pakkekort, eller andre måder, som amatører bruger.

På aliexpress eller i andre onlinebutikker kan det findes på anmodning "FOTOSENSITIV-SENSOR" eller blot "lyssensor".
Dette modul har tre output:
-
ernæring;
-
Landet;
-
Digital output fra komparatoren.
Eller en fire-pin version:
-
ernæring;
-
Landet;
-
Digital output fra komparatoren;
-
Analog.
Så på tavlen er der en indstillingsmodstand til at justere det øjeblik komparatoren udløses, det kan give et digitalt signal.
Eksempler på brug:
-
Lyssensor til fotorelæ;
-
Alarm (parret med emitteren);
-
Tæller for genstande, der krydser lysstrålen osv.
Det er vanskeligt at opnå nøjagtige værdier, da der kræves en korrekt lysmåler til den korrekte justering ved belysning. Fotoresistorer er mere velegnede til bestemmelse af abstrakte værdier som "mørk eller lys."
Ud over et sådant bræt til salg, kan du finde det ganske interessant GY-302 modul. Dette er en lyssensor baseret på det integrerede BH-1750 kredsløb. Dens funktion er, at det er et digitalt modul, det har en kapacitet på 16 bit, kommunikerer med mikrokontrollere via i2c-bussen. 16 bit giver dig mulighed for at måle belysning fra 1 til 65356 Lux (Lx).

Nedenfor er et diagram over dens forbindelse. Du bemærker muligvis, at SDA og SCL tilsluttet de analoge stifter på mikrokontrolleren.

Dette skyldes det faktum, at I2C-bussen er implementeret på disse arduino-stifter, som kan ses ved at se på det følgende billede. Lad dig ikke narre af denne kendsgerning, sensoren er digital.

Fordelen ved digitale sensorer er, at du ikke behøver at kontrollere værdierne for hvert enkelt tilfælde, samle tabeller for at oversætte de målte værdier til reelle skalaer og så videre.I de fleste tilfælde er det for digitale sensorer nok at blot tilslutte et færdigt bibliotek og læse de værdier, der er konverteret til reelle enheder.
Eksempelskitse til GY-302 (BH-1750):

Hvordan fungerer en skitse?
I starten fortæller vi programmet, at vi har brug for at forbinde Wire.h-biblioteket, der er ansvarlig for kommunikation via I2C-linjen og BH1750. Resten af handlingerne er godt beskrevet i kommentarerne, og som et resultat læser vi hver 100ms værdi fra sensoren i Lux.
Egenskaber ved GY-302 BH1750:
-
I2C mikrokontrollerkommunikation
-
Spektral respons svarende til øjenfølsomhed
-
Fejl på grund af infrarød stråling minimeres
-
Måleområde 0-65535 Lux
-
Forsyningsspænding: 3-5 V
-
Lavt strømforbrug og søvnfunktion
-
50/60 Hz lysstøjfiltrering
-
Det maksimale antal sensorer på 1 I2C-bus er 2 stykker.
-
Ingen kalibrering krævet
-
Nuværende forbrug - 120 μA
-
I dvaletilstand - 0,01 μA
-
Målt bølgelængde - 560 nm
-
I tilstand med høj opløsning - 1 Lux
-
I tilstand med lav opløsning - 4 Lux
-
ADC - 16 bit
Det tager tid at måle:
-
I tilstand med høj opløsning - 120 ms
-
I tilstand med lav opløsning - 16 ms
Hindringssensor
Jeg valgte denne sensor som den næste til at overveje, fordi en af dens muligheder fungerer på basis af en fotodiode eller fototransistor, som i princippet ligner den fotoresistor, der er omtalt i det foregående afsnit.

Dets navn er "optisk forhindringssensor." Det vigtigste funktionelle element er den fotodiode og LED, der udsender og modtager i IR-spektret (derfor ikke synligt for det menneskelige øje, samt en tærskelkonstruktion, der er samlet, for eksempel på en komparator med en følsomhedsregulator. Ved hjælp af den justeres afstanden, som sensoren udløses, ved den digitale måde.
Eksempel på tilslutningsdiagram:

Et eksempel på et signalbehandlingsprogram fra en sensor.

Hvis output fra sensoren her er "1", hvilket betyder "der er en hindring", lyser LED'en på Arduino-kortet eller tilsluttet den 13. pin (den samme ting). Oftest brugt i robotik og alarmer.

Afstandsføler
Den forrige kopi består af en modtager, - en fotodiode og en emitter, - en LED. Den ultrasoniske afstandssensor består også af en modtager og en emitter af ultralydsbølger. Hans navn er HC SR04.

Egenskaber HC SR04:
-
5V forsyningsspænding
-
Betjeningsparameteren for kraften t oka - 15 mA
-
Passiv strøm <2 mA
-
Synsvinkel - 15 °
-
Berøringsopløsning - 0,3 cm
-
Målevinkel - 30 °
-
Pulsbredde - 10-6 s
-
Måleområde: 2-400 cm.
Fejlen vises på grund af:
-
temperatur og fugtighed - kan reduceres ved for eksempel at måle temperaturen med DHT-11 eller DHT-22 og indtaste koefficienter for at rette målingerne.
-
afstand til objektet;
-
objektets placering i forhold til sensoren (i henhold til strålingsdiagrammet) kan udlignes ved at installere HC SR04 på servodrevet for at ændre retning og foretage nøjagtige justeringer.
-
ydelseskvalitet af sensormodulelementerne.
Strålingsmønster:

Bestyrelsen har fire output:
-
VCC - strøm;
-
Trig - indgangssignal;
-
Echo - output signal;
-
GND er en almindelig ledning.

Hvordan behandler man læsninger?
1. Vi sender en puls med en varighed på 10 μs til TRIG-indgangen;
2. Inde i modulet konverteres pulsen til en pakke med 8 pulser, der følger hinanden med en frekvens på 40 kHz og sendes gennem emitteren;
3. Impulser reflekteret fra forhindringen ankommer modtageren og sendes til ECHO;
4. Varigheden af den modtagne puls fra ECHO-output skal divideres med 58,2 for at få afstanden i centimeter og med 148, hvis du har brug for at konvertere til inches.
Eksempel kode:

Mål temperatur
Den nemmeste måde at måle temperatur ved hjælp af en mikrocontroller er Brug en termoelement eller termistor. Termoelementer bruges til at måle høje temperaturer, til at måle indendørs og udendørs - det, som jeg vil tale om lidt nedenfor, vil gøre, men for nu, lad os se på et termoelement.

Hver type termoelement har sin egen tilgang til at arbejde med en mikrocontroller. For eksempel er der en termoelement af K-type, eller som det også kaldes - krom-alumel, med et område af målte temperaturer fra -200 til +1400 grader Celsius med en følsomhed på 41 mV / grad Celsius. Og for hende er der en speciel konverter baseret på max6675 IC, den har en funktion til at kompensere temperaturen i det kolde kryds og så videre.

Du kan arbejde med dette modul ved hjælp af biblioteket med samme navn til Arduino. I figuren nedenfor ser du et eksempel på programkode til denne sag.

Derefter vises følgende på seriel portmonitor.

Men der er også en digital temperatursensor DS12B20, kan det kaldes klassisk, da det har været brugt i mange år i amatørprojekter, og længe før Arduino-udseendet.

Dette digitale integrerede kredsløb sin interne enhed er vist i figuren herunder:

Kortforbindelsesdiagram:

Nøglefunktioner og information DS18B20:
-
Fejlen er mindre end 0,5 ° C (i temperaturområdet fra -10 ° C til + 85 ° C).
-
Ingen kalibrering krævet
-
Måleområde - fra -55 С til + 125С
-
VCC, forsyningsspænding 3,3-5V.
-
opløsning op til 0,0625С, indstillet af software;
-
Opløsning - 12 bit
-
Hver forekomst tildeles en unik seriel kode. Dette er nødvendigt for let at bruge flere stykker i et projekt
-
Kommunikationsgrænseflade - 1-ledning
-
Ingen spænding kræves
-
Det maksimale antal sensorer på en linje er 127 stykker.
-
Fantastisk strømtilstand - i dette tilfælde drives sensoren direkte fra kommunikationslinien. Samtidig er en temperaturmåling over 100 ° C ikke garanteret
Nedenfor ser du konverteringsoversigten over den binære kode fra DS18b20 til temperatur i grader Celsius.

Eksempel program til aflæsning af temperaturværdier.

Sensorer i atmosfærisk tryk
Elektroniske barometre samles på basis af atmosfæriske tryksensorer. Følgende muligheder blev brugt meget:
-
BMP180;
-
BMP280;
-
BME280.

Hvis de to foregående forekomster lignede hinanden, så BME280 sensor - Dette er en miniature vejrstation. 3 sensorer er indbygget i det:
-
temperatur;
-
tryk;
-
Fugtighed.
Dets tekniske egenskaber:
-
Dimensioner 2,5 x 2,5 x 0,93 mm;
-
Metal LGA-hus, udstyret med 8 udgange;
-
Forsyningsspænding 1,7 - 3,6 V;
-
Tilgængelighed af I2C og SPI-grænseflader;
-
Strømforbrug i standby 0,1 µA.
Disse eksempler er MEMS-barometre. MEMS står for mikroelektromekanisk. Dette er en mekanisk mikrostruktur, der bruger kapacitive fænomener og andre principper til sit arbejde. Nedenfor ser du et eksempel på en sådan sensor i konteksten.

Eksempel på tilslutningsdiagram:

Og et eksempel på programkode:

Programmets logik er enkel:
1. Ring til subroutine (funktion) aflæsning fra sensoren.
2. Anmodning om aflæsning af temperatursensoren integreret i barometeret.
3. Vi venter på tid til at evaluere temperatursensoren;
4. Læs resultatet af temperaturmålinger;
5. Anmod om trykværdier;
6. Vi venter på trykmålingstiden;
7. Læs trykværdien;
8. Ret trykværdien tilbage fra funktionen.
En interessant kendsgerning er, at der er fire muligheder for at læse værdier, de er specificeret som et argument i startPressure-funktionen, det andet tegn er fra 0 til 3, hvor 0 er et groft skøn, og 3 er et nøjagtigt estimat.
Bevægelsessensor
Den mest almindelige bevægelsessensor til Arduino er HC SR501 IR sensormodul. Et træk ved dette modul er, at det har en justering af responsafstanden og forsinkelsestiden for udgangssignalet efter drift.

Modulfunktioner:
1. Forsyningsspænding 4,5 - 20 V.
2. Rolig strøm ≈ 50 μA;
3. Udgangsspænding (logisk niveau): 3,3 V;
4. Driftstemperaturområde - fra -15 ° C til 70 ° C;
5. Dimensioner: 32 * 24 mm;
6. Synsfelt - 110 °;
7. Maksimal driftsafstand - fra 3 til 7 m (justerbar); Over 30 ° C kan denne afstand falde.
Ledningsdiagram:

Hvordan man arbejder med ham overvejede vi i en artikel offentliggjort tidligere: Skemaer med bevægelsessensorer, princippet for deres arbejde og ledningsdiagrammer
Vandstand sensor
Designet til at indikere væskestand.

Features:
1. Forsyningsspænding 3-5V
2. Forbrugsstrøm> 20 mA
3. Analog
4. Dimensioner på målezonen 40x16 mm
5. Tilladt luftfugtighed 10% - 90%
Eksempel kode:

Udgangsværdierne er fra 0 (i tør tilstand) til 685 (kan faktisk variere, det afhænger af vandets konduktivitet). Glem ikke elektrolyse, når du måler niveauet af salt eller hårdt vand, vil det korrodere.
Lækagesensor
Modulet består af to dele - selve sensoren og komparatoren kan bygges på LM393, LM293 eller LM193.

Takket være komparatoren konverteres det analoge signal til digitalt.
Ledningsdiagram:

Board Pinout:
-
VCC - strøm, skal matche Apduino-brættets magt, i de fleste tilfælde er det 5V;
-
GND - fælles ledning;
-
AO - analogt signal;
-
DO er et digitalt signal.
Der er en indstillingsmodstand på komparatorkortet, den indstiller sensoren for følsomhed. Det kan fungere som et signal om regn eller lækage af noget, og når det er parret med en sådan kran, kan det fungere som beskyttelse mod rørledningslækager i lejligheden:

Videoen viser, hvordan den fungerer:
Fugtighedsføler
Almindeligt anvendt i automatiske vandingsprojekter, for at bestemme jordfugtighed, såvel som den foregående består af elektroder og et bord med en komparator.

Det kan arbejde både i analoge og digitale tilstande. Et eksempel på et tilslutningsdiagram til et automatisk kunstvandingssystem med en kran baseret på en motor:

Og et eksempel på programkode til behandling af et digitalt signal fra en fugtighedsføler:


konklusion
Vi undersøgte populære sensorer, men der er også mange andre. Disse er en række vibrationssensorer, gyroskoper, accelerometre, strålingssensorer og mere.
Formålet med artiklen var at samle et sted en række elementer, der kan være nyttige for en begyndende elektronikingeniør til gennemførelse af deres projekter. Hvis du er interesseret i en bestemt sensor - skriv kommentarerne, så overvejer vi det mere detaljeret.
For nemheds skyld har vi samlet dig et bord med en anslået pris og en liste over populære sensorer til Arduino i den rækkefølge, de blev betragtet som i artiklen:Sensorer til Arduino
Priserne er hentet fra onlinebutikker i Rusland eller Ukraine. I Kina koster de 2 eller flere gange billigere.
Se også på elektrohomepro.com
: