Оживить HMC5883L после подключения к WEMOS D1

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Устройство категорически отказалось работать в ардуино нано после подключения к указанному девайсу!
Поиск по форумам показал, что такая проблема имеется. Корректная работа указаной связки обеспечивается ниже приведённым кодом, он же и излечил ардуино нано )))
 

#include <Wire.h> //I2C Arduino Library

#define HMC5883L_ADDRESS 0x1E
#define HMC5883L_DEFAULT_ADDRESS 0x1E

void setup(){
//Initialize Serial and I2C communications
Serial.begin(9600);
Wire.begin();
//Put the HMC5883 IC into the correct operating mode
Wire.beginTransmission(HMC5883L_ADDRESS); //open communication with HMC5883
Wire.write(0x02); //select mode register
Wire.write(0x00); //continuous measurement mode
Wire.endTransmission();
}

void loop(){
int x,y,z; //triple axis data

//Tell the HMC5883 where to begin reading data
Wire.beginTransmission(HMC5883L_ADDRESS);
Wire.write(0x03); //select register 3, X MSB register
Wire.endTransmission();

//Read data from each axis, 2 registers per axis
Wire.requestFrom(HMC5883L_ADDRESS, 6);
if(6<=Wire.available()){
x = Wire.read()<<8; //X msb
x |= Wire.read(); //X lsb
z = Wire.read()<<8; //Z msb
z |= Wire.read(); //Z lsb
y = Wire.read()<<8; //Y msb
y |= Wire.read(); //Y lsb
}

// Quick Fix from steelgoose
if (x > 32767)
x = x - 65536;
if (y > 32767)
y = y - 65536;
if (z > 32767)
z = z - 65536;

//Print out values of each axis
Serial.print("x: ");
Serial.print(x);
Serial.print(" y: ");
Serial.print(y);
Serial.print(" z: ");
Serial.println(z);
delay(250);
}

 

Nemo 1965
Nemo 1965 аватар
Offline
Зарегистрирован: 24.04.2018

Не пашет ! 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

я уж и забыл )))

Nemo 1965
Nemo 1965 аватар
Offline
Зарегистрирован: 24.04.2018

Я думал что спалил компас ! А потом вспомнил что после вемос перестал похать и что мне предложите выкинуть !

 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Nemo 1965 пишет:

Я думал что спалил компас ! А потом вспомнил что после вемос перестал похать и что мне предложите выкинуть !

Сначала заливаем код в WEMOS D1 оживляем компас, потом в ардуино нано