kategorier: Mikrokontrollkretsar
Antal visningar: 32016
Kommentarer till artikeln: 0

Mest populära sensorer för Arduino

 

Sensorer används i en mängd olika kretsar och projekt. Ingen automatisering kan göra utan dem. Vi är intresserade av dem eftersom ett projekt har skapats för att förenkla design och popularisering av elektronik Arduino. Detta är ett färdigt kort med en mikrokontroller och allt du behöver för att arbeta med det och programmera det. I den här artikeln kommer vi att överväga sensorer för Arduino, men de kan också användas med andra mikrokontroller.

Mest populära sensorer för Arduino

Vad är sensorerna?

Sensorer är ögon, öron och andra sinnen mikrokontroller eller annan styrenhet. De kännetecknas av signalens natur och med syfte.

Av signalens natur delas upp i:

  • analog;

  • Digital.

Och för ändamålet är sensorerna för att mäta:

  • temperatur;

  • tryck;

  • fuktighet;

  • surhet;

  • belysning;

  • Vattennivå eller andra ämnen;

  • vibration;

  • Och andra specialiserade komponenter.

Om vi ​​talar om Arduino, då behandlar vi en digital signal, eller mäter spänningen från den analoga utgången från modulen. Som redan nämnts sensorer är digitala och analoga. Vissa moduler för Arduino har både digital och analog utgång, vilket förenar dem.

Av enhet är de det

  • resistiv;

  • induktiv;

  • kapacitiv;

  • piezoelektriska;

  • Fotoceller och andra typer.



Ljus eller ljussensor

Det enklaste sättet att bestämma något ljusstyrka - använd fotomotstånd, fotodiode eller fototransistor. Du kan ansluta ett av de listade alternativen till Arduino eller köpa ett specialkort - ljusgivare.

Ljussensor

Vilka är fördelarna med en nyckelfärdig lösning? För det första, för att upptäcka förändringar i belysningen av en enda fotocell är inte tillräckligt, du behöver också ett regelbundet eller avstämningsmotstånd, kanske det komparator, för stegvis ja / nej-operation. För det andra kommer ett fabrikstillverkat kretskort att vara mer tillförlitligt än ett gångjärnsfäste eller ett paketkort, eller andra sätt som amatörer använder.

Ljussensor

På aliexpress eller i andra onlinebutiker finns det på begäran "FOTOSENSITIV-SENSOR" eller helt enkelt "ljussensor".

Denna modul har tre utgångar:

  • nutrition;

  • landet;

  • Digital utgång från komparatorn.

Eller en fyrstiftig version:

  • nutrition;

  • landet;

  • Digital utgång från komparatorn;

  • Analog.

Så på brädet finns det ett inställningsmotstånd för att justera det ögonblick som komparatorn utlöses, det kan ge en digital signal.

Exempel på användning:

  • Ljussensor för fotorelä;

  • Larm (parat med sändaren);

  • Räknare för föremål som korsar ljusstrålen etc.

Det är svårt att uppnå exakta värden, eftersom en korrekt ljusmätare kommer att behövas för korrekt justering genom belysning. Fotoresistorer är mer lämpade för att bestämma abstrakta värden som "mörk eller ljus."

Förutom ett sådant bräde till försäljning kan du hitta ganska intressant GY-302-modul. Detta är en ljussensor baserad på den integrerade kretsen BH-1750. Dess funktion är att det är en digital modul, den har en kapacitet på 16 bitar, kommunicerar med mikrokontroller via i2c-bussen. 16 bitar gör att du kan mäta belysning från 1 till 65356 Lux (Lx).

Omgivande ljusgivare baserad på integrerad krets BH-1750

Nedan visas ett diagram över dess anslutning. Du kanske märker att SDA och SCL ansluten till de analoga stiften på mikrokontrollern.

Ljussensoranslutningsdiagram

Detta beror på att I2C-bussen är implementerad på dessa arduino-stift, vilket kan ses genom att titta på följande bild. Låt dig därför inte luras av detta faktum, sensorn är digital.

GY-302 moduldiagram

Fördelen med digitala sensorer är att du inte behöver kontrollera värdena för varje instans, sammanställa tabeller för att översätta de uppmätta värdena till riktiga skalor och så vidare.I de flesta fall är det tillräckligt för digitala sensorer att bara ansluta ett färdigt bibliotek och läsa värdena omvandlade till verkliga enheter.

Exempel skiss för GY-302 (BH-1750):

Skissexempel för GY-302

Hur fungerar en skiss?

I början berättar vi för programmet att vi måste ansluta Wire.h-biblioteket, som ansvarar för kommunikation via I2C-linjen, och BH1750. Resten av åtgärderna är väl beskrivna i kommentarerna, och som ett resultat läser vi varje 100 ms värdet från sensorn i Lux.

Egenskaper hos GY-302 BH1750:

  • I2C mikrokontrollerkommunikation

  • Spektralt svar som liknar ögonkänsligheten

  • Fel på grund av infraröd strålning minimeras

  • Mätområde 0-65535 Lux

  • Matningsspänning: 3-5 V

  • Låg strömförbrukning och sömnfunktion

  • 50/60 Hz lättbrusfiltrering

  • Det maximala antalet sensorer på 1 I2C-buss är 2 delar.

  • Ingen kalibrering krävs

  • Strömförbrukning - 120 μA

  • I viloläge - 0,01 μA

  • Uppmätt våglängd - 560 nm

  • I högupplöst läge - 1 Lux

  • I läge med låg upplösning - 4 Lux

  • ADC - 16 bit

Tid för mätningar:

  • I högupplöst läge - 120 ms

  • I läge med låg upplösning - 16 ms


Hinder sensor

Jag valde denna sensor som den nästa att tänka på, eftersom ett av dess alternativ fungerar på basis av en fotodiode eller fototransistor, som i princip liknar den fotoresistor som diskuterades i föregående avsnitt.

Hinder sensor

Dess namn är "optiska hinder sensor." Det huvudsakliga funktionella elementet är fotodioden och LED som avger och tar emot i IR-spektrumet (därför inte synligt för det mänskliga ögat, liksom ett tröskelaggregat som är monterat, till exempel på en komparator med en känslighetsregulator. Med det justeras avståndet på vilket sensorn utlöses, så att den är digital.

Exempel på anslutningsdiagram:

Anslutningsexempel

Ett exempel på ett signalbehandlingsprogram från en sensor.

Ett exempel på ett signalbehandlingsprogram från en sensor

Om utgången från sensorn är "1", vilket betyder "det finns ett hinder", tänds lysdioden på Arduino-kortet eller ansluten till den 13: e stiftet (samma sak). Oftast används inom robotik och larm.

Använda sensorer

Avståndsgivare

Den föregående exemplet består av en mottagare, - en fotodiod och en sändare, - en lysdiod. Ultraljudssensorn består också av en mottagare och en emitter av ultraljudvågor. Hans namn är HC SR04.

Avståndsgivare

Egenskaper HC SR04:

  • 5V matningsspänning

  • Driftparametern för kraften t oka - 15 mA

  • Passiv ström <2 mA

  • Betraktningsvinkel - 15 °

  • Pekupplösning - 0,3 cm

  • Mätvinkel - 30 °

  • Pulsbredd - 10-6 s

  • Mätområde: 2-400 cm.

Felet visas på grund av:

  • temperatur och luftfuktighet - kan reduceras genom att till exempel mäta temperaturen med DHT-11 eller DHT-22 och ange koefficienter för att korrigera mätningarna.

  • avstånd till objektet;

  • objektets placering relativt sensorn (enligt strålningsdiagrammet) kan kompenseras genom att installera HC SR04 på servomotorn för att ändra riktning och göra exakta justeringar.

  • prestandakvalitet för sensormodulelementen.

Strålningsmönster:

Strålningsmönster

Styrelsen har fyra utgångar:

  • VCC - effekt;

  • Trig - insignal;

  • Echo - utsignal;

  • GND är en vanlig tråd.

HC SR04 sensorledare

Hur bearbetar du läsningar?

1. Vi skickar en puls med en varaktighet på 10 μs till TRIG-ingången;

2. Inuti modulen omvandlas pulsen till ett paket med 8 pulser som följer varandra med en frekvens av 40 kHz och skickas genom sändaren;

3. Impulser som reflekteras från hindret kommer till mottagaren och skickas ut till ECHO;

4. Varaktigheten på den puls som erhållits från ECHO-utgången ska delas med 58,2 för att få avståndet i centimeter och med 148 om du behöver konvertera till tum.

Exempelkod:

Provkod

Mät temperatur

Det enklaste sättet att mäta temperatur med hjälp av en mikrokontroller är använd en termoelement eller termistor. Termoelement används för att mäta höga temperaturer, för att mäta inomhus och utomhus - det som jag kommer att prata om lite nedan kommer att göra, men för nu, låt oss titta på ett termoelement.

Temperaturgivare

Varje typ av termoelement har sin egen metod för att arbeta med en mikrokontroller. Till exempel finns det ett termoelement av K-typ, eller som det också kallas - krom-alumn, med ett intervall av uppmätta temperaturer från -200 till +1400 grader Celsius med en känslighet på 41 mV / grad Celsius. Och för henne finns det en speciell omvandlare baserad på max6675 IC, den har en funktion för att kompensera temperaturen i kylkorsningen och så vidare.

Modul för mätning av temperatur

Du kan arbeta med den här modulen med biblioteket med samma namn för Arduino. I figuren nedan ser du ett exempel på programkod för detta fall.

Provkod

Då visas följande på seriell portmonitorn.

Seriell portmonitor

Men det finns också en digital temperatursensor DS12B20, det kan kallas klassiskt, eftersom det har använts i många år i amatörprojekt, och långt innan Arduino uppträdde.

Digital temperatursensor DS12B20

Denna digitala integrerade krets dess interna enhet visas i figuren nedan:

Mikrokrets för intern enhet

Kortanslutningsdiagram:

Kortanslutningsdiagram

Viktiga funktioner och information DS18B20:

  • Felet är mindre än 0,5 ° C (i temperaturområdet från -10 ° C till + 85 ° C).

  • Ingen kalibrering krävs

  • Mätområde - från -55 С till + 125С

  • VCC, matningsspänning 3,3-5V.

  • upplösning upp till 0,0625С, inställd av programvara;

  • Upplösning - 12 bitar

  • Varje instans tilldelas en unik seriekod. Detta är nödvändigt för att enkelt kunna använda flera delar i ett projekt

  • Kommunikationsgränssnitt - 1-tråd

  • Ingen band krävs

  • Det maximala antalet sensorer på en linje är 127 stycken.

  • Fantastiskt effektläge - i detta fall drivs sensorn direkt från kommunikationslinjen. Samtidigt en temperaturmätning högre än 100 ° C

Nedan ser du konverteringsdiagrammet för den binära koden från DS18b20 till temperatur i grader Celsius.

Konverteringstabell för binär kod från DS18b20 till temperatur i grader Celsius

Exempel på program för avläsning av temperaturvärden.

Exempel på program för avläsning av temperaturvärden

Atmosfäriska tryckgivare

Elektroniska barometrar monteras på basis av atmosfäriska tryckgivare. Följande alternativ användes ofta:

  • BMP180;

  • BMP280;

  • BME280.

Atmosfäriska tryckgivare

Om de två föregående instanserna var lika varandra, då BME280-sensor - Det här är en miniatyr väderstation. 3 sensorer är inbyggda i den:

  • temperatur;

  • tryck;

  • Luftfuktighet.

Dess tekniska egenskaper:

  • Mått 2,5 x 2,5 x 0,93 mm;

  • LGA-hölje i metall, utrustad med 8 utgångar;

  • Matningsspänning 1,7 - 3,6V;

  • Tillgänglighet för I2C- och SPI-gränssnitt;

  • Strömförbrukning i vänteläge 0,1 µA.

Dessa exempel är MEMS-barometrar. MEMS står för mikroelektromekanik. Detta är en mekanisk mikrostruktur som använder kapacitiva fenomen och andra principer för sitt arbete. Nedan ser du ett exempel på en sådan sensor i sammanhanget.

Sektionsexempel på en sensor

Exempel på anslutningsdiagram:

Anslutningsexempel

Och ett exempel på programkod:

Provkod

Programmets logik är enkel:

1. Ring subroutin (funktion) avläsning från sensorn.

2. Begäran om avläsning av temperatursensorn integrerad i barometern.

3. Vi väntar på tid för att utvärdera temperatursensorn;

4. Läs resultatet av temperaturmätningar;

5. Begär tryckvärden;

6. Vi väntar på tryckmätningstiden;

7. Läs av tryckvärdet;

8. Återgå tryckvärdet från funktionen.

Ett intressant faktum är att det finns fyra alternativ för att läsa värden, de anges som ett argument i startPressure-funktionen, det andra tecknet är från 0 till 3, där 0 är en grov uppskattning och 3 är en exakt uppskattning.


Rörelsessensor

Den vanligaste rörelsessensorn för Arduino är HC SR501 IR-sensormodul. En egenskap hos denna modul är att den har en justering av svarsavståndet och fördröjningstiden för utsignalen efter drift.

Rörelsessensor

Modulfunktioner:

1. Matningsspänning 4,5 - 20 V.

2. Tystström ≈ 50 μA;

3. Utgångssignalspänning (logisk nivå): 3,3 V;

4. Driftstemperaturområde - från -15 ° C till 70 ° C;

5. Mått: 32 * 24 mm;

6. Synfält - 110 °;

7. Maximal driftsavstånd - från 3 till 7 m (justerbar); Över 30 ° C kan detta avstånd minska.

Kopplingsschema:

Rörelsesensoranslutningsdiagram

Hur man arbetar med honom betraktade vi i en artikel publicerad tidigare: Planer för rörelsessensorer, principen för deras arbete och kopplingsscheman


Vattennivå sensor

Utformad för att indikera vätskenivån.

Vattennivå sensor

funktioner:

1. Matningsspänning 3-5V

2. Förbrukningsström> 20 mA

3. Analog

4. Måttzonens mått 40x16 mm

5. Tillåten luftfuktighet 10% - 90%

Exempelkod:

Provkod

Utgångsvärdena är från 0 (i torrt tillstånd) till 685 (kan faktiskt variera, det beror på vattnets konduktivitet). Glöm inte elektrolysen, när du mäter nivån av salt eller hårt vatten, kommer det att korrodera.


Läckagesensor

Modulen består av två delar - själva sensorn och komparatorn, kan byggas på LM393, LM293 eller LM193.

Läckagesensor

Tack vare komparatorn konverteras den analoga signalen till digital.

Kopplingsschema:

Kopplingsschema för läckagesensor

Board Pinout:

  • VCC - kraft, måste matcha Apduino-styrelsens kraft, i de flesta fall är det 5V;

  • GND - gemensam tråd;

  • AO - analog signal;

  • DO är en digital signal.

Det finns ett avstämningsmotstånd på komparatorkortet, det anger sensorns känslighet. Det kan fungera som en signal om regn eller läcka av något, och när den är i par med en sådan kran kan den fungera som skydd mot läckage i rörledningen i lägenheten:

Läckskyddskran

Videon visar hur det fungerar:


Fuktighetssensor

Vanligtvis används i automatiska vattenprojekt, för att bestämma markfuktighet, liksom den föregående består av elektroder och ett kort med en komparator.

Fuktighetssensor

Det kan fungera både i analoga och digitala lägen. Ett exempel på ett kopplingsschema för ett automatiskt bevattningssystem med en kran baserat på en motor:

Anslutningsdiagrammet för fuktighetssensorn till Arduino

Och ett exempel på programkod för behandling av en digital signal från en fuktighetssensor:

Exempelkod för behandling av en digital signal från en fuktighetssensor
Digital temperatur- och fuktighetssensor AM2302

slutsats

Vi undersökte populära sensorer, men det finns också många andra. Dessa är en mängd vibrationssensorer, gyroskop, accelerometrar, strålningssensorer och mer.

Syftet med artikeln var att samla på ett ställe en mängd olika element som kan vara användbara för en nybörjare elektronikingenjör för genomförandet av deras projekt. Om du är intresserad av en viss sensor - skriv i kommentarerna så kommer vi att överväga den mer detaljerat.

För din bekvämlighet har vi sammanställt ett bord med en uppskattad kostnad och en lista över populära sensorer för Arduino, i den ordning de ansågs i artikeln:Givare för Arduino

Priserna tas från onlinebutiker i Ryssland eller Ukraina. I Kina kostar de två eller fler gånger billigare.

Se även på elektrohomepro.com:

  • Mätning av temperatur och luftfuktighet på Arduino - ett urval av metoder
  • Ansluter analoga sensorer till Arduino, lässensorer
  • Vad är skillnaden mellan analoga och digitala sensorer
  • Hur linjesensorn är ordnad och fungerar
  • Schema för rörelsessensorer och principen för deras arbete, anslutningsscheman

  •