Hogyan Lehet Gyorsulásmérőt Csatlakoztatni Az Arduino-hoz

Tartalomjegyzék:

Hogyan Lehet Gyorsulásmérőt Csatlakoztatni Az Arduino-hoz
Hogyan Lehet Gyorsulásmérőt Csatlakoztatni Az Arduino-hoz

Videó: Hogyan Lehet Gyorsulásmérőt Csatlakoztatni Az Arduino-hoz

Videó: Hogyan Lehet Gyorsulásmérőt Csatlakoztatni Az Arduino-hoz
Videó: Устанавливаем драйвер для ARDUINO с CH340/CH341 2024, Lehet
Anonim

Ezúttal az ADXL335 analóg háromtengelyű gyorsulásmérő és az Arduino összekapcsolásával foglalkozunk.

Analóg gyorsulásmérő ADXL335
Analóg gyorsulásmérő ADXL335

Szükséges

  • - Arduino;
  • - ADXL335 gyorsulásmérő;
  • - személyi számítógép Arduino IDE fejlesztői környezettel.

Utasítás

1. lépés

A gyorsulásmérőket a gyorsulási vektor meghatározására használják. Az ADXL335 gyorsulásmérőnek három tengelye van, és ennek köszönhetően meg tudja határozni a gyorsulási vektort háromdimenziós térben. Annak a ténynek köszönhetően, hogy a gravitációs erő is vektor, a gyorsulásmérő meghatározhatja saját orientációját a háromdimenziós térben a Föld közepéhez képest.

Az ábrán az ADXL335 gyorsulásmérő útlevelének képei láthatók (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf). Itt láthatók a gyorsulásmérő érzékenységének koordinátatengelyei az eszköz testének geometriai elhelyezéséhez viszonyítva, valamint egy táblázat a 3 gyorsulásmérő csatornájának feszültségértékeiről, az űrben való elhelyezkedésétől függően. A táblázat adatai egy nyugalmi szenzorra vonatkoznak.

Vizsgáljuk meg közelebbről, mit mutat nekünk a gyorsulásmérő. Hagyja, hogy az érzékelő vízszintesen feküdjön, például az asztalon. Ekkor a gyorsulási vektor vetülete 1 g lesz a Z tengely mentén, vagy Zout = 1g. A másik két tengelynek nullái lesznek: Xout = 0 és Yout = 0. Amikor az érzékelőt "a hátára" fordítjuk, akkor a gravitációs vektorral ellentétes irányba, azaz. Zout = -1g. Hasonlóképpen, a méréseket mindhárom tengelyen elvégzik. Nyilvánvaló, hogy a gyorsulásmérő tetszés szerint elhelyezhető az űrben, ezért mindhárom csatornáról nullától eltérő leolvasást veszünk.

Ha a szondát erősen megrázza a függőleges Z tengely, a Zout értéke nagyobb lesz, mint "1g". A maximálisan mérhető gyorsulás mindkét tengelyben bármely irányban "3g" (azaz "plusz" és "mínusz" egyaránt).

Gyorsulásmérő érzékenységi tengelyei és a kimeneti értékek táblázata
Gyorsulásmérő érzékenységi tengelyei és a kimeneti értékek táblázata

2. lépés

Azt hiszem, kitaláltuk a gyorsulásmérő működésének elvét. Most nézzük meg a csatlakozási rajzot.

Az ADXL335 analóg gyorsulásmérő chip meglehetősen kicsi, és egy BGA csomagban található, és otthon nehéz táblára szerelni. Ezért egy kész GY-61 modult fogok használni, ADXL335 gyorsulásmérővel. Az ilyen modulok a kínai online áruházakban csaknem egy fillérbe kerülnek.

A gyorsulásmérő táplálásához +3, 3 V feszültséget kell táplálni a modul VCC tűjéhez. Az érzékelő mérőcsatornái az Arduino analóg csapjaihoz vannak csatlakoztatva, például "A0", "A1" és " A2 ". Ez az egész áramkör:)

Az ADXL335 gyorsulásmérő kapcsolási rajza Arduno felé
Az ADXL335 gyorsulásmérő kapcsolási rajza Arduno felé

3. lépés

Töltsük be ezt a vázlatot az Arduino memóriájába. Három csatornán leolvassuk az analóg bemenetek olvasmányait, átalakítjuk feszültségre és kimenjük a soros portra.

