Mekatronik Mühendisliği Forum


3-Axis Accelerometer ( ADXL345-Accelerometer)
Değerlendir:
  • 1 Oy - 5 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5


Konu: 38
Mesaj: 66
Cinsiyet: Erkek
Kıdem: Apr 2017

Accelerometer
Accelerometerlar üzerlerine düşen statik(yerçekimi) veya dinamik (aniden hızlanma yada durma) ivmeyi ölçmektedirler. Sensörden aldığımız değer m/s2 veya yer çekimi (g-Force) türünden ifade edilebilir. Uygulamalarda genelde yerçekimi türünden ifade edilmektedir. Eğer uzayda veya herhangi bir çekim alanının kapsamında değilseniz sensör üzerine 1g lik bir yerçekimi kuvveti etki etmektedir.
Buda bilindiği gibi yaklaşık olarak 9.8m/s2 dir ve dünyadaki bulunduğunuz noktaya göre değişiklik göstermektedir.

Sensör sürekli olarak yer çekimi etkisi altında kaldığından eğim ölçer (örneğin yeni nesil akıllı cep telefonlarında kullanılmaktadır ve siz telefonu dikey veya yatay konuma getirdiğinizde telefonun ekranı hareketinize göre değişmektedir) veya hareket algılayıcı olarak kullanılmaktadır.

Projemizde ADXL345-Accelerometer kullanıcaz
+Devre icin bir board
+Arduino nano uno mega fark etmez hepsiyle yapabiliriz bu projemizi
+Güc kaynagı 5V usb den kodlama esnasında sürebiliriz fakat birden fazla servo motor'a yetecek güç olmadıgı icin titreme yapabilir.
+2 adet servo motor.
+Pantilt(Kamera aparatı)

Burada verdigim linkler hem kalibrasyon hemde entegrenin datasheeti vs. bütün herşeyi ile icinde mevcuttur.
Cok iyi kalibre etmek icin bu adımları atlamayınız.

Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
[Resim: gWP4DN.jpg]

[Resim: vpaQDm.jpg]

[Resim: okdYmQ.jpg]


Bağlantı şeması şekildeki gibidir.
VIN --> 5V
GND --> GND breadboard
SDA --> Arduino Analog
SCL --> Arduino Analog A5


Servo motor 1

Kahverengi --> GND breadboard
kırmızı --> 5V
Sarı yada mavi --> Pin 9

Servo motor 2

Kahverengi --> Gnd breadboard
kırmızı --> 5V breadboard
Sarı yada mavi --> Pin 10
Buda ADXL345_U.h kütüphanesi bunu kütüphaneye eklemeniz gerekmekte.
Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.

Kod:
Kod:
#include <Servo.h>
#include <Adafruit_ADXL345_U.h>

//   servo  x ve y servoları Oluştur
Servo xServo;
Servo yServo;

// Seviye platformu  başlangıc icin
int xOffset = -7;
int yOffset = -1;

// Used to decrease sensitivity
int sensitivity = 50;

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);


void setup() {
      Serial.begin(9600);
  
// Initialize ediliyor
      if(!accel.begin())
      {
// Sensor bulunmadı
            Serial.println("Sensör bulunmadı");
      while(1);

      }

// Connect servos to pins
      xServo.attach(9);
      yServo.attach(10);

// Sensör degerleri yükleniyor
      accel.setRange(ADXL345_RANGE_16_G);
      accel.setDataRate(ADXL345_DATARATE_25_HZ);

}

void loop() {

      sensors_event_t event;
      accel.getEvent(&event);

// x ve y degerleri servolara veriliyor
      int x = event.acceleration.x;
      int y = event.acceleration.y;

// Servo harita degeri (-10 - 10) servo pozisyon degeri (30 - 150)
      int x1 = map(x, -10, 10, 130, 50);
      int y1 = map(y, -10, 10, 50, 130);

// Haritada okuma yapılıyor
      Serial.print("X: "); Serial.print(x);
      Serial.print("\tY: "); Serial.print(y);
      Serial.print("\tX1: "); Serial.print(x1);
      Serial.print("\tY1: "); Serial.println(y1);

// Servo haritada konumunu ayarlıyor
      xServo.write(x1 + xOffset);
      yServo.write(y1 + yOffset);
      delay(sensitivity);         //Delay hassasiyet.
}

Cevapla
Teşekkür Edenler
.


Foruma atla:


Konuyu görüntüleyenler: 1 Misafir

Türkçe Çeviri : MyBB Türkiye
MyBB, © 2002-2018 MyBB Group.