Site icon elektromanyetix

Arduino ADXL3xx ivmeölçer Örneği

Arduino ADXL3xx ivmeölçer Örneği

ADXL3xx ivmeölçer. Bu ders, ADXL3xx serisinden (örn. ADXL320 , ADXL321 , ADXL322 , ADXL330 ) ivme ölçerden nasıl okumanızı ve Arduino Yazılımının (IDE) seri monitöründeki değerleri veya seri port üzerinden veri alan başka bir uygulamayı nasıl alacağınızı gösterir.

Bu eğitim, Sparkfun’un koparma tahtaları kullanılarak oluşturuldu . Adafruit ivmeölçer koparma kartı da çalışır, ancak farklı şekilde kablolanması gerekir.

ADXL3xx , her bir eksendeki ivmeyi 0 ve 5 volt arasında bir analog voltaj olarak verir. Bunu okumak için tek ihtiyacınız olan analogRead() işlevidir.

ADXL3xx ivmeölçer

Donanım

  • Arduino veya Genuino
  • ADXL3xx İvmeölçer

Devre

Ivmeölçer çok az akım kullanır, bu yüzden kartınıza takılabilir ve doğrudan dijital çıkış pinlerinden gelen çıkıştan çalıştırılabilir. Bunu yapmak için dijital giriş / çıkış pinleri olarak üç adet analog giriş pini, ivmeölçer için güç ve topraklama ve otomatik test pimi için kullanacaksınız. Akselerometrenin analog çıkışlarını okumak için diğer üç analog girişi kullanacaksınız.

Yukarıda gösterilen yapılandırma için pin bağlantıları şunlardır:

Koparma kurulu pin Kendi kendini test Z ekseni Y-Ekseni X-Ekseni Zemin VDD
Arduino Analog Giriş Pimi 0 1 2 3 4 5


Ya da sadece ivmeölçer kullanıyorsanız:

ADXL3xx Pimi Kendi kendini test zout yout xout Zemin VDD
Arduino Pimi Hiçbiri (bağlı değil) Analog Giriş 1 Analog Giriş 2 Analog Giriş 3 GND 5V


Lütfen bazı ivmeölçerlerin 3,3V güç kaynağı kullandığını ve 5V tarafından hasar görebileceğini unutmayın.
Doğru voltajın hangisi olduğunu öğrenmek için tedarikçinin belgelerini kontrol edin.

Kod

İvmeölçer bağlantıları, güç kaynağı olarak iki Analog pin 4 ve 5 kullanılarak, taslağın başlangıcında sabitler olarak tanımlanır. Bu, bunları, 18 ve 19 Sayısal I / O pinleri olarak kullanarak gerçekleştirilir. Gerekirse, A0, D14, A1, D15 ve benzeridir.

const int groundpin = 18;
const int powerpin = 19;

Pimi 19 (A5) YÜKSEK ve pim 18 (A4) olarak DÜŞÜK olarak ayarlamak, ivmeölçer tarafından çalışması gereken 5 mili hız ile 5V sağlar.

pinMode(groundpin, OUTPUT);
pinMode(powerpin, OUTPUT);
digitalWrite(groundpin, LOW);
digitalWrite(powerpin, HIGH);

Bu çözüm, Sparkfun’un koparma panolarının Arduino veya Genuino kartınıza doğrudan bağlanmasını sağlar. Farklı panolar standart 5V – veya 3.3V – ve GND pinlerine bağlanabilir. Bu durumda, kod, yukarıdaki satırların void setup() bölümünde yorumlanmasında değişiklik yapılabilir.

/*
ADXL3xx

ADXL3xx ivmeölçer Analog Cihazları okur ve haberleşir.
bilgisayara hızlanma. Kullanılan pimler kolayca olacak şekilde tasarlanmıştır
SparkFun'un koparma panolarıyla uyumlu, aşağıdakilerden temin edilebilir:
http://www.sparkfun.com/commerce/categories.php?c=80

Devre:
- analog 0: ivmeölçer kendi kendini test
- analog 1: z ekseni
- analog 2: y ekseni
- analog 3: x ekseni
- analog 4: toprak
- analog 5: vcc

Oluşturuldu 2 Tem 2008
David A. Mellis tarafından
değiştirildi 30 Ağu 2011
Tom Igoe tarafından

Bu örnek kod kamu malıdır.
http://www.arduino.cc/en/Tutorial/ADXL3xx
*/

// bu sabitler pimleri tanımlar. Değişmeyecekler:
const int groundpin = 18;             // analog giriş pimi 4 - topraklama(gnd)
const int powerpin = 19;              // analog giriş pimi 5 - voltaj
const int xpin = A3;                  // İvmeölçerin x ekseni
const int ypin = A2;                  // y ekseni
const int zpin = A1;                  // z ekseni (sadece 3 eksenli modellerde)

void setup() {
  // seri iletişimleri başlatır:
  Serial.begin(9600);

  // Analog girişleri normal dijital pinler olarak kullanarak zemini ve gücü sağlayın.
  // Bu, koparma kartını doğrudan
  // Arduino. Arduino'da normal 5V ve GND pinlerini kullanırsanız,
  // bu satırları kaldırabilirsiniz.
  pinMode(groundpin, OUTPUT);
  pinMode(powerpin, OUTPUT);
  digitalWrite(groundpin, LOW);
  digitalWrite(powerpin, HIGH);
}

void loop() {
  // sensör değerlerini yazdırın:
  Serial.print(analogRead(xpin));
  // değerler arasında bir sekme basar:
  Serial.print("\t");
  Serial.print(analogRead(ypin));
  // değerler arasında bir sekme basar:
  Serial.print("\t");
  Serial.print(analogRead(zpin));
  Serial.println();
  // sonraki okumadan önce gecikme:
  delay(100);
}

Kaynak:arduino.cc

Exit mobile version