[решено] Проблема с экспериментом 15 (Комнатный термометр) в Матрёшка Z. Формула для термистора.

Тема в разделе "Arduino & Shields", создана пользователем altex, 27 июл 2014.

  1. ALev

    ALev Гик

    altex, к сожалению, в «Конспекте хакера» мы вынуждены прибегать даже к ещё бо́льшим упрощениям (например, говоря, что ток втекает в коллектор транзистора и вытекает из эммитера). Дело в том, что «конспект» должен быть настолько упрощён, насколько это возможно для использования его в наборах «Матрёшка». А в этих наборах других термисторов и других резисторов не предусмотрено. И транзисторы там только NPN-типа.

    Если вам такие числа «с потолка» претят - это просто означает, что вы относитесь к той немногочисленной группе потребителей «Матрёшек», для которых этот набор слишком прост. Вы уже немного старше. Не будем же мы требовать полной строгости от учебника биологии первого класса - там упрощения необходимы. Воспринимайте наш набор, как набор для своего рода «первоклассников».

    В любом случае спасибо за советы. Мы их обязательно принимаем и учитываем.
     
  2. lerik2703

    lerik2703 Гик

    сточки зрения универсальности расчета все верно ,а вот быстродействие из а этого страдает ,лишний расчет занимает у процессора время ,тем более с плавающей точкой! поэтому некоторые моменты лучше решать аппаратно.
     
  3. ALev

    ALev Гик

    Статья в Вике поправлена.
     
  4. lerik2703

    lerik2703 Гик

  5. ALev

    ALev Гик

    Спасибо за подсказу, и этот пример поправил.
     
  6. vitek73

    vitek73 Нуб

    странно, почемуто в 15 эксперементе нет ссылки на math.h,
    или это типа задание такое, напишите библиотеку сами,
    если я ошибаюсь, то можно ссылочку увидеть?
     
  7. altex

    altex Гик

    C:\Program Files (x86)\Arduino\hardware\tools\avr\avr\include\math.h
     
  8. RinatM

    RinatM Нуб

    скажите зачем вы называете переменную voltage http://wiki.amperka.ru/конспект-arduino:метеостанция:
    Код (Text):
    float voltage = analogRead(A0) * VIN / 1024.0;
    по моему это не напряжение, а сопротивление R_T (вычисленное на основе текущего аналогового значения напряжения) или я ошибаюсь?
    по крайней мере, в формуле фигурирует сопротивление, а не напряжение:
    [​IMG]

    или вы выразили сопротивление через напряжение согласно Закону Ома:
    Rt = Ut/I, R25c=U25c/I => Rt/R25c = (Ut/I) / (U25c/I) = Ut/U25c ?
     
    Последнее редактирование: 21 июн 2015
  9. altex

    altex Гик

    analogRead(аналоговый_вход_датчика) = Vдатчика / Vопорное

    1) analogRead(A0) - возвращает int от 0 до 1023 - это отношение напряжения с датчика (от 0 до +5 В) к опорному напряжению (+5В)
    2) analogRead(A0) / 1023. - это тоже самое отношение, но в форме float от 0.0 до 1.0, тоже безразмерная величина
    3) analogRead(A0) / 1023. * Vin - это напряжение, которое снимается с датчика.

    Сопротивление там никто не рассчитывает, оно и не нужно, нужно только рассчитать отношение сопротивлений, а оно равно отношению напряжений, так как сопротивление пропорционально напряжению.
     
  10. RinatM

    RinatM Нуб

    Благодарю за развернутый ответ, собственно про отношение напряжений я и сказал в конце своего предыдущего сообщения.
    Скажите, а если вдруг потребуется вычислить именно сопротивление, какой ток выдает Arduino Uno?
     
  11. Senna

    Senna Нуб

    Добрый день! Подскажите, пож-та в этом примере можно вместо световой индикации выводить реальные показания температуры?
     
  12. vvr

    vvr Инженерище

    точности никакой не будет:(
     
  13. RinatM

    RinatM Нуб

  14. Alex Chiga

    Alex Chiga Нуб

    А почему в экспериментах 15 и 16 по разному считается voltage?
    Код (Text):
    //эксперимент 16
    float voltage = analogRead(A0) * VIN / 1024.0;

    //эксперимент 15
    float voltage = analogRead(A0) * VIN / 1023.0;
    Видимо, должно быть везде 1023.
     
  15. Poliana

    Poliana Нуб