اطلاعیه

Collapse
No announcement yet.

مشکل راه اندازی سنسور ADXL345

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل راه اندازی سنسور ADXL345

    با سلام خدمت مهندسان عزیز
    در رابطه با راه اندازی سنسور ADXL345 بوسیله AVR به مشکل خوردم.
    قصد دارم بوسیله TWI با این سنسور ارتباط برقرار کنم اما هیچ جوابی نمی گیرم. کدنویسی در کدویژن است.
    این هم کدها:

    // I2C Bus functions
    #asm
    .equ __i2c_port=0x18 ;PORTB
    .equ __sda_bit=3
    .equ __scl_bit=2
    #endasm

    #include <alcd.h>
    #include <i2c.h>
    #include <twi.h>
    #include <mega16a.h>
    #include <delay.h>
    #include <stdio.h>

    // untuk HMC5843

    #define adxl_w 0x3A
    #define adxl_r 0x3B
    #define y0 0x34
    #define y1 0x35
    #define z0 0x36
    #define z1 0x37



    unsigned char read_adxl(unsigned char reg_adr)
    {
    unsigned char data;

    i2c_start();
    i2c_write(adxl_w); // write to this I2C address, R/*W cleared
    i2c_write(reg_adr); //Read from a given address

    i2c_start();
    i2c_write(adxl_r); // read from this I2C address, R/*W Set
    data=i2c_read(0);
    i2c_stop();

    return data;
    }



    void main(void)
    {
    // Declare your local variables here
    int y, z;
    char buf[17];

    lcd_init(8);

    // Global enable interrupts
    #asm("sei&quot

    i2c_init();

    while (1)
    {
    y = (read_adxl(y0)<<8) | read_adxl(y1);
    z = (read_adxl(z0)<<8) | read_adxl(z1);

    lcd_gotoxy(0,0);
    sprintf(buf, "X=%0d, Y=%0d ", y, z );
    lcd_puts(buf);
    lcd_puts(buf);
    delay_ms(1000);
    }
    }


    نمی دونم مشکل از کجاس. شاید علتش اینه که مقاومت پول پ نذاشتم.
    در ضمن avr رو هم با 3.3 ولت تغذیه کردم.
    لطفا کمک کنید

    #2
    پاسخ : مشکل راه اندازی سنسور ADXL345

    این کد ثبات داخلی این سنسور رو میخونه

    //////// Read ADXL345 on address add
    unsigned char read345reg(unsigned char add)
    {
    unsigned char regvalue=0;
    while(!i2c_start()) //wait here to free bus
    {#asm("wdr&quot}
    i2c_write(0xA6); //slave adress+write
    i2c_write(add); //set register address
    i2c_stop(); //restart (stoP followed by Start)
    i2c_start();
    i2c_write(0xA7); //slave adress+Read
    regvalue=i2c_read(0x00);
    i2c_stop();
    return(regvalue);
    }

    مقاومت پول پ مثلا 4.7K یادت نره

    دیدگاه


      #3
      پاسخ : مشکل راه اندازی سنسور ADXL345

      نوشته اصلی توسط mojalan
      این کد ثبات داخلی این سنسور رو میخونه

      //////// Read ADXL345 on address add
      unsigned char read345reg(unsigned char add)
      {
      unsigned char regvalue=0;
      while(!i2c_start()) //wait here to free bus
      {#asm("wdr&quot}
      i2c_write(0xA6); //slave adress+write
      i2c_write(add); //set register address
      i2c_stop(); //restart (stoP followed by Start)
      i2c_start();
      i2c_write(0xA7); //slave adress+Read
      regvalue=i2c_read(0x00);
      i2c_stop();
      return(regvalue);
      }

      مقاومت پول پ مثلا 4.7K یادت نره

      میخواستم بدونم یه برنامه کامل برای این ماژول دارید؟؟؟ چون با این کد من به نتیجه نرسیدم! :sad:

      دیدگاه


        #4
        پاسخ : مشکل راه اندازی سنسور ADXL345

        سلام
        آقا ما هم مثل قاشق تو عسل برا راه اندازی adxl345 گیر کردیم. کسی از رفقا برنامه کامل با کدویژن نداره به داد ما برسه!!!!!!!!!!!!!!!!!!!!
        ممنون میشم اگه کمک کنید. :read: :angry: :angry: :angry:

        دیدگاه


          #5
          پاسخ : مشکل راه اندازی سنسور ADXL345

          راه انداختی؟ یا نه؟
          شکست ابتداي پيروزيست!

          دیدگاه


            #6
            پاسخ : مشکل راه اندازی سنسور ADXL345

            نوشته اصلی توسط mojalan
            [ltr]
            //////// Read ADXL345 on address add
            unsigned char read345reg(unsigned char add)
            {
            unsigned char regvalue=0;
            while(!i2c_start()) //wait here to free bus
            {#asm("wdr&quot}
            i2c_write(0xA6); //slave adress+write
            i2c_write(add); //set register address
            i2c_stop(); //restart (stoP followed by Start)
            i2c_start();
            i2c_write(0xA7); //slave adress+Read
            regvalue=i2c_read(0x00);
            i2c_stop();
            return(regvalue);
            }
            اقای abjzb70 نمونه خوبی گذاشته با همین میتونید راش بندازید.... :read: :read: :read: :read: :read:

            دیدگاه


              #7
              ماژول ADXL345

              سلام
              من می خوام ماژول Adlx345 gy91 رو درایو کنم که نمونش توی این آدرسه:
              http://dmf313.ir/%D9%85%D8%A7%DA%98%D9%88%D9%84-%D8%B4%D8%AA%D8%A7%D8%A8-%D8%B3%D9%86%D8%AC-%D9%88-%D8%B2%D8%A7%D9%88%DB%8C%D9%87-%D8%B3%D9%86%D8%AC-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-adxl345/

              کد موجود توی سایت رو اصلا نفهمیدم!
              لطفا یکی یک کد درست و حسابی i2c برای خوندن زاویه روی سه محور ارائه بده!

              دیدگاه

              لطفا صبر کنید...
              X