Добрый день! Только начинаю работать с Arduino, кое-что уже почитал и не могу разобраться с термистором (http://files.amperka.ru/datasheets/B57164.pdf). Он возвращает аналоговые значения (это гораздо интереснее, чем цифровые). Но я не могу понять спецификацию - а точнее, выяснить, как на её основе превращать абстрактный показатель 0..255 в сопротивление. Следующий шаг - высчитать из сопротивления температуру наверное уже чуть-чуть легче, по крайней мере построить нелинейную зависимость каким-то способом можно. Честно листал во все стороны документ и долго гуглил, но так и не смог найти способа получения значения сопротивления. Подскажите, пожалуйста, как это описано в данной спецификации, откуда там выудить информацию. Дайте удочку, т.е. Заранее большое спасибо.
Там есть такая таблица, в которой есть столбцы T и RT/R25, в первом сама температура, во втором отношение сопротивления термистора при температуре T к его номинальному сопротивлению при T=25C. Допустим, номинальное сопротивление 10кОм. Чтобы измерить сопротивление термистора с помощью АЦП ардуины, нужно его преобразовать в напряжение. Собираем делитель напряжения: термистор и постоянный резистор соединяем последовательно, концы бросаем на Vcc и GND, среднюю точку на вход АЦП. Посчитаем какой нужен постоянный резистор в делителе. Термистору на 10k соответствует характеристика №2904, при T=-55C отношение R/R25 будет 121.46, а при T=155C R/R25 будет 0.011754. Пробуем сделать шкалу симметричной: требуем Rmax/R2=R2/Rmin, получаем R2=12кОм. Сравнивая разрешение АЦП с отношением сопротивлений получаем, что 1/5 шкалы не будет использоваться, а все остальное - наше.
Остается только пересчитать показания АЦП. Сначала получаем сопротивление: Код (Text): int x = analogRead(A0); float R = R2*(x/512.0); Ну а потом уже из него температуру по таблице.
Здорово. Я не всё понял с первого прочтения, но наверное пойму попозже. Большое спасибо. Как доедет моя посылка - до этого я экспериментировал с чужим оборудованием - буду пробовать.