Загрузка данных


#include <Wire.h>

// Адрес датчика (0x57 - наиболее вероятный)
// Если не работает, запустите сканер I2C (код ниже)
#define SONAR_ADDR 0x57  

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  Serial.println("=== ReX Distance 1T Test ===");
  Serial.println("Подключите датчик: 5V->5V, GND->GND, SDA->A4, SCL->A5");
  delay(2000);
}

void loop() {
  // Запрашиваем 2 байта данных
  Wire.requestFrom(SONAR_ADDR, 2);
  
  if (Wire.available() >= 2) {
    // Читаем два байта и собираем в одно число (16 бит)
    int distance = Wire.read() << 8 | Wire.read();
    
    // Выводим результат
    Serial.print("Расстояние: ");
    Serial.print(distance);
    Serial.println(" см");
    
    // Индикация проблем
    if (distance == 0) {
      Serial.println("  -> Нет препятствия или объект в мёртвой зоне (<2 см)");
    } else if (distance > 100) {
      Serial.println("  -> Возможно, превышение дальности (модель 1T = до 1 м)");
    }
  } else {
    Serial.println("Ошибка: датчик не отвечает!");
  }
  
  delay(500);  // Опрос 2 раза в секунду
}