Genel Raspberry pi

Raspberry Pi Dersleri 5 I2C Protokolü ve SMBUS Kütüphanesini Kullanarak MPU6050 ile Haberleşme

I2Cexample.py Kodları

import smbus
import time
Bus = smbus.SMBus(1)
"""I2C1 kanali secildi 
# mpu6050'nin I2C adresi 0x68'dir
"""
PWR_MGMT_1   = 0x6B
SMPLRT_DIV   = 0x19
CONFIG       = 0x1A
GYRO_CONFIG  = 0x1B
INT_ENABLE   = 0x38
ACCEL_XOUT_H = 0x3B
ACCEL_XOUT_L = 0x3C
ACCEL_YOUT_H = 0x3D
ACCEL_YOUT_L = 0x3E
ACCEL_ZOUT_H = 0x3F
ACCEL_ZOUT_L = 0x40
GYRO_XOUT_H  = 0x43
GYRO_XOUT_L  = 0x44
GYRO_YOUT_H  = 0x45
GYRO_YOUT_L  = 0x46
GYRO_ZOUT_H  = 0x47
GYRO_ZOUT_L  = 0x48
""" kullanilacak fonksiyonlar 
 write_quick(int addr) tek bir bit yazmaya yarar.
 
read_byte(int addr) 1 byte okur 
write_byte(int addr,char val) 1 byte yazar 

read_byte_data(int addr,char cmd)-1 byte okumayi saglar,cmd register adresi,addr slave cihaz I2C adresi
write_byte_data(int addr,char cmd,char val)-1 byte veriyi registera atama addr cihaz adresi,cmd register
adresi ,val yazilmak istenen deger

read_i2c_block_data(int addr,char cmd)
write_i2c_block_data(int addr,char cmd,long vals[])
"""
def mpu_init():
    #sample rate diveder register  
    Bus.write_byte_data(0x68,SMPLRT_DIV,0x07)
    #power management register
    Bus.write_byte_data(0x68,PWR_MGMT_1,0x01)
	#Gyro configuration register
    Bus.write_byte_data(0x68, GYRO_CONFIG, 24)    

def ivmeX_oku():
    value1=Bus.read_byte_data(0x68,ACCEL_XOUT_H)
    value2=Bus.read_byte_data(0x68,ACCEL_XOUT_L)
    value=(value1<<8)|value2 #xxxxxxxx00000000|
    if value>32768:
        value=value-65536
    return value/16384.0

def ivmeY_oku():
    value1=Bus.read_byte_data(0x68,ACCEL_YOUT_H)
    value2=Bus.read_byte_data(0x68,ACCEL_YOUT_L)
    value=(value1<<8)|value2
    if value>32768:
        value=value-65536
    return value/16384.0

def ivmeZ_oku():
    value1=Bus.read_byte_data(0x68,ACCEL_ZOUT_H)
    value2=Bus.read_byte_data(0x68,ACCEL_ZOUT_L)
    value=(value1<<8)|value2
    if value>32768:
        value=value-65536
    return value/16384.0

def GyroX():
    value1=Bus.read_byte_data(0x68,GYRO_XOUT_H)
    value2=Bus.read_byte_data(0x68,GYRO_XOUT_L)
    value=(value1<<8)|value2
    if value>32768:
        value=value-65536
    return value/16.4    

def GyroY():
    value1=Bus.read_byte_data(0x68,GYRO_YOUT_H)
    value2=Bus.read_byte_data(0x68,GYRO_YOUT_L)
    value=(value1<<8)|value2
    if value>32768:
        value=value-65536
    return value/16.4 

def GyroZ():
    value1=Bus.read_byte_data(0x68,GYRO_ZOUT_H)
    value2=Bus.read_byte_data(0x68,GYRO_ZOUT_L)
    value=(value1<<8)|value2
    if value>32768:
        value=value-65536
    return value/16.4 
    
mpu_init()

time.sleep(0.5)
while 1:
    
    print("AX: %.2f"%ivmeX_oku() ,"AY: %.2f"%ivmeY_oku() ,"AZ: %.2f"%ivmeZ_oku() ,"GX: %.2f"%GyroX() 
    ,"GY: %.2f"%GyroY(),"GZ: %.2f"%GyroZ())
    time.sleep(0.1)

Raspberry Pi Dersleri 5 I2C Protokolü ve SMBUS Kütüphanesini Kullanarak MPU6050 ile Haberleşme&rdquo için 1 yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: