Zadzwoń +48 601 595 618

Witamy w technovade.pl!

Kompas GY-271 - HMC5883L 3-osiowy magnetometr cyfrowy I2C

Oceń ten produkt jako pierwszy

Czujnik do pomiaru pola magnetycznego w trzech osiach w zakresie  ±8 gauss z rodzielczością 5 mili gaus. Zasilany napięciem 2,16 V - 3,6 V, charakteryzuje się niewielkimi rozmiarami, niskim poborem energii oraz prostą obsługą. Komunikuje się poprzez magistralę I2C.

15,99 zł

Zamówienia powyżej 200 zł wysyłamy za darmo!

Każde zamówienie możesz odebrać w naszym sklepie stacjonarnym w Poznaniu.

Sprzedajemy wyłącznie towar nowy i gwarantujemy jego sprawność!

Z każdym zamówieniem otrzymujesz kupony rabatowe na kolejne zakupy!

Opis produktu

Szczegóły

Czujnik do pomiaru pola magnetycznego w trzech osiach w zakresie  ±8 gauss z rodzielczością 5 mili gaus. Zasilany napięciem 2,16 V - 3,6 V, charakteryzuje się niewielkimi rozmiarami, niskim poborem energii oraz prostą obsługą. Komunikuje się poprzez magistralę I2C.

Specyfikacja

  • Komunikacja I2C IIC
  • Pomiar 3 osiowy
  • Pobór prądu 100uA
  • Dokładność kompasu 1-2 stopnie
  • Szybkość wyjścia pomiaru max 160 Hz
  • Pozłacane wyjścia : VCC, GND, SCL, SDA, DRDY
  • Podłączenie:
    • Arduino GND -> HMC5883L GND
    • Arduino 3.3V -> HMC5883L VCC
    • Arduino A4 (SDA) -> HMC5883L SDA
    • Arduino A5 (SCL) -> HMC5883L SCL

Zestaw zawiera listwy Goldpin

 

Przykładowy kod:

 

/*
* HMC5883L Demo.
* dipmicro electronics, 2014
*
* Hardware Used:
*
* Arduino UNO or compatible
* GY271 module (dipmicro part DE4196
* Arduino GND -> GY271/HMC5883L GND
* Arduino 3.3V -> GY271/HMC5883L VCC
* Arduino A4 (SDA) -> GY271/HMC5883L SDA
* Arduino A5 (SCL) -> GY271/HMC5883L SCL
*/
#include <Wire.h> //I2C Arduino Library
#define HMC5883L_ADDR 0x1E //0011110b, I2C 7bit address of HMC5883
bool haveHMC5883L = false;
bool detectHMC5883L ()
{
// read identification registers
Wire.beginTransmission(HMC5883L_ADDR); //open communication with HMC5883
Wire.write(10); //select Identification register A
Wire.endTransmission();
Wire.requestFrom(HMC5883L_ADDR, 3);
if(3 == Wire.available()) {
char a = Wire.read();
char b = Wire.read();
char c = Wire.read();
if(a == 'H' && b == '4' && c == '3')
return true;
}
return false;
}
void setup()
{
//Initialize Serial and I2C communications
Serial.begin(9600);
Serial.println("GY271 TEST");
Wire.begin();
// lower I2C clock http://www.gammon.com.au/forum/?id=10896
TWBR = 78; // 25 kHz
TWSR |= _BV (TWPS0); // change prescaler
}
void loop()
{
bool detect = detectHMC5883L();
if(!haveHMC5883L)
{
if(detect)
{
haveHMC5883L = true;
Serial.println("We have HMC5883L, moving on");
// Put the HMC5883 IC into the correct operating mode
Wire.beginTransmission(HMC5883L_ADDR); //open communication with HMC5883
Wire.write(0x02); //select mode register
Wire.write(0x00); //continuous measurement mode
Wire.endTransmission();
}
else
{
Serial.println("No HMC5883L detected!");
delay(2000);
return;
}
}
else
{
if(!detect) {
haveHMC5883L = false;
Serial.println("Lost connection to HMC5883L!");
delay(2000);
return;
}
}
int x,y,z; //triple axis data
//Tell the HMC5883 where to begin reading data
Wire.beginTransmission(HMC5883L_ADDR);
Wire.write(0x03); //select register 3, X MSB register
Wire.endTransmission();
//Read data from each axis, 2 registers per axis
Wire.requestFrom(HMC5883L_ADDR, 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
}
//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);
}

 

Informacje dodatkowe

Informacje dodatkowe

Kraj pochodzenia
Producent Nie

Recenzje

Napisz własną recenzję

Tylko zarejestrowani kiienci mogą pisać opinie. Prosimy zalogować się lub zarejestrować

Tagi produktu

Tagi produktu

Użyj spacji aby rozdzielić tagi, apostrofów (') aby wpisać frazy.