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.

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.

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:

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

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

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.

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.

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

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:

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

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.

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.

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

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 electro-hu.tomathouse.com oldalon: