Подключение GY-273 к ESP-8266

Здравствуйте. Попытался подключить магнитометр GY-273 к плате esp-8266(lolin d1). Скетч код записал на плату. Теперь индикатор в виде светодиода горит все время и не переставая при подаче питания. На изменение положения или и приближении металлов нет никакой реакции. Почему всегда горит светодиод и как решить эту проблему. Помогите пожалуйста!

#include “Wire.h”

#define HA5883_ADDRESS 0x0D // Адрес HA5883
#define DATA_REGISTER_BEGIN 0x00 // Адрес регистра данных
#define LED_PIN 4 // Пин для светодиода

int16_t initialX = 0; // Начальное значение по оси X
int16_t initialY = 0; // Начальное значение по оси Y
int16_t initialZ = 0; // Начальное значение по оси Z
bool isInitialized = false; // Флаг, указывающий, инициализировано ли начальное значение

void i2cScan();
void initHA5883();
void readHA5883(int16_t *x, int16_t *y, int16_t *z);

void setup() {
Serial.begin(115200);
Wire.begin(2, 1); // Инициализация I2C на пинах SDA=2 и SCL=1
pinMode(LED_PIN, OUTPUT); // Установка пина для светодиода в режим OUTPUT

// Задержка перед началом работы
delay(5000); // Задержка на 5 секунд

Serial.println(“Сканирование I2C-устройств…”);
i2cScan(); // Запускаем сканирование устройств на шине

Serial.println(“Инициализация HA5883…”);
initHA5883(); // Инициализация HA5883

delay(100); // Задержка для стабилизации после инициализации

// Чтение начальных значений по осям X, Y и Z
readHA5883(&initialX, &initialY, &initialZ);

// Проверка на нулевые значения
if (initialX == 0 && initialY == 0 && initialZ == 0) {
Serial.println(“Предупреждение: начальные значения равны нулю!”);
}

isInitialized = true; // Устанавливаем флаг инициализации
}

void loop() {
int16_t x, y, z;

// Чтение данных с HA5883
readHA5883(&x, &y, &z);

// Вывод значений в монитор
Serial.print("X: “); Serial.print(x);
Serial.print(” Y: “); Serial.print(y);
Serial.print(” Z: "); Serial.println(z);

// Проверка изменения по оси X, Y и Z только если начальное значение установлено
if (isInitialized) {
if (abs(x - initialX) > 60 || abs(y - initialY) > 60 || abs(z - initialZ) > 60) {
digitalWrite(LED_PIN, HIGH); // Включаем светодиод
delay(2000); // Задержка на 2 секунды
digitalWrite(LED_PIN, LOW); // Выключаем светодиод
} else {
digitalWrite(LED_PIN, LOW); // Выключаем светодиод, если нет изменений
}
}

delay(70); // Задержка перед следующим чтением
}

// Функция сканирования I2C-устройств

void i2cScan() {
byte error, address;
int devicesFound = 0;

for (address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0) {
        Serial.print("Устройство найдено по адресу 0x");
        if (address < 16) Serial.print("0");
        Serial.println(address, HEX);
        devicesFound++;
    }
}

if (devicesFound == 0) {
    Serial.println("Устройства не найдены.");
} else {
    Serial.print("Найдено устройств: ");
    Serial.println(devicesFound);
}

}

// Функция инициализации HA5883
void initHA5883() {
Wire.beginTransmission(HA5883_ADDRESS);

Wire.write(0x0B); // Регистр управления
Wire.write(0x01); // Включение режима работы

if (Wire.endTransmission() != 0) {
    Serial.println("Ошибка при инициализации HA5883");
    return;
}

Wire.beginTransmission(HA5883_ADDRESS);

Wire.write(0x09); // Конфигурация
Wire.write(0x1D); // Настройка фильтра и диапазона

if (Wire.endTransmission() != 0) {
    Serial.println("Ошибка при настройке конфигурации HA5883");
    return;
}

}

// Функция чтения данных с HA5883
void readHA5883(int16_t *x, int16_t *y, int16_t *z) {
Wire.beginTransmission(HA5883_ADDRESS);

Wire.write(DATA_REGISTER_BEGIN); // Указание на начало данных

if (Wire.endTransmission() != 0) {
    Serial.println("Ошибка при запросе данных с HA5883");
    return;
}

// Чтение данных с регистра
Wire.requestFrom(HA5883_ADDRESS, 6);

if (Wire.available() == 6) {
    *x = (Wire.read() << 8) | Wire.read(); // Чтение X
    *y = (Wire.read() << 8) | Wire.read(); // Чтение Y
    *z = (Wire.read() << 8) | Wire.read(); // Чтение Z
} else {
    Serial.println("Недостаточно данных для чтения");
}

}

Вот мой скетч код

Где? Не нашёл.

  1. Первый шаг - научиться правильно вставлять код и вставить его.
  2. Второй шаг: выложить схему подключений (полностью, с питанием и всем остальным)
  3. Третий шаг: выложить фото сборки на которых видно что и как. Если надо, несколько фото, но чтобы всё видно было, а не “для галочки”.

и 4) я бы посоветовал оставить ссылку на модуль, дабы определить что в модуле диода анод или катод)))

А так же копия паспорта 2 и 8 страница, СНИЛС, выписка из домовой книги, и ПФР, ЕГРЮЛ, ЕГРН, справка о судимости, последние 30 страниц трудовой и оценки по математике за 2ю четверть 3го класса…пока достаточно)