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


#include <Wire.h>
#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define ADS1110_ADDRESS 0x48

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("ADS1110 Var 15");

  // Конфигурация для Варианта 15:
  // Непрерывный режим, 14 бит (60 SPS), усиление PGA = x8
  // Байт: 0b00000111 (0x07)
  Wire.beginTransmission(ADS1110_ADDRESS);
  Wire.write(0b00000111);
  Wire.endTransmission();

  delay(1000);
  lcd.clear();
}

void loop() {
  Wire.requestFrom(ADS1110_ADDRESS, 3);

  if (Wire.available() >= 3) {
    byte highByte = Wire.read();
    byte lowByte = Wire.read();
    byte configRegister = Wire.read();

    // Сборка 16-битного знакового числа
    int16_t rawData = (int16_t)((highByte << 8) | lowByte);

    // В 14-битном режиме данные могут быть выровнены по левому краю или дополнены знаком.
    // LSB для PGA x8 и 14 бит: 0.256 В / 8192 = 0.00003125 В (31.25 мкВ)
    float voltage = (float)rawData * 0.00003125;

    // Вывод в Virtual Terminal
    Serial.print("Raw: ");
    Serial.print(rawData);
    Serial.print(" | Voltage: ");
    Serial.print(voltage, 4);
    Serial.println(" V");

    // Вывод на дисплей LCD1
    lcd.setCursor(0, 0);
    lcd.print("Raw Data: ");
    lcd.print(rawData);
    lcd.print("    ");

    lcd.setCursor(0, 1);
    lcd.print("Volt: ");
    lcd.print(voltage, 4);
    lcd.print(" V   ");
  }

  delay(500);
}