Az Arduino 10 bites ADC-vel rendelkezik, és a megengedett legnagyobb tűfeszültség 5 volt. A mért feszültségeket olyan bitek kódolják, amelyek csak 2 értéket vehetnek fel - 0 vagy 1. Ez azt jelenti, hogy a teljes mérési tartomány el lesz osztva (1 + 1) -nel a 10. teljesítményig, azaz 1024 egyenlő szakaszon.

Ahhoz, hogy a leolvasott értékeket volttá konvertálja, el kell osztania az analóg bemeneten mért értékeket 1024-vel (szegmensek), majd megszorozni 5-vel (volt).

Nézzük meg, mi is származik a gyorsulásmérőből, példaként a Z tengelyt használva (az utolsó oszlop). Amikor az érzékelő vízszintesen van elhelyezve és felfelé néz, a számok jönnek (2,03 +/- 0,01). Tehát ennek meg kell felelnie a "+ 1g" gyorsulásnak a Z tengely mentén és 0 fokos szögnek. Fordítsa meg az érzékelőt. Megérkeznek a számok (1, 69 +/- 0, 01), amelyeknek "-1g" -nek és 180 fokos szögnek kell megfelelniük.

Gyorsulásmérő leolvasási vázlata
Gyorsulásmérő leolvasási vázlata

4. lépés

Vegyük az értékeket a gyorsulásmérőből 90 és 270 fokos szögben, és írjuk be őket a táblázatba. A táblázat mutatja a gyorsulásmérő forgásszögeit ("A" oszlop) és a megfelelő Zout értékeket voltban ("B" oszlop).

Az érthetőség kedvéért a Zout kimeneten a feszültség diagramját mutatjuk be a forgásszöggel szemben. A kék mező a nyugalmi tartomány (1g gyorsulásnál). A grafikon rózsaszínű mezője margó, így + 3g-ig és -3g-ig mérhetjük a gyorsulást.

90 fokos forgatásnál a Z tengely gyorsulása nulla. Azok. 1,67 volt érték egy feltételes nulla Zo a Z tengelyhez. Ezután megtalálhatja a következő gyorsulást:

g = Zout - Zo / érzékenység_z, itt a Zout a mért érték millivoltban, Zo a nulla gyorsulás értéke millivoltban, az érzékenység_z az érzékelő érzékenysége a Z tengely mentén. kalibrálja a gyorsulásmérőt és számítsa ki az érzékenységi értéket érzékelő a képlet segítségével:

érzékenység_z = [Z (0 fok) - Z (90 fok)] * 1000. Ebben az esetben a gyorsulásmérő érzékenysége a Z tengely mentén = (2, 03 - 1, 68) * 1000 = 350 mV. Hasonlóképpen ki kell számolni az érzékenységet az X és Y tengelyekre.

A táblázat "C" oszlopa az öt szögre számított gyorsulást mutatja 350 érzékenység mellett. Mint látható, gyakorlatilag egybeesnek az 1. ábrán bemutatottakkal.

A gyorsulásmérő forgásszögeinek és a leolvasott értékeknek való megfelelés
A gyorsulásmérő forgásszögeinek és a leolvasott értékeknek való megfelelés

5. lépés

Az alapvető geometriai tanfolyamra emlékezve megkapjuk a képletet a gyorsulásmérő forgásszögeinek kiszámításához:

szög_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

Az értékek radiánban vannak megadva. Ahhoz, hogy fokra konvertáljuk, osszuk el Pi-vel és szorozzuk meg 180-mal.

Ennek eredményeként az ábra egy teljes vázlatot mutat, amely kiszámítja a gyorsulásmérő gyorsulási és forgási szögeit az összes tengely mentén. A megjegyzések magyarázatot adnak a programkódra.

Amikor a "Serial.print ()" portra lép, a "\ t" karakter egy tabulátor karaktert jelöl, így az oszlopok párosak, az értékek pedig egymás alatt helyezkednek el. A "+" a húrok összefűzését (összefűzését) jelenti. Ezenkívül a "String ()" operátor kifejezetten megmondja a fordítónak, hogy a numerikus értéket stringekké kell konvertálni. A kör () operátor a sarkot 1 fokos pontossággal kerekíti.

Vázlat, amely kiszámítja a gyorsulásmérő gyorsulását és szögeit
Vázlat, amely kiszámítja a gyorsulásmérő gyorsulását és szögeit

6. lépés

Tehát megtanultuk, hogyan kell adatokat venni és feldolgozni az ADXL335 analóg gyorsulásmérőből az Arduino segítségével. Most felhasználhatjuk a gyorsulásmérőt a terveinkhez.

Ajánlott: