Считываю датчик кислорода с помощью ADS1115. Датчик химический и выдает в пределах 5-8мВ, в зависимости от содержания кислорода в воздухе. Казалось бы, все просто, выставляю делитель по меньше, но на выходе получаю какой-то странный шаг, повыводил всё в порт и начало прояснятся - он по I2C отдаёт количество бит, которое изменяется не плавно, а с каким-то шагом, который при переводе в милливольты четко соответствует значениям для ADS1015. Возможно обьясняю не очень, вот пример
Выставляем умножитель №2, для ADS1015 кол-во бит нужно умножить на 1мВ, для ADS1115 на 0.0625.
// ADS1015 ADS1115
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
Шаги бит на выходе 112, следующий 96, а весь промежуток между не показывает. По итогу получаем 112*0,0625=7 96*0,025=6 шаг в 1мВ. Закономерность сохраняется на любом множителе, точность скачка в битах при переводе в напряжение соответствует точности ADS1015. Вопрос, или я что-то не так делаю или не так понял, или китайцы поставили другой АЦП.
Выставляем умножитель №2, для ADS1015 кол-во бит нужно умножить на 1мВ, для ADS1115 на 0.0625.
// ADS1015 ADS1115
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
Шаги бит на выходе 112, следующий 96, а весь промежуток между не показывает. По итогу получаем 112*0,0625=7 96*0,025=6 шаг в 1мВ. Закономерность сохраняется на любом множителе, точность скачка в битах при переводе в напряжение соответствует точности ADS1015. Вопрос, или я что-то не так делаю или не так понял, или китайцы поставили другой АЦП.