и пытаюсь подключить к нему mpu6050
Код (все комментарии написаны мной чтобы показать процесс мышления и проверить нет ли в нем ошибок):
#include <SoftWire.h>
#include <AsyncDelay.h>
SoftWire sw(9, 10);
const int MPU=0x68; // detected by ListDevices sketch
void setup(){
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(6, OUTPUT);
digitalWrite(12, HIGH); //VCC
digitalWrite(11, LOW); //GND
digitalWrite(6, LOW); //AD0 address least significant bit set to 0
sw.setTimeout_ms(1000);
sw.begin();
sw.beginTransmission(MPU);
sw.write(0x6B); // select register 107 - power management
sw.write(0); // write 0000000 to not DEVICE_RESET, disable SLEEP, CYCLE, TEMP_DIS, CLKSEL
Serial.begin(115200);
uint8_t txStatus = sw.endTransmission();
Serial.print("initial transmission status: "); Serial.print(txStatus);
Serial.println();
}
Выводит в serial monitor: initial transmission status: 2
2 согласно докам значит что был получен NACK при передаче адреса
В какую сторону мне копать?
Адрес точно тот, ListDevices пишет вот это:
Interrogating all addresses in range 0x1 - 0x7F (inclusive) ...
Device found at 0x68
Finished
@it_chats чат по ардуинке еще есть
Адреса в i2c передаются в старших 7 бит. Попробуй сдвинуть адрес на бит влево.
Не помогло, так же NACK
Спасибо, там спрошу
Обсуждают сегодня