|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
||||||
Работа с LM35DZ10.01.2014, 16:36. Показов 9842. Ответов 7
Метки нет (Все метки)
Здравствуйте. Пробую считать температуру с аналогового датчика, но контроллер выдаёт какую-то хрень. Почему-то при нагреве датчика, значение ADC10MEM уменьшается, а не наоборот. Что я делаю не так?
В коде, дабы избежать операций с дробными выражениями, привёл формулу у виду temp = (ADC10MEM*35)/100. В итоге дробная часть отбрасывается. Датчик питается от 5В, взятых с usb на ланчпаде. Код
0
|
||||||
| 10.01.2014, 16:36 | |
|
Ответы с готовыми решениями:
7
"Прыгает" температура LM35DZ Работа в игровом проекте. Работа с php. Работа с платежными системами. Работа с базами данных Работа с строками,Работа со структурными типами данных,Работа с файлами!! |
|
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
|
|
| 10.01.2014, 17:42 | |
|
Проверьте вольтметром с входным сопротивлением >1MОм работает ли датчик вообще. Возможно еще стоит добавить RC цепочку ему на выход, ну и дроссель + конденсатор по питанию.
Ну и в коде: - после старта преобразования АЦП, неплохо бы подождать окончания преобразования перед тем как читать ADC10MEM. - _BIS_SR(LPM3_bits + GIE); положить в петлю while(1){}
0
|
|
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 10.01.2014, 17:49 | ||
"int temp" - это 16-тибитное значение со знаком. При умножении на 35 значения, считанного из АЦП, результат не влезает в значащие 15 бит переменной temp и переходит в область отрицательных значений. Поэтому и кажущееся уменьшение при нагреве. Лекарств три - выбирайте любое или примените несколько: 1) unsykned int temp; - расширит область положительных значений вдвое. 2) long temp; - не будет переполнения. 3) в формуле сократите общие сомножители: *7/20 вместо *35/100 . Ну, и то, что яверт посоветовал - тоже всё полезно.
0
|
||
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
|||
| 10.01.2014, 18:41 | |||
|
Ни одна из рекомендаций к сожалению не помогла. RC цепочку только пока не пробовал. Попробовал с другим датчиком - такая же ерунда.
"int temp" - это 16-тибитное значение со знаком. При умножении на 35 значения, считанного из АЦП, результат не влезает в значащие 15 бит переменной temp и переходит в область отрицательных значений. Поэтому и кажущееся уменьшение при нагреве. Лекарств три - выбирайте любое или примените несколько: 1) unsykned int temp; - расширит область положительных значений вдвое. 2) long temp; - не будет переполнения. 3) в формуле сократите общие сомножители: *7/20 вместо *35/100. Всё равно идёт уменьшение значения. Правильно ли у меня настроен АЦП?
0
|
|||
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
||
| 10.01.2014, 20:13 | ||
Но можно сделать эксперимент с другого конца: не замену АЦП на светодиод, а замену LM-ки на пальчиковую батарейку 1.5V . С ней будет проще отладить код АЦП. Добейтесь адекватных показаний, и тогда переходИте с батарейки опять к LM35. З.Ы. Светодиод, надеюсь, через резистор подключали? ;-)
0
|
||
|
omx
|
||||||
| 10.01.2014, 23:01 | ||||||
|
Вы видимо не до конца поняли про ожидание АЦП. Надо так:
|
||||||
|
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 87
|
|
| 18.01.2014, 00:35 | |
|
Дошли наконец руки :) Действительно была проблема во времени, которое я отводил на преобразования АЦП. Большое спасибо за ответы.
0
|
|
|
oykmoshiv
|
|
| 06.02.2014, 21:39 | |
|
Какая получается точность с таким датчиком и в каком диапазоне?
|
|
| 06.02.2014, 21:39 | |
|
Помогаю со студенческими работами здесь
8
Работа - проведение обучающих семинаров по C#. Работа по выходным дням ( сб-вс - 32 часа). От 30 000р. Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления Работа формы в фоне, вне фокуса (работа с раскладкой клавиатуры) Количество подведенного и отведенного тепла, работа сжатия, работа расширения Работа с ems api: корректная работа при указании веса. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|