Корпус хоть и многоногий, большинство выводов микросхемы не используется:
Достаточно вывести всего 8 выводов для полной работы с акселерометром adxl312
Акселерометр может выводить информацию по двум протоколам: I2C и по SPI
Адрес микросхемы в случае работы по I2C в шестнадцатеричной системе: 0х1D
Таким образом работая с микросхемой по шине I2C при записи байта нужно отправлять 0х3A а при приеме 0x3B
Рабочий диапазон измерений акселерометр может быть выбран из ряда: 1,5g; 3g; 6g; 12g
Выбор диапазона измерений выбирается записью в регистр по адресу 0х31
Логика работы по I2C интерфейсу:
Тестовый код для акселерометра ADX312 в Bascom-AVR
$regfile = "m8def.dat" 'микроконтроллер ATmega8
'конфигурируем scl и sda пины
Config Sda = Portb.1 ' I2C Data
Config Scl = Portb.0 ' I2C Clock
'константы на биты чтения и записи adxl312
Const Adxl312write = &H3A ' бит записи
Const Adxl312read = &H3B ' бит чтения
Dim Data0x As Byte
Dim Data1x As Byte
Dim Data0y As Byte
Dim Data1y As Byte
Dim Data0z As Byte
Dim Data1z As Byte
Do
Gosub Adxl312
Loop
End 'end program
Adxl312:
I2cstart 'даем старт шине
I2cwbyte Adxl312write 'отправляем бит записи
I2cwbyte &H32 'отправляем адрес откуда нужно считать
I2cstart 'повторный старт
I2cwbyte Adxl312read 'отправляем бит чтения
I2crbyte Data0x , Ack 'принимаем данные для трех осей
I2crbyte Data1x , Ack
I2crbyte Data0y , Ack
I2crbyte Data1y , Ack
I2crbyte Data0z , Ack
I2crbyte Data1z , Nack 'заканчиваем прием командой nack
I2cstop 'закрываем шину
Return
Осталось сложить байты для кождых из осей и вывести показанию любым удобным способом. По умолчанию акселерометр начинает работать в диапазоне измерений 1,5g