Beschleunigungssensor ADXL345

  • 3-Achsen Beschleunigungssensor
  • 13 Bit Messgenauigkeit
  • +/- 2/4/8/16g Beschleunigung
  • SPI oder I2C Busanschluß
  • I2C maximum bus speed is 100kHz

Bildergalarie

(Quelle:SparkFun Electronics ®)

Datenblatt

Modul

Anschaltung an Propeller

Der Anschluß SDO wird beim I2C-Bus zum Eingang und dient der Adressumschaltung

VCC ADXL345 = %0011_1010 I2C Addresse

GND ADXL345 = %1010_0110

=== Softwaremodule ==

' Der i2c-Treiber ist hier im anhang einzufügen.

CON 'All the I2C registers for the ADXL345
'  ADXL345                       = %0011_1010 acc I2C address maximum bus speed is 100kHz.
  ADXL345                       = %1010_0110   
  ADXL345_ID                    = $00
  ADXL345_BW_RATE               = $2C
  ADXL345_POWER_CTL             = $2D
  ADXL345_DATA_FORMAT           = $31
  ADXL345_OUTX_L                = $32
  ADXL345_OUTX                  = $33
  ADXL345_OUTY_L                = $34
  ADXL345_OUTY                  = $35
  ADXL345_OUTZ_L                = $36
  ADXL345_OUTZ                  = $37
  ADXL345_FIFO_CTL              = $38

VAR
  long XA, YA, ZA                        'Acc

PUB start
    waitcnt(clkfreq + cnt)                                  'start-up delay
    XA := YA := ZA := 0
    if ReadLocation(ADXL345, ADXL345_ID) == %1110_0101
      WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_0000)   'Standby mode
      WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_1000)   'Measurement mode
       WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1000) '±2G
  '    WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1001) '±4G
  '    WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1010) '±8G
  '   WriteLocation(ADXL345, ADXL345_DATA_FORMAT, %0000_1011) '±16G
      WriteLocation(ADXL345, ADXL345_BW_RATE, %0000_1010)     '100Hz
      WriteLocation(ADXL345, ADXL345_POWER_CTL, %0000_1000)
      WriteLocation(ADXL345, ADXL345_FIFO_CTL, %0000_0000)    'bypass mode
      ' OK
      adxl345
    else
      ' nOK

PRI adxl45
    XA := readLocation16(ADXL345, ADXL345_OUTX_L)
    XA := (XA>>8 + XA <<8) & $FFFF          ' H<>L
    YA := readLocation16(ADXL345, ADXL345_OUTY_L)
    YA := (YA>>8 + YA <<8) & $FFFF          ' H<>L
    ZA := readLocation16(ADXL345, ADXL345_OUTZ_L)
    ZA := (ZA>>8 + ZA <<8) & $FFFF          ' H<>L

i2c.spin

Funktionsbeispiel

Software

sen_beschl_adxl345/start.txt · Zuletzt geändert: 11.10.2012 13:24 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki