Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- const int ADS1110_ADDRESS = 0x48; // I2C address of the ADS1110
- void setup() {
- Wire.begin();
- Serial.begin(9600);
- // Configure the ADS1110
- Wire.beginTransmission(ADS1110_ADDRESS);
- Wire.write(0x85); // Config register address
- Wire.write(0x83); // Single-ended measurement on AIN0, gain = 2/3, mode = continuous conversion, data rate = 860 SPS
- Wire.endTransmission();
- }
- void loop() {
- // Start a conversion
- Wire.beginTransmission(ADS1110_ADDRESS);
- Wire.write(0x80); // Conversion register address
- Wire.endTransmission();
- // Wait for the conversion to finish (13 ms for 860 SPS)
- delay(15);
- // Read the conversion result (MSB first)
- Wire.requestFrom(ADS1110_ADDRESS, 2);
- byte msb = Wire.read();
- byte lsb = Wire.read();
- int result = (msb << 8) | lsb;
- // Print the result
- Serial.print("AIN0 voltage: ");
- float voltage = result * 0.1875 / 1000; // Calculate voltage (16-bit result * LSB value * Vref / gain / 1000)
- Serial.print(voltage, 4); // Print voltage with 4 decimal places
- Serial.println(" V");
- delay(1000); // Wait for 1 second before taking the next measurement
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement