Memsic 2125 gyorsulásmérő

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.