Trijų ašių magnetometras HMC5883L (elektorninis kompasas) GY-273

Trijų ašių magnetometras HMC5883L (elektorninis kompasas) GY-273

Trijų ašių magnetometras HMC5883L (elektorninis kompasas) GY-273

Trijų ašių magnetometro (elektroninio kompaso) pagrindą sudaro mikroschema HMC5883L. Pagrindinė šių modulių paskirtis: pigių kompasų gamyba, magnetometrija. Duomenys perduodami I2C protokolu.

4 prekės sandelyje

Kaina:

3,00 €

Į krepšelį

Tinklapyje visos kainos nurodytos su 21% PVM.

Už šią prekę premijos taškai neskiriami.

Apie prekę

Trijų ašių magnetometro (elektroninio kompaso) pagrindą sudaro mikroschema HMC5883L. 3-ašių magnetometro (elektroninio kompaso) modulis HMC8553L yra silpno magnetinio lauko jutiklinis įrenginys turintis skaitmeninę sąsają. Pagrindinė šių modulių paskirtis: pigių kompasų gamyba, magnetometrija. Kompaso modulis paverčia bet kokio tipo magnetinį lauką į skirtingus 3 ašių įtampos rodmenis. Šios įtampos rodmenys yra neapdoroti (angl. raw) duomenys, kurie gali būti naudojami krypties nustatymui arba kaip jutiklis nustatantis iš kurios pusės sklinda magnetinis laukas.  Duomenys perduodami I2C protokolu.

Pagrindinės HMC5883L modulio įpatybės:

3-ašių magnetinės varžos jutiklis
Nuo 1 iki 2 laipsnių kompaso krypties paklaida
Plati magnetinio lauko apimtis (+/- 8 gausai)
Greitas 160 Hz maksimalus išeigos ritmas
Ašių tikslumas jautime ir lygiavime
Matuoja Žemės magnetinį lauką nuo mili-gausų iki 8 gausų

Modulio parametrai:

Galios reikalavimai: nuo 2.7 iki 6.5 VDC
Mažos energijos sąnaudos (100 µA)
Tinkamas naudoti su prietaisais, kuriuos maitina baterija
Komunikacijos sąsaja: I2C (iki 400 kHz)
Darbinė temperatūra: nuo -22 iki +185 °F (nuo -30 iki +85 °C)
Matmenys: 1.8 cm x 1.7 cm

Kontaktas

Pavadinimas

Tipas

Funkcija

1

GND

G

Ground (žemė)

2

VIN

P

Maitinimo įtampa – 2.7 iki 6.5 VDC

3

DRDY

I

Duomenys paruošti, nutraukimas.

4

SCL

I

I2C laikmatis

5

SDA

IO

I2C duomenys

Demonstracinė programa

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>

/* Assign a unique ID to this sensor at the same time */
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);

void displaySensorDetails(void)
{
  sensor_t sensor;
  mag.getSensor(&sensor);
  Serial.println("------------------------------------");
  Serial.print  ("Sensor: "); Serial.println(sensor.name);
  Serial.print  ("Driver Ver: "); Serial.println(sensor.version);
  Serial.print  ("Unique ID: "); Serial.println(sensor.sensor_id);
  Serial.print  ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" uT");
  Serial.print  ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" uT");
  Serial.print  ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" uT");  
  Serial.println("------------------------------------");
  Serial.println("");
  delay(500);
}

void setup(void) 
{
  Serial.begin(9600);
  Serial.println("HMC5883 Magnetometer Test"); Serial.println("");
  
  /* Initialise the sensor */
  if(!mag.begin())
  {
    /* There was a problem detecting the HMC5883 ... check your connections */
    Serial.println("Ooops, no HMC5883 detected ... Check your wiring!");
    while(1);
  }
  
  /* Display some basic information on this sensor */
  displaySensorDetails();
}

void loop(void) 
{
  /* Get a new sensor event */ 
  sensors_event_t event; 
  mag.getEvent(&event);


  // Hold the module so that Z is pointing 'up' and you can measure the heading with x&y
  // Calculate heading when the magnetometer is level, then correct for signs of axis.
  float heading = atan2(event.magnetic.y, event.magnetic.x);
  
  // Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location.
  // Find yours here: http://www.magnetic-declination.com/
  float declinationAngle = 1.22;
  heading += declinationAngle;
  
  // Correct for when signs are reversed.
  if(heading < 0)
    heading += 2*PI;
    
  // Check for wrap due to addition of declination.
  if(heading > 2*PI)
    heading -= 2*PI;
   
  // Convert radians to degrees for readability.
  float headingDegrees = heading * 180/M_PI; 

  Serial.print("You are heading ");
  if((headingDegrees < 22.5) || (headingDegrees > 337.5 ))
  Serial.print("North");
  if((headingDegrees > 22.5) && (headingDegrees < 67.5 ))
  Serial.print("North-East");
  if((headingDegrees > 67.5) && (headingDegrees < 112.5 ))
  Serial.print("East");
  if((headingDegrees > 112.5) && (headingDegrees < 157.5 ))
  Serial.print("South-East");
  if((headingDegrees > 157.5) && (headingDegrees < 202.5 ))
  Serial.print("South");
  if((headingDegrees > 202.5) && (headingDegrees < 247.5 ))
  Serial.print("South-West");
  if((headingDegrees > 247.5) && (headingDegrees < 292.5 ))
  Serial.print("West");
  if((headingDegrees > 292.5) && (headingDegrees < 337.5 ))
  Serial.print("North-West");
 
  Serial.print(" (degrees): "); Serial.println(headingDegrees);
  
  delay(100);
}

 

Charakteristika

  • Maitinimo įtampa - 3.3 / 5V DC
  • Duomenų perdavimo būdas - Skaitmeninis
  • Mikroschema - HMC5883L
  • Duomenų perdavimo protokolas - I2C

20 kitos prekės toje pačioje kategorijoje:

Klientai, kurie pirko šią prekę taip pat pirko: