Уже не актуально, оставил для истории
Помогите лучше с формулой расчета сопротивления, что то не выходит каменный цветок.Мои рассуждения:
Преобразование 15 бит, значит максимальное значение снимаем с АЦП ADSmax = b111111111111111 = 32767.
Схема делителя 3.3В - 6.2кОм - Uацп - 10кОм||Rизм -0В.
Uацп=3.3В*ADS/ADSmax
I=(3.3В-Uaцп)/6.2кОм=Uацп/(10кОм||Rизм) => (10кОм||Rизм)=(Uацп*6.2кОм)/(3.3В-Uaцп)
Rизм=1/(1/(10кОм||Rизм)-1/10кОм))
Кодирую:
float U33 = 3.4; // точное напряжение на пине 3.3 V
float R62 = 6.200; // точное значение 6.2 кОм резистора
float R10 = 9.900; // точное значение 10 кОм резистора
int ADS = readADS(0, 16); //Читаем из АЦП
float Uacp = U33 * ADS / 32768;
float R10_izm = (Uacp * R62) / (U33 - Uacp);
float Rizm = 1 / (1/R10_izm - 1/R10);
ASOled.printString_12x16(F("ADS "), 0, 0);
ASOled.printNumber(float(ADS), 0, 52, 0);
ASOled.printString_12x16(F("Uacp"), 0, 2);
ASOled.printNumber(float(Uacp), 3, 52, 2);
ASOled.printString_12x16(F("R|| "), 0, 4);
ASOled.printNumber(float(R10_izm), 3, 52, 4);
ASOled.printString_12x16(F("Rizm"), 0, 6);
ASOled.printNumber(float(Rizm), 3, 52, 6);
Получаю:
Где косяк?
UPD.
Напряжение измеренное вольтметром на входе в 1 канал АЦП 1,53 В.
Подставил его вместо формулы расчета по ADS. Остальные формулы правильные. Косяк где то здесь Uacp = U33 * ADS / 32768;
UPD2.
Всё, задачка решена. Вместо напряжения 3.3 В надо было использовать опорное 2.05 В:
Uacp = 2.05 * ADS / 32768;
Добавлен помощник подбора резисторов делителя, чтоб его задействовать нужно перед включением замкнуть между собой контакты подключения первого термистора.
Кусок описания из скетча:
ДЛЯ ТЕХ У КОГО НЕТ ТОЧНЫХ ПРИБОРОВНа этом пока с измерениями сопротивлений делаю паузу, умные советы принимаются.
Подбор резисторов в процессе сборки:
Сначала собираем АЦП с одним первым максимально точным делителем 6.2/10 кОм, вписываем их значения в константы ниже.
Вольтметром меряем напряжение питания 3.3 В и референтное с ноги А0, вписываем их ниже.
Прошиваемся уже с выбранной и возможно рассчитанной характеристикой В, см. выше и ниже.
Паяем вместо первого терморезистора 2 зажима.
Перезагружаемся с соединенными между собой зажимами, на дисплее появятся значения с 1 канала: 15 битовое с АЦП, измеренное АЦП напряжение, общее сопротивление параллельных R 10 кОм и измеряемого, и нижнее измеряемое сопротивление кОм.
Измерение не правильное, особенно с резисторами 6.2 кОм, но позволяет подбирать их одинаковыми с точностью до третьего знака после запятой.
Подбираем сопротивления 10 и 6.2 кОм так, чтобы цифры внизу были как можно более похожи, выпаиваем первый делитель и впаиваем все из подобранных.
Теперь у вас все делители максимально похожи между собой, хоть скорей всего не ровно 10/6.2 кОм, строим характеристику теперь для них и прошиваемся ещё раз.