Memsic2125

Memsic 2125 ( veri sayfası ), artı veya eksi 2g'ye kadar hızlanmayı ölçebilen iki eksenli bir ivmeölçerdir . Basit bir dijital arayüze sahiptir: iki pim (her eksen için bir tane) süresi o eksenin ivmesine karşılık gelen darbeler yayar. Bu darbenin uzunluğunu ölçerek, mikrosaniye cinsinden , pulseIn () işlevini kullanarak, hızlanma oranını belirlemek ve bu verileri amaçlarınız için kullanmak mümkündür.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • Memsic 2125 İvmeölçer
  • bağlantı telleri
  • breadboard

Devre


Sensörü breadboard'unuza doğru şekilde yönlendirmek için Memsic üzerindeki küçük üçgeni kullanın. Memsic 2125'in 5V ve GND pinlerini karttaki güç ve toprak bağlantı noktalarına bağlayın. Kartın dijital pimini 2 ivmeölçerin X çıkış pimine ve dijital pimi 3 Y çıkış pimine bağlayın.

Arduino veya Genuino'nuzun seri veri iletebilmesi için bilgisayarınıza bağlı olması gerekir.

büyütmek için resme tıklayın

Şematik

büyütmek için resme tıklayın

Kod

İvmeölçer konumundan okunan değerleri görmek için Arduino Yazılımının Seri İzleyicisini (IDE) açın.

/*
  Memsic2125

  Read the Memsic 2125 two-axis accelerometer. Converts the pulses output by the
  2125 into milli-g's (1/1000 of Earth's gravity) and prints them over the
  serial connection to the computer.

  The circuit:
    - X output of accelerometer to digital pin 2
    - Y output of accelerometer to digital pin 3
    - +V of accelerometer to +5V
    - GND of accelerometer to ground

  created 6 Nov 2008
  by David A. Mellis
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  http:egitim.aspx?e=Memsic2125
*/


// these constants won't change:
const int xPin = 2;     // X output of the accelerometer
const int yPin = 3;     // Y output of the accelerometer

void setup() {
  // initialize serial communications:
  Serial.begin(9600);
  // initialize the pins connected to the accelerometer as inputs:
  pinMode(xPin, INPUT);
  pinMode(yPin, INPUT);
}

void loop() {
  // variables to read the pulse widths:
  int pulseX, pulseY;
  // variables to contain the resulting accelerations
  int accelerationX, accelerationY;

  // read pulse from x- and y-axes:
  pulseX = pulseIn(xPin, HIGH);
  pulseY = pulseIn(yPin, HIGH);

  // convert the pulse width into acceleration
  // accelerationX and accelerationY are in milli-g's:
  // Earth's gravity is 1000 milli-g's, or 1 g.
  accelerationX = ((pulseX / 10) - 500) * 8;
  accelerationY = ((pulseY / 10) - 500) * 8;

  // print the acceleration
  Serial.print(accelerationX);
  // print a tab character:
  Serial.print("\t");
  Serial.print(accelerationY);
  Serial.println();

  delay(100);
}
[Kodu Al]

See Also