МЫ СОЗДАЕМ И ПРОИЗВОДИМ
ЭЛЕКТРОННЫЕ НАБОРЫ И МОДУЛИ !
        Описание товара
        Подробное описание товара
      Общие сведения
3-осевой компас QMC5883L — облегчает ориентирование на местности путём указания на  магнитный полюс Земли.
Характеристики
- Питание: 3 - 5В;
 - Потребление тока: 100 мкА;
 - Интерфейс: I2C;
 - Диапазон рабочих температур: от -40 ° C до + 85 °С;
 - Габариты: 18,5 мм × 13,5 мм × 1,1 мм;
 
Подключение
- Выводы SDA и SCL модуля подключаются к аппаратной шине I2C Arduino.
 - Выводы GND, VDD являются выводами питания (вывод VDD - питание модуля +3,3 В или 5 В)
 - Выводы DRDY используется для прерывания, сигнализирует о готовности данных.
 
Питание
Напряжение питания модуля от 3 В до 5 В (по стандарту используется 3,3 В либо 5 В для плат Arduino.) постоянного тока, подаётся на выводы VDD и GND модуля.
Подробнее о компасе
Датчик GY-273 разработан на основе чипа QMC5883L. Трехосевой магнито-резистивные датчики. Широкодиапазонное рабочее напряжение (от 3 В до 5 В). Энергопотребление (100 мкA). Точность 1 ° до 2 ° градусов. Интерфейс I2C со стандартным и быстрым режимами. Широкий диапазон магнитного поля.
Для работы с компасом рекомендуем вам воспользоваться библиотекой DFRobot_QMC5883.
Примеры
Считывание показаний датчика и вывод их в радианах и в градусах в монитор порта.
Таблица подключения выводов датчика:
- SDA - подключается к линии данных SDA шины I2C или к выводу A4 Arduino UNO.
 - SCL - подключается к линии тактирования SCL шины I2C или к выводу A5 Arduino UNO.
 - GND - подключается к выводу GND Arduino UNO.
 - VDD - подключается к выводу 5V Arduino UNO.
 - DRDY - не используются.
 
/*!
 * @file getCompassdata.ino
 * @brief Output the compass data
 * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
 * @license     The MIT License (MIT)
 * @author      [dexian.huang](952838602@qq.com)
 * @version  V1.0
 * @date  2017-7-3
 * @url <a href="https://github.com/DFRobot/DFRobot_QMC5883" class="redactor-autoparser-object">https://github.com/DFRobot/DFR...</a>
 */
#include <dfrobot_qmc5883.h>
DFRobot_QMC5883 compass(&Wire, /*I2C addr*/0x0D  );
void setup()
{
  Serial.begin(9600);
  while (!compass.begin())
  {
    Serial.println("Could not find a valid 5883 sensor, check wiring!");
    delay(500);
  }
  if(compass.isHMC())
  {
    Serial.println("Initialize HMC5883");
    //Set/get the compass signal gain range, default to be 1.3 Ga
    // compass.setRange(HMC5883L_RANGE_1_3GA);
    // Serial.print("compass range is:");
    // Serial.println(compass.getRange());
    //Set/get measurement mode
    // compass.setMeasurementMode(HMC5883L_CONTINOUS);
    // Serial.print("compass measurement mode is:");
    // Serial.println(compass.getMeasurementMode());
    //Set/get the data collection frequency of the sensor
    // compass.setDataRate(HMC5883L_DATARATE_15HZ);
    // Serial.print("compass data rate is:");
    // Serial.println(compass.getDataRate());
    //Get/get sensor status
    // compass.setSamples(HMC5883L_SAMPLES_8);
    // Serial.print("compass samples is:");
    // Serial.println(compass.getSamples());
  }
  else if(compass.isQMC())
  {
    Serial.println("Initialize QMC5883");
    // compass.setRange(QMC5883_RANGE_2GA);
    // Serial.print("compass range is:");
    // Serial.println(compass.getRange());
    // compass.setMeasurementMode(QMC5883_CONTINOUS);
    // Serial.print("compass measurement mode is:");
    // Serial.println(compass.getMeasurementMode());
    // compass.setDataRate(QMC5883_DATARATE_50HZ);
    // Serial.print("compass data rate is:");
    // Serial.println(compass.getDataRate());
    // compass.setSamples(QMC5883_SAMPLES_8);
    // Serial.print("compass samples is:");
    // Serial.println(compass.getSamples());
  }
  else if(compass.isVCM())
  {
    Serial.println("Initialize VCM5883L");
    // compass.setMeasurementMode(VCM5883L_CONTINOUS);
    // Serial.print("compass measurement mode is:");
    // Serial.println(compass.getMeasurementMode());
    // compass.setDataRate(VCM5883L_DATARATE_200HZ);
    // Serial.print("compass data rate is:");
    // Serial.println(compass.getDataRate());
  }
  delay(1000);
}
void loop()
{
  /**
   * @brief  Set declination angle on your location and fix heading
   * @n      You can find your declination on: <a href="http://magnetic-declination.com/" class="redactor-autoparser-object">http://magnetic-declination.co...</a>
   * @n      (+) Positive or (-) for negative
   * @n      For Bytom / Poland declination angle is 4'26E (positive)
   * @n      Formula: (deg + (min / 60.0)) / (180 / PI);
   */
  float declinationAngle = (4.0 + (26.0 / 60.0)) / (180 / PI);
  compass.setDeclinationAngle(declinationAngle);
  sVector_t mag = compass.readRaw();
  compass.getHeadingDegrees();
  Serial.print("X:");
  Serial.print(mag.XAxis);
  Serial.print(" Y:");
  Serial.print(mag.YAxis);
  Serial.print(" Z:");
  Serial.println(mag.ZAxis);
  Serial.print("Degress = ");
  Serial.println(mag.HeadingDegress);
  delay(100);
}
</dfrobot_qmc5883.h>
Комплектация
- 1х 3-осевой компас QMC5883l;
 - 1х Соединитель типа "ПАПА-ПАПА";
 
Ссылки
- Библиотека DFRobot_QMC5883;
 - DataSheet;
 
      















