LM35 термометр

Готовая электроника для самодельного робота. Уровень от начинающих до опытных конструкторов.

LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 11:49

Вначале считаю ацп меги:
p - значение АЦП
z - шаг измерения
Ua - напряжение на АЦП
AREF берется с внутреннего источника (напряжение 2,56В), АЦП 10 битный, тогда:
z = 2.56/1024В = 2,5 мВ
Далее, Ua = p*z.
Ищю Ut - напряжение на термодатчике. Я замерил ток I = 30мкА через датчик.
по закону сохранения заряда:
i1+i2=I
для резистора R2
Ut = i2*R2 => i2 = Ut/R2
нахожу ток ч-з 1 резистор:
i1 = I - Ut/R2
падение напряжения на 1 резисторе:
dU1 = i1*R1 = R1*(I - Ut/R2)
для участка от датчика до ножки:
Ua + dU1 = Ut
Ua + R1*(I - Ut/R2) = Ut
Ut = R2*(Ua + I*R1)/(R1+R2)
вспоминаю что Ua = p*z:
Ut = R2*(p*z + I*R1)/(R1+R2)
вычисляю температуру на датчике:
t = Ut*100
подставляю:
t =( (10^2)*(10^4)/(101*(10^2)) )* (p*2.5*(10^-3) + 3*(10^-5)*(10^2))
t = ( (10^4)/101 ) * (p*2.5*(10^-3) + 3*(10^-3))
t = (25/101)*p + 30/101

И самое интересное - проверяю в реале. получаю бяку :(
внимание вопрос: где я соврал?
Вложения
Shem.JPG
AREF.JPG
AREF.JPG (5.07 КиБ) Просмотров: 4374
LM35.JPG
герой торжества
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение avr123.nm.ru » 14 мар 2009, 12:05

LM35 - питание до 20 вольт и резистор нагрузки наверно 5 ком лучше использовать. А с АЦП разобраться и без датчика можно.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 12:33

дык с ацп на баскоме разобраться в три строки можно :)
вот бы верную температуру получить :)
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение rig » 14 мар 2009, 12:36

что вольтметр на R2 говорит?
яб для начала R1 вобще в расчет не брал.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 13:57

вобщем замерил напряжение между землей и неподключенным датчиком - 283мВ
и между землей и ножкой меги - 276мВ при одинаковой температуре.
считаю что зависимость так и будет сохрняться пропоциональная, поэтому ввожу коэфф-т 0,975
но все-таки хотелось бы узнать где в расчетах ошибка :oops: :oops:
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение rig » 14 мар 2009, 14:03

может для начала на переменнике потренироваться, потом уже и на датчик можно переходить. (Я так начинал) если датчик работает током по температуре то как можно мерить напряжение без нагрузки??? что понимать под словом "неподключенным датчиком" - вывод в воздухе болтается??
для начала нужно получить просто значение на АЦП без пересчета в температуру, дальше совершенствоватсья в усложнениях.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 14:14

да, вывод в воздухе.
датчик реагирует напряжением по температуре.
С ацп проблем нет, в васике три строки.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение rig » 14 мар 2009, 14:27

Если верить ДШ при комнатной 25 гр на выходе ЛМ должно быть около 3х вольт, что значительно больше опорных 2,56. в результате измерения получится значение АЦП 1024.
расшифруй "И самое интересное - проверяю в реале. получаю бяку" в цифрах
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 14:48

это может быть напряжение питания не менее 3В при комнатной?
формула для подсчета температуры: Ut=(10*t) мВ, т.е на каждый градус цельсия прибавка по напряжению на 10мВ.
бяка - у меня при комнатной температуре получалось раньше около 30 градусов.
если ввести коэффт и не заморачиваться с формулами, то около 28, что соотв показаниям датчика.
а ошибка я, кажется, понял в чем - ток не постоянен, а изменяется от температуры, соотвественно падение на резисторе плавает. вот :)
Последний раз редактировалось MiBBiM 16 мар 2009, 16:57, всего редактировалось 1 раз.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение rig » 14 мар 2009, 15:38

питание вродь от 4х до 30 вольт, чтото я недогоняю эти графики.

при минус 55 сколько будет на выходе??
10*(-55)мВ ?,
и при нуле.
10*(0)мВ ?,
с этим датчиком не работал, вопрос чисто для расширения кругозора.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 19:30

такое включение как на картинке в первом посте только для положительных температур(я его использовал).
для всего диапазона включение ниже.
формула для расчета для разных подключений не меняется, у вас верно.
rig писал(а):питание вродь от 4х до 30 вольт, чтото я недогоняю эти графики.

в даташите есть график Minimum Supply Voltage vs. Temperature, определяющий минимальное напряжение питания для измерения конкретных температур
Вложения
123.JPG
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение rig » 14 мар 2009, 19:41

тода и код для будущих поколений, наверняка кто нибудь захочет повторить.
с отрицательными напряжениями это плохо, чтоб МК применить придется ОУ использовать для смещения напряжения в положительную область.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 20:00

код на бейсике:
Код: Выделить всё
'настраиваю ацп, источник питания внутренний, подбробнее см. справку
Config Adc = Single , Prescaler = Auto , Reference = Internal
...
Dim Lword1 As Word      'переменная для хранения значения АЦП
Start Adc               'запускаю измерения
Lword1 = Getadc(2)      'беру значение с АЦП2
Lword2 = Getadc(0)      'беру значение с АЦП0
Stop Adc                'останавливаю АЦП

соотвественно, если использован внутренний источник напряжения на AREF, формула подсчета примет вид:
t = 0.25 * Lword1 градусов Цельсия
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: LM35 термометр

Сообщение EdGull » 14 мар 2009, 20:04

я бы рекоммендовал делать неменее 3 преобразований
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: LM35 термометр

Сообщение MiBBiM » 14 мар 2009, 20:09

да я заметил в вашем коде такую весчь. только какой смысл, если сохраняется значение последнего преобразования?
Последний раз редактировалось MiBBiM 14 мар 2009, 20:33, всего редактировалось 1 раз.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

След.

Вернуться в МиниБот — национальный класс роботов

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7