Оживить HMC5883L после подключения к WEMOS D1
- Войдите на сайт для отправки комментариев
Пнд, 05/12/2016 - 21:36
Устройство категорически отказалось работать в ардуино нано после подключения к указанному девайсу!
Поиск по форумам показал, что такая проблема имеется. Корректная работа указаной связки обеспечивается ниже приведённым кодом, он же и излечил ардуино нано )))
#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);
}
Не пашет !
я уж и забыл )))
Я думал что спалил компас ! А потом вспомнил что после вемос перестал похать и что мне предложите выкинуть !
Я думал что спалил компас ! А потом вспомнил что после вемос перестал похать и что мне предложите выкинуть !
Сначала заливаем код в WEMOS D1 оживляем компас, потом в ардуино нано