ADXL345 ivme sensörü uygulaması

Başlatan ertsen, 20 Ocak 2013, 15:08:30

ertsen

Arkadaşlar şu anda x,y ve z koordinatlarını sorunsuzda okuyabiliyorum. adxl ile açılan diğer başlıkta paylaşılan dosyanın kodlarını kendime göre düzenledim.
aşağıdaki şekilde pic-adxl345 bağlantısını kurdum:
[IMG]http://img10.imageshack.us/img10/9858/adxl345arduinoschematic.jpg[/img]


video linki:
video 2013 01 20 14 56 16

Kodlar:
Adxl345.c
// ADXL345  Registers
#define ADXL345_DEVID                   0x00    // R     Device ID
#define ADXL345_THRESH_TAP              0x1D    // R/W   Tap threshold
#define ADXL345_OFSX                    0x1E    // R/W   X-axis offset
#define ADXL345_OFSY                    0x1F    // R/W   Y-axis offset
#define ADXL345_OFSZ                    0x20    // R/W   Z-axis offset
#define ADXL345_DUR                     0x21    // R/W   Tap duration
#define ADXL345_Latent                  0x22    // R/W   Tap latency
#define ADXL345_Window                  0x23    // R/W   Tap window
#define ADXL345_THRESH_ACT              0x24    // R/W   Activity threshold
#define ADXL345_THRESH_INACT            0x25    // R/W   Inactivity threshold
#define ADXL345_TIME_INACT              0x26    // R/W   Inactivity time
#define ADXL345_ACT_INACT_CTL           0x27    // R/W   Axis enable control for activity and inactivity detection
#define ADXL345_THRESH_FF               0x28    // R/W   Free-fall threshold
#define ADXL345_TIME_FF                 0x29    // R/W   Free-fall time
#define ADXL345_TAP_AXES                0x2A    // R/W   Axis control for single tap/double tap
#define ADXL345_ACT_TAP_STATUS          0x2B    // R     Source of single tap/double tap
#define ADXL345_BW_RATE                 0x2C    // R/W   Data Rate and power mode control
#define ADXL345_POWER_CTL               0x2D    // R/W   Power-saving features control
#define ADXL345_INT_ENABLE              0x2E    // R/W   Interrupt enable control
#define ADXL345_INT_MAP                 0x2F    // R/W   Interrupt mapping control
#define ADXL345_INT_SOURCE              0x30    // R     Source of interrupts
#define ADXL345_DATA_FORMAT             0x31    // R/W   Data format control
#define ADXL345_DATAX0                  0x32    // R     X-Axis Data 0
#define ADXL345_DATAX1                  0x33    // R     X-Axis Data 1
#define ADXL345_DATAY0                  0x34    // R     Y-Axis Data 0
#define ADXL345_DATAY1                  0x35    // R     Y-Axis Data 1
#define ADXL345_DATAZ0                  0x36    // R     Z-Axis Data 0
#define ADXL345_DATAZ1                  0x37    // R     Z-Axis Data 1
#define ADXL345_FIFO_CTL                0x38    // R/W   FIFO control
#define ADXL345_FIFO_STATUS             0x39    // R     FIFO status
#define ADXL345_OUTPUTS                 0x32

void adxl345_init(){
         
         i2c_start();
         i2c_write(0xA6);
         //delay for ack in the slave device
         //Put the ADXL345 into +/- 4G range by writing the value 0x01 to the DATA_FORMAT register.
         i2c_write(ADXL345_DATA_FORMAT);
         i2c_write(0x01);
         i2c_stop();
         
         delay_ms(1);
         i2c_start();
         i2c_write(0xA6);
         i2c_write(ADXL345_FIFO_CTL);
         //i2c_write(0x40);
         i2c_write(0x00);//FIFO inactive
         i2c_stop();
         
         //Put the ADXL345 into Measurement Mode by writing 0x08 to the POWER_CTL register.
         delay_ms(1);
         i2c_start();
         i2c_write(0xA6);
         i2c_write(ADXL345_BW_RATE);
         i2c_write(0x0c);
         i2c_stop();
         
         delay_ms(1);
         i2c_start();
         i2c_write(0xA6);
         i2c_write(ADXL345_POWER_CTL);
         i2c_write(0x08); //Measurement mode 
         i2c_stop();
}
     
     
int adxl345_read(int add){
         int retval;
         i2c_start();
         i2c_write(0xA6);
         i2c_write(add);
         i2c_start();
         i2c_write(0xA7);
         retval=i2c_read(0);
         i2c_stop(); 
         return retval;
}


main.c
//lcd portB
//şemadaki gibi adx345 in bağlantısı gerçekleştiriliyor
#include <18F2550.h>

#fuses  HSPLL,NOWDT,NOPROTECT,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN      // dont change
#use    delay(clock=48000000)  

#build (reset=0x1000, interrupt=0x1008)                              // new addresses
#org 0x0,0xfff {}                                             // reserved space 

#use I2C(master, sda=PIN_C7, scl=PIN_C6, slow)
#include "LCD_FLEX.c"
#include "ADXL345.c"
int i,values[6];
unsigned char display[4]={0,0,0,'g'};

void conversion(int16 i)  
{  
    display[0]=i/1000+0x30 ;
    i=i%1000;
    display[1]=i/100+0x30 ;
    i=i%100;
    display[2]=i/10+0x30 ; 
}

void display_x(void)
{   float temp;
    int16 x;

    x=adxl345_read(0x33);
    x=(x<<8)+adxl345_read(0x32);

  
   if(x>65000){
    x=-x; 
      printf(lcd_putc,"\fX: -%lu",x);
   }
   else 
   {
 printf(lcd_putc,"\fX:  %lu",x);
//!    printf(lcd_putc,"\fX:%lu\n %d,%d,%d",x,display[0],display[1],display[2]);
   }
}
//*******************************

void display_y(void)
{   float temp;
    int16 y;
     y=adxl345_read(0x35);
    y=(y<<8)+adxl345_read(0x34);
    
    if(y>65000){
    y=-y; 
      printf(lcd_putc," Y: -%lu",y);
   }
   else 
   {
 printf(lcd_putc," Y:  %lu",y);
//!    printf(lcd_putc,"\fX:%lu\n %d,%d,%d",x,display[0],display[1],display[2]);
   }
}

void display_z(void)
{   float temp;
    int16 z;

     z=adxl345_read(0x37);
    z=(z<<8)+adxl345_read(0x36);
    
   if(z>65000){
    z=-z; 
      printf(lcd_putc,"\n Z: -%lu",z);
   }
   else 
   {
 printf(lcd_putc," \nZ:  %lu",z);
//!    printf(lcd_putc,"\fX:%lu\n %d,%d,%d",x,display[0],display[1],display[2]);
   }

}

void main()
{
   delay_ms(500);
   lcd_init();
   adxl345_init();
   printf(lcd_putc,"\f");
   while(TRUE)
   {
      display_x();
      display_y();
      display_z();

      delay_ms(100); 
   }

}


artapon

hocam elinize sağlık gayet güzel görünüyor. şimdi birde ben deneyeyim bakalım nasıl bir sonuç elde edeceğim...
Aldanma İnsanların Samimiyetine, Menfaatleri İçin Gelirler Vecde, Vaad Etmeseydi Allah cenneti, O'na Bile Etmezlerdi Secde!   (NFK)

Murat Mert

S.A.
Hocam veriler 8bit isaretli olrakmi geliyor?
mert07

ertsen

işin teknik kısmını tam olarak tarif edemesemde şöyle anlatayım. - veriler binary olarak geliyor. yani -1 için 65534 gibi bir sonuç veriyor. dolayısıyla if(x>65000) şeklinde bir kontrolle - mi + mı olduğunu kontrol ediyorum. (kendimce bulduğum bir çözüm)


Murat Mert

16 bitlik veriler halindeyse ekranda daha büyük sayılar görükmesi lazım diye düşündüm.
Ellerinize sağlık güzel bir çalışma sizi baya yordu. Bilgi paylaşımı için teşekkürler.
mert07

gutaussehender

#5
merhaba arkadaşlar bende adxl345 ıle bı deneme yapmak istedim

https://www.picproje.org/index.php?topic=30624.0

konudakı BenC arakadasın kodunu protona a cevirdim

fakat pc den aldıgım degerler

X: 0 Y:08 Z:0
DeviceID 0

bu degerler sürekli sabit hiç değişmiyor acaba nerede hata yaptım yardımcı olurmusunuz.

ADXL345 yanmış olabilirmi acaba.

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 28.07.2012                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device 18F4520                      'işlemci 18f4520                                
	XTAL 8

CONFIG_START
'OSC 	= HSPLL		; HSPLL Oscillator
FCMEN	= off		; Failsafe Clock Monitor Disabled
IESO	= off		; Int/Ext Oscillator Switch Over Disabled
PWRT	= off		; Power Up Timer Enabled
BOREN	= off		; Brownout Reset Disabled
BORV	= 0		    ; Brownout Reset Voltage 4.6V
WDT		= off		; Watchdog Timer Disabled
WDTPS	= 1			; Watchdog Postscaler: 1:1
MCLRE	= off		; MCLR Enabled
LPT1OSC	= off		; T1 Oscillator Disabled
PBADEN	= off		; Port B A/D Enable Port B<4:0> digital on RESET
CCP2MX	= PORTC		; CCP2 Mux Muxed with RC1
STVREN	= off		; Stack Overflow Reset Enabled
LVP		= off		; Low Voltage ICSP Disabled
XINST	= off		; XINST Disabled
Debug	= off		; Background Debugger Disabled
CP0		= OFF 		; Code Protection Block 0 Disabled
CP1		= OFF		; Code Protection Block 1 Disabled
CP2		= OFF		; Code Protection Block 2 Disabled
CP3		= OFF		; Code Protection Block 3 Disabled
CPB		= OFF 		; Boot Block Code Protection Disabled
CPD		= Off 		; Data EEPROM Code Protection Disabled
WRT0	= off 		; Write Protection Block 0 Disabled
WRT1	= off 		; Write Protection Block 1Disabled
WRT2	= off 		; Write Protection Block 2 Disabled
WRT3	= off 		; Write Protection Block 3 Disabled
WRTB	= off 		; Boot Block Write Protection Disabled
WRTC	= off 		; Configuration Register Write Protection Disabled
WRTD	= off 		; Data EEPROM Write Protection Disabled
EBTR0	= off 		; Table Read Protection Block 0 Disabled
EBTR1	= off 		; Table Read Protection Block 1 Disabled
EBTR2	= off 		; Table Read Protection Block 2 Disabled
EBTR3	= off 		; Table Read Protection Block 3 Disabled
EBTRB	= off 		; Boot Block Table Read Protection Disabled
CONFIG_END

    OSCTUNE.6=0                 'HPLL DİSABLE
    OSCCON=%01110110            '8mhz intrc osc
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''' PORT  TANIMLAMALARI''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    TRISA=%00000000
    TRISB=%00000000
    TRISC=%10000000
    TRISD=%00000000
    TRISE.0=0
    TRISE.1=0
    TRISE.2=0
    
    ADCON0=%00000000                      'A/D Converter module is enabled
    'ADCON2=%10101101                '101 = 12 TAD--101 = FOSC/16
    'ADCON1=%00001110                'AN0 analog diğerleri diğital
    CMCON=7                         'karşılaştırmalar kapalı
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Symbol  RTC_DTA=PORTA.2
    Symbol  RTC_CLK=PORTA.1
    Symbol  RTC_RST=PORTA.3
    Symbol  GIE=INTCON.7
    
    Declare ADIN_RES 10
    Declare ADIN_TAD frc
    Declare ADIN_STIME 50
    
    HSERIAL_BAUD = 9600
    HSERIAL_RCSTA = $90
    HSERIAL_TXSTA = $20
    HSERIAL_CLEAR = On
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''DEĞİŞKENLER''''''''''''''''''''''''''''''''''''  
    Dim x       As Word
    Dim y       As Word
    Dim z       As Word
    Dim sayac   As Byte
    Dim veri    As Byte
    Dim verix   As Byte
    Dim ADRESS   As Byte
    Dim adresx  As Byte    
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Symbol  ADXl_CLK    =   PORTD.1
    Symbol  ADXL_CS     =   PORTD.2
    Symbol  ADXL_SDO    =   PORTD.0
    Symbol  ADXL_SDI    =   PORTC.3
    Symbol  adxl_vs     =   PORTD.3
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
main:
    adxl_vs=1
        GoSub ADXL345_INIT
main2:
        
        ADRESS=$32
        GoSub adxl345_oku
        x.HighByte=veri
        ADRESS=$33
        GoSub adxl345_oku
        x.LowByte=veri
        
        
        ADRESS=$34
        GoSub adxl345_oku
        y.HighByte=veri
        ADRESS=$35
        GoSub adxl345_oku
        y.LowByte=veri
        
        
        ADRESS=$36
        GoSub adxl345_oku
        z.HighByte=veri
        ADRESS=$37
        GoSub adxl345_oku
        z.LowByte=veri

        HSerOut [#x," - ",#y," - ",#z," - ",13,10]
        DelayMS 500
        
        ADRESS=$00
        GoSub adxl345_oku
        HSerOut ["DeviceID ",#veri,13,10]
     GoTo main2

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ADXL345_INIT:
    
        ' DATA FORMAT  0x31
        'Bit 7 = SELF TEST , 1=ON,0=OFF
        'Bit 6 = SPI , 1=3 WIRE,0=4 WIRE
        'Bit 5 = INT_INVERT , 1=ACTIF HIGH,0=ACTIF LOW
        'Bit 4 = USE 0
        'Bit 3 = FULL RES , 1=16 bit,0=10 bit
        'Bit 2 = JUSTIFY BIT , 1=left-justified,0=right-justified
        'Bit 1 = RANGE 
        'Bit 0 = RANGE   
        ' 0 0 +-2g
        ' 0 1 +-4g
        ' 1 0 +-8g
        ' 1 1 +-16g
        '0b00001111 = 0x0F
        ADRESS=$31
        veri=$0f
        GoSub ADXL345_YAZ
        

        ' INTERRUPT ENABLE KONTROLU 0x2E
        'Bit 7 = DATA READY , 1=ON,0=OFF
        'Bit 6 = SINGLE TAB , 1=ON,0=OFF
        'Bit 5 = DOUBLE TAB , 1=ON,0=OFF
        'Bit 4 = ACTIVITY   , 1=ON,0=OFF
        'Bit 3 = INACTIVITY , 1=ON,0=OFF
        'Bit 2 = FREE FALL  , 1=ON,0=OFF
        'Bit 1 = WATERMARK  , 1=ON,0=OFF
        'Bit 0 = OVERRUN    , 1=ON,0=OFF
        '0b00000000 = 0x00
        ADRESS=$2e
        veri=$00
        GoSub ADXL345_YAZ
    
        ' BW RATE 0x2C
        'Bit 7 = 0
        'Bit 6 = 0
        'Bit 5 = 0
        'Bit 4 = Low POWER  , 1=On,0=NORMAL
        'Bit 3 = RATE
        'Bit 2 = RATE
        'Bit 1 = RATE
        'Bit 0 = RATE
        ' 1 0 1 0 DEFAULT
        '0b00001010 = 0x0A
        ADRESS=$2c
        veri=$0C
        GoSub ADXL345_YAZ
        
        ' POWER KONTROLU 0x2D
        'Bit 7 = 0
        'Bit 6 = 0
        'Bit 5 = LINK         , 1=On,0=OFF
        'Bit 4 = AUTO Sleep   , 1=On,0=OFF
        'Bit 3 = MEASURE      , 1=On,0=OFF
        'Bit 2 = Sleep        , 1=On,0=OFF
        'Bit 1 = WAKE UP      , 1=On,0=OFF
        'Bit 0 = WAKE UP      , 1=On,0=OFF
        '0b00001000 = 0x00
        ADRESS=$2d
        veri=$08
        GoSub ADXL345_YAZ
        
        Return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
adxl345_oku:
        veri=0                      'Veri değişkenini sıfırla
        
        ADXl_CLK=1                  'ADXL345 CLOCK HATTI HIGH
        ADXL_CS=0                   'ADXL345 CHIP SELECT HATTI LOW
        
        adresx=ADRESS & $80          'Adres değerini &80 ile topla (adres.7=1)
        
        For sayac=0 To 7            '8 Bit veri için döngü
        
            ADXl_CLK=0              'ADXL345 CLOCK HATTI LOW
            If adresx.7=1 Then      'Adresx in 7 inci biti 1 ise 
                ADXL_SDO=1          'adxl_sdo hattını 1 yap
            Else                    'değilse
                ADXL_SDO=0          'adxl_sdo hattını 0 yap
            EndIf
            adresx=adresx<<1        'adresx içeriğini bir bit saga kaydır
        DelayUS 2                   '2 uSn bekle
        ADXl_CLK=1                  'ADXL345 CLOCK HATTI HIGH
        DelayUS 2
        Next sayac
        
        
        For sayac=0 To 7            '8 Bit veri için döngü
            ADXl_CLK=0              'Adxl345 clock hattı low
                DelayUS 2           '2 uSn bekle
            ADXl_CLK=1              'Adxl345 clock hattı hıgh
                DelayUS 2           '2 uSn bekle
                
                If ADXL_SDI=1 Then  'adxl_sdi hattı 1 ıse 
                    veri.0=1        'veri değişkeninin 0 ıncı biti 1 yap
                Else                'değilse
                    veri.0=0        'veri değişkeninin 0 ıncı biti 0 yap
                EndIf
            veri=veri<<1            'veri değişkeninin içeriğini bit bit sağa kaydır
            Next sayac
            ADXL_CS=1               'adxl345 chıp select hattı high
            Return

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
ADXL345_YAZ:
        verix=veri                  'Veri değişkenini yedeğini al

        ADXl_CLK=1                  'ADXL345 CLOCK HATTI HIGH
        ADXL_CS=0                   'ADXL345 CHIP SELECT HATTI LOW
        
        adresx=ADRESS & $7F
        
        For sayac=0 To 7            '8 Bit veri için döngü
        
            ADXl_CLK=0              'ADXL345 CLOCK HATTI LOW
            If adresx.7=1 Then      'Adresx in 7 inci biti 1 ise 
                ADXL_SDO=1          'adxl_sdo hattını 1 yap
            Else                    'değilse
                ADXL_SDO=0          'adxl_sdo hattını 0 yap
            EndIf
            adresx=adresx<<1        'adresx içeriğini bir bit saga kaydır
        DelayUS 2                   '2 uSn bekle
        ADXl_CLK=1                  'ADXL345 CLOCK HATTI HIGH
        DelayUS 2
        Next sayac


        For sayac=0 To 7            '8 Bit veri için döngü
            ADXl_CLK=0              'Adxl345 clock hattı low
                If verix.7=1 Then   'verix in 7ci biti 1 se
                    ADXL_SDO=1      'adxl_sdo hattı 1 yap
                Else                'değilse
                    ADXL_SDO=0      'adxl_sdo hattı 0 yap
                EndIf
            verix=verix<<1          'verix değişkenin içeriğini 1 bit saga kaydır
                DelayUS 2           '2 uSn bekle
            ADXl_CLK=1              'Adxl345 clock hattını high
                DelayUS 2           '2 uSn bekle
        Next sayac
            ADXL_CS=1               'Adxl345 chıp select hattını 1 e çek
        
        Return

  End

dilruba.mdk

arkadaşlar mrb ben bu programı ccs de derledim devreyi kurdum ama lcd de hiç bi hareketlilik alamıyorum lütfennnnn yardımcı olur musunuz :( :(

shakuzi

Kendi adıma çok yararlı bir paylaşım. Teşekkürler.

Mucit23

Elimde Resimdeki ADXL345 modülü var.



Buradaki kodları ADXL345 kütüphanesini kullanarak ADXL345'den veri okumaya çalışıyorum.
Çipi init ediyorum(öyle görünüyor) Fakat değer okuduğum zaman bütün değerler sıfır geliyor.

CCS'de yazdığım kodlar bunlar.
#include <16F877A.h>
#device ADC=10
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES HS

#use delay(crystal=10000000)

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)

#use I2C(master, sda=PIN_C4, scl=PIN_C3, slow)

#include <lcd_driver.c>
#include <ADXL345.c>

int8 accel_data[6];
int16 xaxis=0,yaxis=0,zaxis=0;

void main()
{
   set_tris_a(0x00);
   set_tris_b(0x00);
   set_tris_c(0x00);
   set_tris_d(0x00);
   set_tris_e(0x00);
   output_a(0x00);
   output_b(0x00);
   output_c(0x00);
   output_d(0x00);
   output_e(0x00);
   
   output_float(pin_c3);
   output_float(pin_c4);
   
   setup_ccp1(CCP_OFF);
   setup_ccp2(CCP_OFF);
   setup_spi(SPI_DISABLED);
   
   delay_ms(500);
   lcd_init();
   adxl345_init();   
   
   printf(lcd_putc,"\f");
   lcd_gotoxy(1,1);
   printf(lcd_putc,"ADXL345 Accmeter");

   while(TRUE)
   {
     accel_data[0]=adxl345_read(32); //Read X axis(LSB)
     accel_data[1]=adxl345_read(33); //Read X axis(MSB)
     accel_data[2]=adxl345_read(34); //Read Y axis(LSB)
     accel_data[3]=adxl345_read(35); //Read Y axis(MSB)
     accel_data[4]=adxl345_read(36); //Read Z axis(LSB)
     accel_data[5]=adxl345_read(37); //Read Z axis(MSB)

     xaxis=(int16)((accel_data[1]<<8)|accel_data[0]);
     yaxis=(int16)((accel_data[3]<<8)|accel_data[2]);
     zaxis=(int16)((accel_data[5]<<8)|accel_data[4]);
     
     lcd_gotoxy(1,2);
     printf(lcd_putc,"X%03ld Y%03ld Z%03ld",xaxis, yaxis, zaxis);
     delay_ms(100);
     output_toggle(pin_a0);
  
   }

}


Durumu çözmeye çalışıyorum. Çipin INT bacaklarını kullanmadım, boştalar. CS bacağını +5V'a bağlı, I2C ile iletişim kurmaya çalışıyorum.

Sıkıntı ne olabilir.

Mucit23

Dünden beri uğraşıyorum durum aynı.

Sisteme ilk enerji verdiğimde hatta oluşan data aktivitesi aşağıdaki gibi


Yanlış birşeymi yapıyorum? Neden Sensörlerden sürekli 0 verisi geliyor?

sadogan

#use fast_io(c)
output_float(pin_c3);
output_float(pin_c4);
Bunları kaldırıp denedinizmi ?


Mucit23

#11
Hocam sizin söylemenizle birlikte hemen denedim. Ama değişen birşey olmadı.

mesaj birleştirme:: 10 Mayıs 2014, 11:50:35

Kafayı yedirtecek bana,

Yahu Lojik analizatörde görüldüğü üzere ACK geliyor. Demekki sensör canlı, cevap veriyor bize. O halde neden gelen datalar hep sıfır?

Acaba SPI ilemi haberleştirsek?

Bildiğiniz çalışan sağlam kütüphane kod parçası felan varmı?

sadogan


Mucit23

Hocam Ben ilk önce I2C nin çalışıp çalışmadığını doğrulamam lazım. XYZ bilgilerini alamıyorum. Birde Register okuması yapayım bakalım yazdığım değerleri geri geliyormu?

mistek

Ben kullandığım adxl345 'te CS bacağını biyere bağlamıyordum diye hatırlıyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R