kategória: Mikrovezérlő áramkörök
Megtekintések száma: 18998
Megjegyzések a cikkhez: 0

Analóg érzékelők csatlakoztatása Arduino-hoz, olvasási érzékelők

 

Az érzékelők mérik a mennyiségeket, a környezeti feltételeket és az állapot- és helyzetváltozásokra adott reakciókat. A kimenetükön lehetnek digitális jelek, amelyek egyekből és nullákból állnak, valamint analóg jelek, amelyek egy bizonyos intervallumon belül végtelen számú feszültségből állnak.


Az érzékelőkről

Ennek megfelelően az érzékelőket két csoportra osztják:

1. Digitális.

2. Analóg.

A digitális értékek beolvasásához a mikrokontroller digitális és analóg bemenetei egyaránt felhasználhatók Avr az Arduino táblán. Az analóg érzékelőket analóg-digitális átalakítón (ADC) keresztül kell csatlakoztatni. Az ATMEGA328, a legtöbb ARDUINO táblába telepítve van (erről bővebben van egy cikk az oldalon), az áramkörében beépített ADC-t tartalmaz. 6 analóg bemenet közül választhat.

Ha ez önnek nem elegendő, akkor további külső ADC-vel is csatlakozhat a digitális bemenetekhez, de ez bonyolítja a kódot és növeli annak hangerejét, a feldolgozási algoritmusok és az ADC vezérlés hozzáadásának köszönhetően. Az analóg-digitális konverterek témája elég széles, hogy külön cikket készítsen, vagy cikket készítsen róluk. Könnyebb a nagyszámú tábla vagy multiplexer használata. Nézzük meg, hogyan lehet az analóg érzékelőket az Arduino-hoz csatlakoztatni.

Analóg érzékelők csatlakoztatása Arduino-hoz, az érzékelők leolvasása

Az analóg érzékelők általános felépítése és csatlakoztatása

Az érzékelő akár hagyományos potenciométer is lehet. Valójában ez egy ellenálló helyzetérzékelő, ezen az elven ellenőrzik a folyadékok szintjét, a dőlésszöget, valami kinyílását. Kétféleképpen csatlakoztatható az arduino-hoz.

Az analóg érzékelők általános felépítése és csatlakoztatása

A fenti áramkör lehetővé teszi 0 és 1023 közötti értékek leolvasását, mivel a potenciométeren minden feszültség esik. A feszültség-elosztó elve itt működik, a motor bármely helyzetében a feszültséget lineárisan elosztják az ellenállásréteg felületén vagy logaritmikus skálán (a potenciométertől függően), a feszültség azon része, amely a csúszka kimenete (csúszó érintkező) és a talaj (gnd) között marad a bemenetre. A kenyérpulton ez a kapcsolat így néz ki:

Analóg érzékelők bekötési rajza

A második opciót a klasszikus ellenállás-osztó sémája szerint csatlakoztatjuk, itt a potenciométer maximális ellenállásának feszültsége a felső ellenállás ellenállásától függ (R2. Ábra).

Klasszikus ellenállás-elválasztó

Általában véve a rezisztív elválasztó nemcsak a mikrovezérlőkkel végzett munka, hanem az elektronika területén is nagyon fontos. Az alábbiakban az általános sémát, valamint az alkar feszültségértékének kiszámításához alkalmazott számított arányokat láthatja.

Az alkaron lévő feszültségérték meghatározásának vázlata és tervezési kapcsolatai

Ez a kapcsolat nemcsak a potenciométerre, hanem az összes analóg érzékelőre jellemző, mivel ezek többsége az ellenállás (vezetőképesség) változásának elvén működik, külső források - hőmérséklet, fény, különféle sugárzás stb. - hatására.

Az alábbiakban látható a legegyszerűbb csatlakozási ábra termisztorelvileg hőmérő készülhet annak alapján. A leolvasott adatok pontossága azonban attól függ, hogy mekkora a hőmérsékleti ellenállás átalakítási táblázata, az energiaforrás stabilitása és az ellenállás változási együtthatói (beleértve a felkar ellenállását) ugyanazon hőmérséklet hatására. Ez minimalizálható az optimális ellenállás, teljesítmény és működési áram kiválasztásával.

A termisztor legegyszerűbb csatlakoztatási diagramja

Ugyanígy csatlakoztathatja a fotodiodekat, a fototranzisztorokat fényérzékelőként. A fotoelektronika olyan érzékelőkben talált alkalmazást, amelyek meghatározzák egy objektum távolságát és jelenlétét, és az egyiket később megvizsgáljuk.

photoresistor

Az ábra a fotorezisztor és az arduino kapcsolatát mutatja.

A fotorezisztor és az arduino csatlakozási sémája

Szoftver rész

Mielőtt konkrét érzékelők csatlakoztatásáról beszélek, úgy döntöttem, hogy fontolóra veszem a szoftver feldolgozásukat. Az összes analóg jelet ugyanazon portokról olvassa le a analoRead () parancs segítségével.Érdemes megjegyezni, hogy az Arduino UNO és más 168 és 328 atmega modellek 10 bites ADC-vel rendelkeznek. Ez azt jelenti, hogy a mikrovezérlő a bemenő jelet 0 és 1023 közötti számként látja - összesen 1024 érték. Ha úgy gondolja, hogy a tápfeszültség 5 volt, akkor a bemeneti érzékenység:

5/1024 = 0,0048 V vagy 4,8 mV

Vagyis ha a bemeneten 0 érték van, a feszültség 0, a bemeneten pedig 10 mértéke - 48 mV.

Bizonyos esetekben az értékek kívánt szintre konvertálásához (például a PWM kimenetre való továbbításhoz) az 1024-et el kell osztani egy számmal, és a megosztás eredményeként meg kell szerezni a szükséges maximumot. A térkép funkció (forrás, alacsony, magas, magas, magas, alacsony) egyértelműbben működik, ha:

  • alacsony - alacsonyabb szám a funkcionális átalakítás előtt;

  • vch - felső;

  • VCh - az alsó szám a függvény általi feldolgozás után (a kimeneten);

  • VHV - felső.

Gyakorlati alkalmazás egy funkció konvertálásához bemeneti értékre PWM-hez történő továbbításhoz (a maximális érték 255, az ADC-ből az adatok PWM kimenetre történő konvertálásához az 1024 el van osztva 4-del):

1. lehetőség - megosztás.

int x;

x = analogRead (edény) / 4;

// 0 és 1023 közötti számot kapunk

// ossza el 4-el, egész számot kapunk 0-tól 255-ig analogWrite-t (led, x);

A 2. lehetőség - a MAP funkció - további lehetőségeket nyit meg, de erről később még többet lehet.

üres hurok ()

{int val = analogRead (0);

val = térkép (val, 0, 1023, 0, 255);

analoWrite (led, val); }

Vagy még rövidebb:

analoWrite (led, térkép (val, 0, 1023, 0, 255))

Nem minden érzékelő rendelkezik 5 voltos kimenettel, azaz az 1024 számot nem mindig kényelmes megosztani, hogy ugyanazt a 256-at kapjuk a PWM-hez (vagy bármilyen máshoz). Ez lehet 2 és 2,5 volt, és egyéb értékek is, ha a maximális jel például 500.


Népszerű analóg érzékelők

Az arduino érzékelő és annak csatlakoztatása általános nézetét az alábbiakban mutatjuk be:

Hogyan lehet csatlakoztatni egy analóg érzékelőt

Általában három kimenet létezik, lehet egy negyedik is - digitális, de ezek jellemzők.

Az analóg érzékelő kimeneteinek megnevezése:

  • G - mínusz teljesítmény, közös busz, föld. Jelölhető GND-ként, „-”;

  • V - plusz teljesítmény. Megjelölhető: Vcc, Vtg, "+";

  • S - kimeneti jel, lehetséges jelölés - Out, SGN, Vout, sign.

A kezdők, akik megtanulják, hogyan kell leolvasni az érzékelők értékeit, mindenféle hőmérő projektjét választják. Az ilyen érzékelők digitális kialakításban vannak, például DS18B20, és analógok - ezek mindenféle mikroáramkör, például LM35, TMP35, TMP36 és mások. Íme egy példa az ilyen érzékelő modulos kialakítására a táblán.

Analóg érzékelő a TMP36-on

Az érzékelő pontossága 0,5 és 2 fok között van. A TMP36 chipre építve, mint sok analógjának, a kimeneti értéke 10 mV / ° C. 0 ° -on a kimeneti jel 0 V, majd 10 mV / 1 fok van hozzáadva. Vagyis 25,5 fokon a feszültség 0,255 V, eltérés lehetséges az IC kristály hibájában és önmelegítésében (0,1 ° C-ig).


