categorieën: Microcontroller-circuits
Aantal keer bekeken: 32016
Reacties op het artikel: 0

Meest populaire sensoren voor Arduino

 

Sensoren worden in een groot aantal circuits en projecten gebruikt. Geen automatisering kan zonder hen. We zijn hierin geïnteresseerd omdat er een project is opgezet om het ontwerp en de popularisering van elektronica te vereenvoudigen Arduino. Dit is een afgewerkt bord met een microcontroller en alles wat je nodig hebt om ermee te werken en te programmeren. In dit artikel zullen we sensoren voor Arduino overwegen, maar ze kunnen ook worden gebruikt met andere microcontrollers.

Meest populaire sensoren voor Arduino

Wat zijn de sensoren?

Sensoren zijn de ogen, oren en andere zintuigen microcontroller of ander bedieningsapparaat. Ze onderscheiden zich door de aard van het signaal en door het doel.

Door de aard van het signaal is verdeeld in:

  • analogon;

  • Digital.

En voor dit doel zijn de sensoren voor het meten van:

  • temperatuur;

  • druk;

  • vochtigheid;

  • zuurgraad;

  • verlichting;

  • Waterniveau of andere stoffen;

  • trillingen;

  • En andere gespecialiseerde componenten.

Als we het over Arduino hebben, verwerken we bij het ontvangen van informatie van sensoren een digitaal signaal of meten we de spanning van de analoge uitgang van de module. Zoals reeds vermeld, sensoren zijn digitaal en analoog. Sommige modules voor Arduino hebben zowel digitale als analoge output, wat ze verenigt.

Per apparaat zijn ze

  • resistief;

  • inductieve;

  • capacitieve;

  • piëzo-elektrische;

  • Fotocellen en andere soorten.



Licht of lichtsensor

De eenvoudigste manier om de helderheid van iets te bepalen - gebruik een fotoresistor, fotodiode of fototransistor. Je kunt een van de genoemde opties verbinden met Arduino of een speciaal bord kopen - lichtsensor.

Licht sensor

Wat zijn de voordelen van een turnkey-oplossing? Ten eerste is het niet voldoende om veranderingen in de verlichting van een enkele fotocel te detecteren, je hebt ook een normale of afstemweerstand nodig, misschien comparator, voor stapsgewijs ja / nee bediening. Ten tweede zal een in de fabriek gemaakte printplaat betrouwbaarder zijn dan een scharnierende montage of een pakketbord, of andere manieren waarop amateurs gebruiken.

Licht sensor

Op AliExpress of in andere online winkels is het op aanvraag te vinden "PHOTOSENSITIVE-SENSOR" of gewoon "light sensor".

Deze module heeft drie uitgangen:

  • voeding;

  • het land;

  • Digitale uitgang van de comparator.

Of een vier-pins versie:

  • voeding;

  • het land;

  • Digitale uitgang van de comparator;

  • Analog.

Dus op het bord is er een afstemweerstand voor het aanpassen van het moment dat de comparator wordt geactiveerd, deze kan een digitaal signaal geven.

Voorbeelden van gebruik:

  • Lichtsensor voor fotorelais;

  • Alarm (gekoppeld met de zender);

  • Teller van objecten die de lichtstraal kruisen, enz.

Het is moeilijk om exacte waarden te bereiken, omdat een juiste lichtmeter nodig is voor de juiste aanpassing door verlichting. Fotoresistors zijn meer geschikt voor het bepalen van abstracte waarden zoals 'donker of licht'.

Naast een dergelijk bord dat te koop is, vind je het best interessant GY-302-module. Dit is een lichtsensor gebaseerd op het geïntegreerde circuit van de BH-1750. Het kenmerk is dat het een digitale module is, een capaciteit van 16 bits heeft, communiceert met microcontrollers via de i2c-bus. Met 16 bits kunt u de verlichting meten van 1 tot 65356 Lux (Lx).

Omgevingslichtsensor gebaseerd op geïntegreerde schakeling BH-1750

Hieronder is een diagram van de verbinding. U zult merken dat SDA en SCL aangesloten op de analoge pinnen van de microcontroller.

Aansluitschema lichtsensor

Dit komt omdat de I2C-bus op deze Arduino-pinnen is geïmplementeerd, wat te zien is aan de volgende afbeelding. Laat u daarom niet misleiden door dit feit; de sensor is digitaal.

GY-302 moduleschema

Het voordeel van digitale sensoren is dat u niet de waarden van elke instantie hoeft te controleren, tabellen hoeft samen te stellen om de gemeten waarden in reële schalen te vertalen, enzovoort.In de meeste gevallen is het voor digitale sensoren voldoende om eenvoudig een kant-en-klare bibliotheek aan te sluiten en de waarden te lezen die in reële eenheden zijn omgezet.

