kategorier: Mikrokontrollkretser
Antall visninger: 32016
Kommentarer til artikkelen: 0
Mest populære sensorer for Arduino
Sensorer brukes i en rekke kretsløp og prosjekter. Ingen automatisering kan klare seg uten dem. Vi er interessert i dem fordi det er opprettet et prosjekt for å forenkle design og popularisering av elektronikk Arduino. Dette er et ferdig brett med en mikrokontroller og alt du trenger for å jobbe med det og programmere det. I denne artikkelen vil vi vurdere sensorer for Arduino, men de kan også brukes sammen med andre mikrokontrollere.

Hva er sensorene?
Sensorer er øynene, ørene og andre sanser mikrokontroller eller annen kontrollenhet. De kjennetegnes av signalets art og etter formål.
Av signalets art er delt inn i:
-
analog;
-
Digital.
Og til formålet er sensorene for måling:
-
temperatur;
-
trykk;
-
fuktighet;
-
surhet;
-
belysning;
-
Vannstand eller andre stoffer;
-
vibrasjon;
-
Og andre spesialiserte komponenter.
Hvis vi snakker om Arduino, behandler vi et digitalt signal, eller måler spenningen fra den analoge utgangen til modulen når vi mottar informasjon fra sensorer. Som allerede nevnt, sensorer er digitale og analoge. Noen moduler for Arduino har både digital og analog utgang, noe som forener dem.
Av enhet er de det
-
resistive;
-
induktive;
-
kapasitiv;
-
piezoelektrisk;
-
Fotoceller og andre typer.
Lys eller lyssensor
Den enkleste måten å bestemme lysstyrken på noe - bruk en fotoresistor, fotodiode eller fototransistor. Du kan koble et av de listede alternativene til Arduino eller kjøpe et spesielt brett - lyssensor.

Hva er fordelene med en nøkkelferdig løsning? For det første, for å oppdage endringer i belysningen av en enkelt fotocelle er ikke nok, du trenger også en vanlig eller innstillingsmotstand, kanskje det komparator, for trinnvis ja / nei-drift. For det andre vil et fabrikklagd kretskort være mer pålitelig enn en hengslet montering eller et pakkebrett, eller andre måter amatører bruker.

På aliexpress eller i andre nettbutikker finner du den på forespørsel "FOTOSENSITIV-SENSOR" eller bare "lyssensor".
Denne modulen har tre utganger:
-
ernæring;
-
på land;
-
Digital utgang fra komparatoren.
Eller en firpinners versjon:
-
ernæring;
-
på land;
-
Digital utgang fra komparatoren;
-
Analog.
Så på tavlen er det en innstillingsmotstand for å justere i det øyeblikket komparatoren utløses, det kan gi et digitalt signal.
Eksempler på bruk:
-
Lyssensor for fotorelé;
-
Alarm (sammenkoblet med senderen);
-
Teller av objekter som krysser lysstrålen, etc.
Det er vanskelig å oppnå eksakte verdier, siden en riktig lysmåler vil være nødvendig for riktig justering ved belysning. Fotoresistorer er mer egnet for å bestemme abstrakte verdier som "mørk eller lys."
I tillegg til et slikt brett på salg, kan du finne ganske interessant GY-302 modul. Dette er en lyssensor basert på den integrerte kretsen BH-1750. Funksjonen er at det er en digital modul, den har en kapasitet på 16 biter, kommuniserer med mikrokontrollere via i2c-bussen. 16 biter lar deg måle belysning fra 1 til 65356 Lux (Lx).

Nedenfor er et diagram over forbindelsen. Du vil kanskje merke at SDA og SCL koblet til de analoge pinnene på mikrokontrolleren.

Dette skyldes det faktum at I2C-bussen er implementert på disse arduino-pinnene, som kan sees ved å se på følgende bilde. Derfor la deg ikke lure av dette faktum, sensoren er digital.