A használt mikroáramkörtől függően a mérési tartomány és a kimeneti feszültség eltérhet, lásd a táblázatot.

Hőmérsékleti tartományok és az érzékelő kimeneti feszültségei

Minőségi hőmérő esetén azonban nem csak elolvashatja az értékeket, és megjelenítheti azokat az LCD kijelzőn, vagy a soros porton a PC-vel való kommunikációhoz. A teljes rendszer egészének kimeneti jelének stabilitása érdekében bizonyos korlátok között át kell számolnia az érzékelők értékeit - mind analóg, mind digitálisan. anélkül, hogy rontanák azok sebességét és pontosságát (mindenre korlátozott lehet). Ennek oka a zaj, az interferencia, az instabil kontaktus (a potenciométeren alapuló ellenálló érzékelők esetében lásd a víztartály vagy az üzemanyagszint érzékelő hibáit az autótartályban).

A legtöbb érzékelővel végzett munka kódjai meglehetősen terjedelmesek, tehát nem adom meg nekik mindet, könnyen megtalálhatók a hálózaton az „érzékelő + Arduino név” kéréssel.

A következő érzékelő, amelyet az arduino robotmérnökök gyakran használnak, a vonalérzékelő. Fotoelektronikai eszközökön alapul, fototranzisztorok típusa.

Vonal érzékelő

Segítségükkel a vonal mentén mozgó robot (amelyet automatizált gyártásban használnak alkatrészek szállítására) meghatározzák a fehér vagy fekete csík jelenlétét. Az ábra jobb oldalán két, a LED-ekhez hasonló eszköz látható. Az egyik a LED, láthatatlan spektrumban bocsát ki, a másik egy fototranzisztor.

A fény visszatükröződik a felületről, ha sötét - a fototranzisztor nem fogad visszaverődött áramot, de ha a fény fogad, és kinyílik. A mikrokontrollerbe beillesztett algoritmusok feldolgozzák a jelet, meghatározzák a mozgás helyességét és irányát, és helyesbítik azokat. Hasonlóan van elrendezve az optikai egér is, amelyet valószínűleg a kezedben tartasz, miközben ezeket a sorokat olvasod.

Kiegészítem egy szomszédos érzékelővel - a Sharp távolságérzékelőjét, a robotikában is használják, valamint az objektumok térbeli helyzetének megfigyelésére (a megfelelő TX hibával).

Éles távolságérzékelő

Ugyanezen az elven működik. A könyvtárak, a vázlatok és a hozzájuk kapcsolódó projektek példái nagy számban elérhetők az Arduino-nak szentelt webhelyeken.


következtetés

Az analóg érzékelők használata nagyon egyszerű, és a könnyen megtanulható Arduino programozási nyelv segítségével gyorsan megtanulják az egyszerű eszközöket. Ennek a megközelítésnek jelentős hátrányai vannak a digitális társaikhoz képest. Ennek oka a paraméterek széles variációja, ez problémákat okoz az érzékelő cseréje során. Lehet, hogy szerkesztenie kell a program forráskódját.

Igaz, hogy az egyes analóg eszközök referenciafeszültség-forrásokat és áram-stabilizátorokat tartalmaznak, ami pozitív hatással van a végtermék és az eszköz ismételhetőségére a tömeggyártásban. Minden probléma elkerülhető a digitális eszközök használatával.

A digitális áramkör önmagában csökkenti az áramkör hangolásának és beállításának szükségességét az összeszerelés után. Ez lehetőséget ad arra, hogy több azonos eszközt összeállítson ugyanabban a forráskódban, amelyek részletei azonos jeleket adnak, ellenállás érzékelőkkel ez ritka.

Lásd még a weboldalunkon:Külső eszközök csatlakoztatása az Arduino-hoz

Lásd még az i.electricianexp.com oldalon:

  • Mi a különbség az analóg és a digitális érzékelők között?
  • Hőmérséklet és páratartalom mérése az Arduino-n - számos módszer
  • Hogyan történik az analóg jel digitális konvertálása?
  • Arduino legnépszerűbb érzékelői
  • Hogyan működik a vonal érzékelő?

  •