前提・実現したいこと
ADXL375をArduinoUNOとSPI通信で加速度を読み取りたいです。
同時に4つ取りたいです。I2C通信だとアドレスが2つしかないのでできません。
SSをデジタル7番に設定した場合でソースを貼ります。
暫定なので、センサは1つだけです。
発生している問題・エラーメッセージ
オシロスコープで以下の3つは確認できました。しかし、MISOから値が返ってきません。
・CSの立ち下がり、立ち上がり
・SCLのタイミング
・MOSIの波形
該当のソースコード
#include <SPI.h>
const int ss = 7;
int8_t z0;
int8_t z1;
int16_t gz;
void setup() {
SPI.begin();
Serial.begin(9600);
pinMode(ss, OUTPUT);
SPI.setBitOrder(LSBFIRST); //最下位ビット(LSB)から送信
SPI.setClockDivider(SPI_CLOCK_DIV4);
SPI.setDataMode(SPI_MODE3);
digitalWrite(ss,LOW);
SPI.transfer(0x2D);
SPI.transfer(0x08);
digitalWrite(ss,HIGH);
digitalWrite(ss,LOW);
SPI.transfer(0x31);//DATA_FORMAT設定
SPI.transfer(0x0B);
digitalWrite(ss,HIGH);
}
void loop() {
digitalWrite(ss,LOW);
SPI.transfer(0xF6);
z0 = SPI.transfer(z0);
SPI.transfer(0xF7);
z1 = SPI.transfer(z1);
digitalWrite(ss,HIGH);
gz = z1 >> z0;
Serial.print(gz);
Serial.print("\t");
Serial.print(z0);
Serial.print("\t");
Serial.println(z1);
}
試したこと
・ArduinoUNO本体の動作確認
・オシロスコープでの波形確認
・ブレッドボード、および配線の導通確認、電圧確認等