Fordelen med digitale sensorer er at du ikke trenger å sjekke verdiene for hver forekomst, samle tabeller for å oversette de målte verdiene til virkelige skalaer og så videre.I de fleste tilfeller er det for digitale sensorer nok å bare koble et ferdig bibliotek og lese verdiene som er konvertert til reelle enheter.
Eksempelskisse for GY-302 (BH-1750):

Hvordan fungerer en skisse?
I begynnelsen forteller vi programmet at vi trenger å koble sammen Wire.h-biblioteket, som er ansvarlig for kommunikasjon via I2C-linjen, og BH1750. Resten av handlingene er godt beskrevet i kommentarene, og som et resultat, hver 100 ms leser vi verdien fra sensoren i Lux.
Kjennetegn ved GY-302 BH1750:
-
I2C mikrokontrollerkommunikasjon
-
Spektral respons som ligner øyenfølsomhet
-
Feil på grunn av infrarød stråling minimeres
-
Måleområde 0-65535 Lux
-
Forsyningsspenning: 3-5 V
-
Lavt strømforbruk og søvnfunksjon
-
50/60 Hz lysstøyfiltrering
-
Det maksimale antallet sensorer på 1 I2C-buss er 2 stk.
-
Ingen kalibrering nødvendig
-
Nåværende forbruk - 120 μA
-
I hvilemodus - 0,01 μA
-
Målt bølgelengde - 560 nm
-
I høyoppløselig modus - 1 Lux
-
I lavoppløsningsmodus - 4 Lux
-
ADC - 16 bit
Det tar tid for målinger:
-
I høyoppløselig modus - 120 ms
-
I lavoppløsningsmodus - 16 ms
Hindringssensor
Jeg valgte denne sensoren som den neste å vurdere, fordi ett av alternativene fungerer på basis av en fotodiode eller fototransistor, som i prinsippet ligner på fotoresistoren omtalt i forrige seksjon.