Voorbeeldschets voor GY-302 (BH-1750):

Schetsvoorbeeld voor GY-302

Hoe werkt een schets?

In het begin vertellen we het programma dat we de Wire.h-bibliotheek, die verantwoordelijk is voor de communicatie via de I2C-lijn, en de BH1750 moeten verbinden. De rest van de acties worden goed beschreven in de commentaren, en als gevolg daarvan lezen we elke 100ms de waarde van de sensor in Lux.

Kenmerken van GY-302 BH1750:

  • I2C microcontroller communicatie

  • Spectrale respons vergelijkbaar met ooggevoeligheid

  • Fouten door infraroodstraling worden geminimaliseerd

  • Meetbereik 0-65535 Lux

  • Voedingsspanning: 3-5 V

  • Laag stroomverbruik en slaapfunctie

  • 50/60 Hz filtering van lichtruis

  • Het maximale aantal sensoren op 1 I2C-bus is 2 stuks.

  • Geen kalibratie vereist

  • Stroomverbruik - 120 μA

  • In slaapmodus - 0,01 μA

  • Gemeten golflengte - 560 nm

  • In hoge-resolutiemodus - 1 lux

  • In lage resolutiemodus - 4 lux

  • ADC - 16 bit

Tijd genomen voor metingen:

  • In hoge-resolutiemodus - 120 ms

  • In lage-resolutiemodus - 16 ms


Obstakelsensor

Ik koos deze sensor als de volgende om te overwegen, omdat een van de opties werkt op basis van een fotodiode of fototransistor, die in principe vergelijkbaar zijn met de fotoresistor die in de vorige sectie is besproken.

Obstakelsensor

De naam is "optische obstakelsensor." Het belangrijkste functionele element is de fotodiode en LED die in het IR-spectrum uitzenden en ontvangen (daarom niet zichtbaar voor het menselijk oog, evenals een drempelsamenstel, bijvoorbeeld gemonteerd op een comparator met een gevoeligheidsregelaar. Hiermee wordt de afstand waarop de sensor wordt geactiveerd, aangepast door de digitale manier.

Voorbeeld verbindingsschema:

Voorbeeld van verbinding

Een voorbeeld van een signaalverwerkingsprogramma van een sensor.

Een voorbeeld van een signaalverwerkingsprogramma van een sensor

Hier, als de output van de sensor "1" is, wat betekent "er is een obstakel", licht de LED op het Arduino-bord of verbonden met de 13e pin (hetzelfde) op. Meest gebruikt in robotica en alarmen.

Sensoren gebruiken

Afstandssensor

Het vorige exemplaar bestaat uit een ontvanger, - een fotodiode en een zender, - een LED. De ultrasone afstandssensor bestaat ook uit een ontvanger en een zender van ultrasone golven. Zijn naam is HC SR04.

Afstandssensor

Kenmerken HC SR04:

  • 5V voedingsspanning

  • De bedrijfsparameter van de kracht t oka - 15 mA

  • Passieve stroom <2 mA

  • Kijkhoek - 15 °

  • Aanraakresolutie - 0,3 cm

  • Meethoek - 30 °

  • Pulsduur - 10-6 s

  • Meetbereik: 2-400 cm.

De fout verschijnt vanwege:

  • temperatuur en vochtigheid - kan worden verlaagd door de temperatuur te meten met bijvoorbeeld DHT-11 of DHT-22 en coëfficiënten in te voeren om de metingen te corrigeren.

  • afstand tot het object;

  • de locatie van het object ten opzichte van de sensor (volgens het stralingsdiagram) kan worden gecompenseerd door HC SR04 op de servoaandrijving te installeren om van richting te veranderen en nauwkeurige aanpassingen te maken.

  • prestatiekwaliteit van de sensormodule-elementen.

Stralingspatroon:

Stralingspatroon

Het bord heeft vier uitgangen:

  • VCC - vermogen;

  • Trig - ingangssignaal;

  • Echo - uitgangssignaal;

  • GND is een gemeenschappelijke draad.

HC SR04 sensordraden

Hoe meetwaarden verwerken?

1. We sturen een puls met een duur van 10 microseconden naar de TRIG-ingang;

2. Binnen de module wordt de puls omgezet in een pakket van 8 pulsen die elkaar volgen met een frequentie van 40 kHz en door de zender worden gestuurd;

3. Impulsen die worden gereflecteerd door het obstakel komen bij de ontvanger aan en worden naar ECHO uitgevoerd;

4. De duur van de puls ontvangen van de ECHO-uitgang moet worden gedeeld door 58.2 om de afstand in centimeters te krijgen en door 148 als u moet converteren naar inches.

Voorbeeld code:

Voorbeeldcode

Meet de temperatuur

De eenvoudigste manier om de temperatuur te meten met een microcontroller is gebruik een thermokoppel of thermistor. Thermokoppels worden gebruikt om hoge temperaturen te meten, om binnen en buiten te meten - degene waar ik hieronder wat meer over zal praten, maar laten we voor nu eens kijken naar een thermokoppel.

Temperatuur sensor

Elk type thermokoppel heeft zijn eigen aanpak voor het werken met een microcontroller. Er is bijvoorbeeld een K-type thermokoppel, of zoals het ook wordt genoemd - chromel-alumel, met een bereik van gemeten temperaturen van -200 tot +1400 graden Celsius met een gevoeligheid van 41 mV / graden Celsius. En voor haar is er een speciale converter op basis van de max6675 IC, deze heeft een functie voor het compenseren van de temperatuur van de koude overgang enzovoort.

Module voor het meten van temperatuur

U kunt met deze module werken met de bibliotheek met dezelfde naam voor Arduino. In de onderstaande afbeelding ziet u een voorbeeld van programmacode voor deze case.

Voorbeeldcode

Vervolgens wordt het volgende weergegeven op de seriële poortmonitor.

Seriële poortmonitor

Maar er is ook een digitale temperatuursensor DS12B20, het kan klassiek worden genoemd, omdat het al vele jaren in amateurprojecten wordt gebruikt, en lang voordat Arduino op de markt kwam.

Digitale temperatuursensor DS12B20

Dit digitale geïntegreerde circuit en zijn interne apparaat worden weergegeven in de onderstaande afbeelding:

Interne microcircuit van het apparaat

Board aansluitschema:

Bord verbindingsdiagram

Belangrijkste kenmerken en informatie DS18B20:

  • De fout is minder dan 0,5 ° C (in het temperatuurbereik van -10 ° C tot + 85 ° C).

  • Geen kalibratie vereist

  • Meetbereik - van -55 С tot + 125С

  • VCC, voedingsspanning 3,3-5V.

  • resolutie tot 0,0625С, ingesteld door software;

  • Resolutie - 12 bits

  • Elke instantie krijgt een unieke seriële code toegewezen. Dit is nodig om gemakkelijk meerdere stukken in één project te gebruiken

  • Communicatie-interface - 1-draads

  • Geen omsnoering vereist

  • Het maximale aantal sensoren op één lijn is 127 stuks.

  • Modus met onechte stroom - in dit geval wordt de sensor rechtstreeks gevoed vanuit de communicatielijn. Tegelijkertijd is een temperatuurmeting hoger dan 100 ° C niet gegarandeerd

Hieronder zie je de conversietabel van de binaire code van DS18b20 naar temperatuur in graden Celsius.

Conversietabel voor de binaire code van DS18b20 naar temperatuur in graden Celsius

Voorbeeldprogramma voor het lezen van temperatuurwaarden.

Voorbeeldprogramma voor het lezen van temperatuurwaarden

Atmosferische druksensoren

Elektronische barometers worden geassembleerd op basis van atmosferische druksensoren. De volgende opties werden veel gebruikt:

  • BMP180;

  • BMP280;

  • BME280.

Atmosferische druksensoren

Als de twee vorige instanties op elkaar leken, dan BME280 sensor - Dit is een miniatuurweerstation. Er zijn 3 sensoren in ingebouwd:

  • temperatuur;

  • druk;

  • Vochtigheid.

Zijn technische kenmerken:

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

  • Metalen LGA-behuizing, uitgerust met 8 uitgangen;

  • Voedingsspanning 1.7 - 3.6V;

  • Beschikbaarheid van I2C- en SPI-interfaces;

  • Stroomverbruik in stand-by 0,1 µA.

Deze voorbeelden zijn MEMS-barometers. MEMS staat voor micro-elektromechanica. Dit is een mechanische microstructuur die capacitieve fenomenen en andere principes gebruikt voor zijn werk. Hieronder zie je een voorbeeld van een dergelijke sensor in de context.

Doorsnedevoorbeeld van een sensor

Voorbeeld verbindingsschema:

Voorbeeld van verbinding

En een voorbeeld van programmacode:

Voorbeeldcode

De logica van het programma is eenvoudig:

1. Roep de subroutine (functie) op van de sensor.

2. Verzoek om metingen van de temperatuursensor geïntegreerd in de barometer.

3. We wachten op tijd om de temperatuursensor te evalueren;

4. Lees het resultaat van temperatuurmetingen;

5. Verzoek drukwaarden;

6. We wachten op de tijd van de drukmeting;

7. Lees de drukwaarde;

8. Retourneer de drukwaarde van de functie.

Een interessant feit is dat er vier opties zijn voor het lezen van waarden, deze worden als argument opgegeven in de startPressure-functie, het tweede teken is van 0 tot 3, waarbij 0 een ruwe schatting is en 3 een exacte schatting is.


Bewegingssensor

De meest voorkomende bewegingssensor voor Arduino is HC SR501 IR-sensormodule. Een kenmerk van deze module is dat deze een aanpassing heeft van de responsafstand en de vertragingstijd van het uitgangssignaal na gebruik.

Bewegingssensor

Module kenmerken:

1. Voedingsspanning 4.5 - 20 V.

2. Ruststroom ≈ 50 μA;

3. Uitgangssignaalspanning (logisch niveau): 3,3 V;

4. Bedrijfstemperatuurbereik - van -15 ° C tot 70 ° C;

5. Afmetingen: 32 * 24 mm;

6. Gezichtsveld - 110 °;

7. Maximale werkafstand - van 3 tot 7 m (instelbaar); Boven 30 ° C kan deze afstand afnemen.

Schakelschema:

Aansluitschema bewegingssensor

Hoe met hem te werken, hebben we in een eerder gepubliceerd artikel overwogen: Schema's van bewegingssensoren, het principe van hun werk en bedradingsschema's


Waterniveausensor

Ontworpen om het vloeistofniveau aan te geven.

Waterniveausensor

Kenmerken:

1. Voedingsspanning 3-5V

2. Verbruiksstroom> 20 mA

3. Analoog

4. Afmetingen van de meetzone 40x16 mm

5. Toelaatbare vochtigheid 10% - 90%

Voorbeeld code:

Voorbeeldcode

De outputwaarden zijn van 0 (in de droge toestand) tot 685 (kan in feite variëren, dit hangt af van de geleidbaarheid van het water). Vergeet de elektrolyse niet, want bij het meten van het niveau van zout of hard water zal deze corroderen.


Lekkagesensor

De module bestaat uit twee delen - de sensor zelf en de comparator kunnen op de LM393, LM293 of LM193 worden gebouwd.

Lekkagesensor

Dankzij de comparator wordt het analoge signaal omgezet in digitaal.

Schakelschema:

Bedradingsschema lekkagesensor

Bord Pinout:

  • VCC - power, moet overeenkomen met de power van het Apduino-bord, in de meeste gevallen is dit 5V;

  • GND - gemeenschappelijke draad;

  • AO - analoog signaal;

  • DO is een digitaal signaal.

Er is een afstemweerstand op het vergelijkingsbord, deze stelt de gevoeligheid van de sensor in. Het kan fungeren als een signaal van regen of een lek of iets, en in combinatie met een dergelijke kraan, kan het werken als bescherming tegen pijpleidinglekken in het appartement:

Lekkagekraan

De video laat zien hoe het werkt:


Vochtigheidssensor

Algemeen gebruikt in automatische bewateringsprojecten, om bodemvocht te bepalen, evenals de vorige bestaat uit elektroden en een bord met een comparator.

Vochtigheidssensor

Het kan zowel in analoge als digitale modus werken. Een voorbeeld van een verbindingsdiagram voor een automatisch irrigatiesysteem met een kraan op basis van een motor:

Het verbindingsdiagram van de vochtigheidssensor naar Arduino

En een voorbeeld van programmacode voor het verwerken van een digitaal signaal van een vochtigheidssensor:

Voorbeeldcode voor het verwerken van een digitaal signaal van een vochtigheidssensor
Digitale temperatuur- en vochtigheidssensor AM2302

conclusie

We hebben populaire sensoren onderzocht, maar er zijn er ook veel meer. Dit zijn verschillende trillingssensoren, gyroscopen, versnellingsmeters, stralingssensoren en meer.

Het doel van het artikel was om op één plaats een verscheidenheid aan elementen te verzamelen die nuttig kunnen zijn voor een beginnende elektronica-ingenieur voor de uitvoering van hun projecten. Als u geïnteresseerd bent in een bepaalde sensor - schrijf dan in de commentaren en we zullen het in meer detail bekijken.

Voor uw gemak hebben we voor u een tabel samengesteld met geschatte kosten en een lijst met populaire sensoren voor Arduino, in de volgorde waarin ze in het artikel werden beschouwd:Sensoren voor Arduino

Prijzen zijn afkomstig van online winkels in Rusland of Oekraïne. In China zijn ze 2 of meer keer goedkoper.

Zie ook op bgv.electricianexp.com:

  • Temperatuur en vochtigheid meten op Arduino - een selectie van methoden
  • Analoge sensoren verbinden met Arduino, sensoren lezen
  • Wat is het verschil tussen analoge en digitale sensoren
  • Hoe de lijnsensor is gerangschikt en werkt
  • Schema's van bewegingssensoren en het principe van hun werk, bedradingsschema's

  •