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.

Mest populære sensorer for Arduino

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.

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.

Lyssensor

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).

Omgivelseslyssensor basert på integrert krets BH-1750

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

Tilkoblingsskjema for lyssensor

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.

GY-302 modulskjema

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):

Skisseeksempel for GY-302

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.

Hindringssensor

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:

Tilkoblingseksempel

Et eksempel på et signalbehandlingsprogram fra en sensor.

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.

Bruke sensorer

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.

Avstandsføler

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:

Strålingsmønster

Styret har fire utganger:

  • VCC - strøm;

  • Trig - inngangssignal;

  • Ekko - utgangssignal;

  • GND er en vanlig ledning.

HC SR04 sensorledninger

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:

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.

Temperatursensor

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.

Modul for måling av temperatur

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.

Eksempelkode

Deretter vises følgende på seriell portmonitor.

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.

Digital temperatursensor DS12B20

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

Mikrokrets for intern enhet

Kartforbindelsesdiagram:

Kartetilkoblingsskjema

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.

Konverteringstabell for den binære koden fra DS18b20 til temperatur i grader Celsius

Eksempel program for å lese temperaturverdier.

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.

Sensorer i atmosfæren

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.

Deleksempel på en sensor

Eksempel på tilkoblingsskjema:

Tilkoblingseksempel

Og et eksempel på programkode:

Eksempelkode

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.

Bevegelsessensor

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:

Tilkoblingsskjema for bevegelsessensor

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å.

Vannstand sensor

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:

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.

Lekkasjesensor

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

Koblingsskjema:

Koblingsskjema for lekkasjesensor

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:

Lekkasjebeskyttelse

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.

Fuktighetssensor

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

Koblingsskjema for fuktighetssensoren til Arduino

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

Eksempelkode for behandling av et digitalt signal fra en fuktighetssensor
Digital temperatur- og fuktighetssensor AM2302

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:

  • Måling av temperatur og fuktighet på Arduino - et utvalg av metoder
  • Koble analoge sensorer til Arduino, lese sensorer
  • Hva er forskjellen mellom analoge og digitale sensorer
  • Hvordan linjesensoren er ordnet og fungerer
  • Oppsett av bevegelsessensorer og prinsippet for deres arbeid, koblingsskjemaer

  •