Ismerje meg, hogyan olvashat ki adatokat a Memsic 2125 kéttengelyes gyorsulásmérőből.
Utolsó felülvizsgálat: 2022.02.04 16:50
A Memsic 2125 (adatlap) egy kéttengelyes gyorsulásmérő, amely akár plusz-mínusz 2g-ig képes gyorsulást mérni. Egyszerű digitális interfésszel rendelkezik: két érintkező (tengelyenként egy) olyan impulzusokat bocsát ki, amelyek időtartama megfelel az adott tengely gyorsulásának. Az impulzus hosszának mikroszekundumban történő megmérésével a pulseIn() függvény segítségével meghatározható a gyorsulás mértéke, és felhasználható az adatok céljaira.
Hardver szükséglet
Arduino kártya
Memsic 2125 gyorsulásmérő
összekötő vezetékek
dugdosós próbapanel (breadboard)
Az áramkör
Használja a Memsic kis háromszögét, hogy megfelelően irányítsa az érzékelőt a próbapanelen. Csatlakoztassa a Memsic 2125 5 V-os és GND kivezetéseit a kártya táp- és földportjaihoz. Csatlakoztassa a kártya 2. digitális kivezetését a gyorsulásmérő X kimeneti kivezetéséhez, és a 3. digitális kivezetést az Y kimeneti kivezetéshez.
Az Arduinonak csatlakoztatva kell lennie a számítógépéhez, hogy soros adatokat továbbítson.

Vázlat

A kód
Nyissa meg az Arduino Software (IDE) soros monitorát, hogy megtekinthesse a gyorsulásmérő pozíciójából kiolvasott értékeket.
/*
Memsic2125
A Memsic 2125 kéttengelyes gyorsulásmérő olvasása. A 2125 által
kibocsátott impulzusokat milli-g-re (a Föld gravitációjának 1/1000-e)
alakítja át, és kinyomtatja őket a számítógép soros kapcsolatán keresztül.
Az áramkör:
- A gyorsulásmérő X kimenete a 2. digitális kivezetéshez
- A gyorsulásmérő Y kimenete a 3. digitális kivezetéshez
- A gyorsulásmérő +V kivezetése az +5V-hoz
- A gyorsulásmérő GND kivezetésea fölghöz
created 6 Nov 2008
by David A. Mellis
modified 30 Aug 2011
by Tom Igoe
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/sensors/Memsic2125
*/
// ezek az állandók nem változnak:
const int xPin = 2; // A gyorsulásmérő X kimenete
const int yPin = 3; // A gyorsulásmérő Y kimenete
void setup() {
// soros kommunikáció inicializálása:
Serial.begin(9600);
// inicializálja a gyorsulásmérőhöz csatlakoztatott kivezetéseket bemenetként:
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
}
void loop() {
// változók az impulzusszélességek olvasásához:
int pulseX, pulseY;
// változók, amelyek tartalmazzák az eredményül kapott gyorsulásokat
int accelerationX, accelerationY;
// impulzus olvasása az x és y tengelyről:
pulseX = pulseIn(xPin, HIGH);
pulseY = pulseIn(yPin, HIGH);
// konvertálja az impulzus szélességét gyorsulássá
// accelerationX és accelerationY milli-g-ben:
// A Föld gravitációja 1000 milli-g, vagy 1 g.
accelerationX = ((pulseX / 10) - 500) * 8;
accelerationY = ((pulseY / 10) - 500) * 8;
// nyomtassa ki a gyorsulást
Serial.print(accelerationX);
// tabulátor karaktert nyomtat:
Serial.print("\t");
Serial.print(accelerationY);
Serial.println();
delay(100);
}
Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.