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