Navnet er "optisk hinder sensor." Det viktigste funksjonelle elementet er fotodioden og LED som avgir og mottar i IR-spekteret (derfor ikke synlig for det menneskelige øye, samt en terskelkonstruksjon montert, for eksempel på en komparator med en følsomhetsregulator. Ved bruk av den justeres avstanden som sensoren utløses, forresten den er digital.
Eksempel på tilkoblingsskjema:

Et eksempel på et signalbehandlingsprogram fra en sensor.

Hvis utgangen fra sensoren er "1", som betyr "det er en hindring", lyser LED på Arduino-kortet eller koblet til den 13. pinnen (den samme). Ofte brukt i robotikk og alarmer.

Avstandsføler
Den forrige kopien består av en mottaker, - en fotodiode, og en sender, - en LED. Den ultrasoniske avstandssensoren består også av en mottaker og en utsender av ultralydbølger. Han heter HC SR04.

Kjennetegn HC SR04:
-
5V forsyningsspenning
-
Driftsparameteren til kraften t oka - 15 mA
-
Passiv strøm <2 mA
-
Synsvinkel - 15 °
-
Berøringsoppløsning - 0,3 cm
-
Målevinkel - 30 °
-
Pulsbredde - 10-6 s
-
Måleområde: 2-400 cm.
Feilen vises på grunn av:
-
temperatur og luftfuktighet - kan reduseres ved å for eksempel måle temperaturen med DHT-11 eller DHT-22 og legge inn koeffisienter for å korrigere målingene.
-
avstand til objektet;
-
Plasseringen av objektet i forhold til sensoren (i henhold til strålingsskjemaet) kan utlignes ved å installere HC SR04 på servostasjonen for å endre retning og foreta nøyaktige justeringer.
-
ytelseskvalitet på sensormodulelementene.
Strålingsmønster:

Styret har fire utganger:
-
VCC - strøm;
-
Trig - inngangssignal;
-
Ekko - utgangssignal;
-
GND er en vanlig ledning.

Hvordan behandle avlesninger?
1. Vi sender en puls med en varighet på 10 μs til TRIG-inngangen;
2. Inni i modulen blir pulsen konvertert til en pakke med 8 pulser som følger hverandre med en frekvens på 40 kHz og blir sendt gjennom senderen;
3. Impulser reflektert fra hindringen ankommer mottakeren og sendes ut til ECHO;
4. Varigheten av pulsen som mottas fra ECHO-utgangen, skal deles med 58,2 for å få avstanden i centimeter og med 148 hvis du trenger å konvertere til tommer.
Eksempelkode:

Mål temperatur
Den enkleste måten å måle temperatur ved hjelp av en mikrokontroller er bruk en termoelement eller en termistor. Termoelementer brukes til å måle høye temperaturer, til å måle innendørs og utendørs - det som jeg vil snakke om litt nedenfor vil gjøre, men foreløpig, la oss se på et termoelement.

Hver type termoelement har sin egen tilnærming for å jobbe med en mikrokontroller. For eksempel er det en termoelement av K-type, eller som det også kalles - krom-alumel, med et område av målte temperaturer fra -200 til +1400 grader Celsius med en følsomhet på 41 mV / grad Celsius. Og for henne er det en spesiell omformer basert på max6675 IC, den har en funksjon for å kompensere temperaturen i kaldt kryss og så videre.

Du kan jobbe med denne modulen ved å bruke biblioteket med samme navn for Arduino. I figuren under ser du et eksempel på programkode for denne saken.

Deretter vises følgende på seriell portmonitor.

Men det er også en digital temperatursensor DS12B20, kan det kalles klassisk, som det har blitt brukt i mange år i amatørprosjekter, og lenge før utseendet til Arduino.

Denne digitale integrerte kretsens interne enhet er vist på figuren nedenfor:

Kartforbindelsesdiagram:

Viktige funksjoner og informasjon DS18B20:
-
Feilen er mindre enn 0,5 ° C (i temperaturområdet fra -10 ° C til + 85 ° C).
-
Ingen kalibrering nødvendig
-
Måleområde - fra -55 С til + 125С
-
VCC, forsyningsspenning 3,3-5V.
-
oppløsning opp til 0,0625С, satt av programvare;
-
Oppløsning - 12 biter
-
Hver forekomst tildeles en unik seriell kode. Dette er nødvendig for å enkelt kunne bruke flere brikker i ett prosjekt
-
Kommunikasjonsgrensesnitt - 1-ledning
-
Ingen stropper kreves
-
Det maksimale antallet sensorer på en linje er 127 stykker.
-
Fantastisk strømmodus - i dette tilfellet drives sensoren direkte fra kommunikasjonslinjen. Samtidig er ikke en temperaturmåling over 100C garantert
Nedenfor ser du konverteringskartet for den binære koden fra DS18b20 til temperatur i grader Celsius.

Eksempel program for å lese temperaturverdier.

Sensorer i atmosfæren
Elektroniske barometre er satt sammen på grunnlag av atmosfæriske trykksensorer. Følgende alternativer ble mye brukt:
-
BMP180;
-
BMP280;
-
BME280.

Hvis de to foregående forekomstene var like med hverandre, da BME280 sensor - Dette er en miniatyrværstasjon. 3 sensorer er bygget i den:
-
temperatur;
-
trykk;
-
Luftfuktighet.
Dens tekniske egenskaper:
-
Mål 2,5 x 2,5 x 0,93 mm;
-
LGA-hus av metall, utstyrt med 8 utganger;
-
Forsyningsspenning 1,7 - 3,6V;
-
Tilgjengeligheten av I2C og SPI-grensesnitt;
-
Strømforbruk i standby 0,1 uA.
Disse eksemplene er MEMS-barometre. MEMS står for mikroelektromekanisk. Dette er en mekanisk mikrostruktur som bruker kapasitive fenomener og andre prinsipper for sitt arbeid. Nedenfor ser du et eksempel på en slik sensor i sammenhengen.

Eksempel på tilkoblingsskjema:

Og et eksempel på programkode:

Logikken i programmet er enkel:
1. Ring subroutine (funksjon) avlesning fra sensoren.
2. Forespørsel om avlesninger av temperatursensoren integrert i barometeret.
3. Vi venter på tid til å evaluere temperatursensoren;
4. Les resultatet av temperaturmålinger;
5. Be om trykkverdier;
6. Vi venter på målingstid for trykk;
7. Les trykkverdien;
8. Returner trykkverdien fra funksjonen.
Et interessant faktum er at det er fire alternativer for å lese verdier, de er spesifisert som et argument i startPressure-funksjonen, det andre tegnet er fra 0 til 3, der 0 er et grovt estimat, og 3 er et eksakt estimat.
Bevegelsessensor
Den vanligste bevegelsessensoren for Arduino er HC SR501 IR sensormodul. Et trekk ved denne modulen er at den har en justering av responsdistansen og forsinkelsestiden for utgangssignalet etter drift.

Modulfunksjoner:
1. Forsyningsspenning 4,5 - 20 V.
2. Rolig strøm ≈ 50 μA;
3. Utgangssignalspenning (logisk nivå): 3,3 V;
4. Driftstemperaturområde - fra -15 ° C til 70 ° C;
5. Mål: 32 * 24 mm;
6. Synsfelt - 110 °;
7. Maksimal driftsavstand - fra 3 til 7 m (justerbar); Over 30 ° C kan denne avstanden avta.
Koblingsskjema:

Hvordan vi jobber med ham vurderte vi i en artikkel publisert tidligere: Oppsett av bevegelsessensorer, prinsippet for deres arbeid og koblingsskjemaer
Vannstand sensor
Designet for å indikere væskenivå.

funksjoner:
1. Forsyningsspenning 3-5V
2. Forbruksstrøm> 20 mA
3. Analog
4. Mål på målesonen 40x16 mm
5. Tillatt luftfuktighet 10% - 90%
Eksempelkode:

Utgangsverdiene er fra 0 (i tørr tilstand) til 685 (kan faktisk variere, det avhenger av konduktiviteten til vannet). Ikke glem elektrolyse, når du måler nivået av salt eller hardt vann, vil det korrodere.
Lekkasjesensor
Modulen består av to deler - selve sensoren og komparatoren, kan bygges på LM393, LM293 eller LM193.

Takket være komparatoren konverteres det analoge signalet til digitalt.
Koblingsskjema:

Board Pinout:
-
VCC - strøm, må samsvare med kraften fra Apduino-styret, i de fleste tilfeller er det 5V;
-
GND - vanlig ledning;
-
AO - analogt signal;
-
DO er et digitalt signal.
Det er en avstemningsmotstand på komparatorkortet, den angir følsomheten til sensoren. Det kan fungere som et signal om regn eller lekker noe, og når det er parret med en slik kran, kan det fungere som beskyttelse mot rørledningslekkasjer i leiligheten:

Videoen viser hvordan den fungerer:
Fuktighetssensor
Vanlig brukt i automatiske vanningsprosjekter, for å bestemme jordfuktighet, så vel som den forrige består av elektroder og et brett med en komparator.

Det kan fungere både i analoge og digitale modus. Et eksempel på tilkoblingsskjema for et automatisk vanningsanlegg med kran basert på en motor:

Og et eksempel på programkode for behandling av et digitalt signal fra en fuktighetssensor:


konklusjon
Vi undersøkte populære sensorer, men det er også mange andre. Dette er en rekke vibrasjonssensorer, gyroskop, akselerometre, strålingssensorer og mer.
Hensikten med artikkelen var å samle på ett sted en rekke elementer som kan være nyttige for en nybegynner elektronikkingeniør for gjennomføringen av prosjektene deres. Hvis du er interessert i en bestemt sensor - skriv kommentarene, så vurderer vi den mer detaljert.
For enkelhets skyld har vi samlet et bord med en estimert pris og en liste over populære sensorer for Arduino, i den rekkefølgen de ble vurdert i artikkelen:Sensorer for Arduino
Prisene er hentet fra nettbutikker i Russland eller Ukraina. I Kina koster de to eller flere ganger billigere.
Se også på elektrohomepro.com
: