Bu şemayı birebir yaptım ama kodlar çalışmıyor. Acaba kodlarda hata mı var bir çok yorumda çalışmayan devre gördüm. Çalışan yeni kod yazıp paylaşabilir misiniz ? ACİL Ödev yetiştirmem gerekiyor
Arduino uno için kod;
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
const int buzzerPin = 9;
const float shakeThreshold = 1.5; // Eşik değeri (g cinsinden, 1g = 9.8m/s²)
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
pinMode(buzzerPin, OUTPUT);
if (!mpu.testConnection()) {
Serial.println(“MPU6050 bağlantısı başarısız!”);
while (1);
} else {
Serial.println(“MPU6050 bağlantısı başarılı.”);
}
}
void loop() {
int16_t ax, ay, az;
mpu.getAcceleration(&ax, &ay, &az);
// ivmeyi g cinsinden hesapla (1g = 16384 birim)
float xg = ax / 16384.0;
float yg = ay / 16384.0;
float zg = az / 16384.0;
// Toplam ivmenin büyüklüğü (Pythagorean toplam)
float totalAccel = sqrt(xg * xg + yg * yg + zg * zg);
Serial.print("Toplam ivme: ");
Serial.println(totalAccel);
// Eğer toplam ivme belirli eşiği aşarsa buzzer çalsın
if (abs(totalAccel - 1.0) > shakeThreshold) {
digitalWrite(buzzerPin, HIGH);
delay(500); // 0.5 saniye öt
digitalWrite(buzzerPin, LOW);
}
delay(200); // ölçüm aralığı
}
D9 buzzer + GND buzzer - pinine
MPU6050 → Arduino
VCC → 5V
GND → GND
SDA → A4
SCL → A5