реклама на сайте
подробности

 
 
> Mega8535 + TMP37
Metallist64
сообщение Jul 29 2008, 14:33
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 29-01-08
Пользователь №: 34 558



Здравствуйте!
Подскажите пожалуйста, кто подключал датчики TMP37 на Мегу???
Всего датчиков - 4.
У меня проблема с подключением датчиков (схеме внизу).
1. Без датчиков в результате преобразования имею мусор.
2. Полученное значение всегда разное от 50-350 ??? даже при усреднении.

Может я неправильно входы переклачаю?
ставлю задержку 1мс.

Вот сама функция:

void adc_result (p_menu p_item_name)
{
unsigned char i;
unsigned char channel = 0;
unsigned int result = 0;
while (channel < 4)
{
if(channel == 0) ADMUX = 0b11000000;
if(channel == 1) ADMUX = 0b11000001;
if(channel == 2) ADMUX = 0b11000010;
if(channel == 3) ADMUX = 0b11000011;

delay_ms(1); //задержка 1мс для гарантированного переключения входа мультиплекстора


for (i=0;i<20;i++) // цикл для 20 ти преобразований.
{
ADCSRA.6 = 1; // начало проеобразования

while(ADCSRA.6); // ждем конца преобразования

result += ADCW; // записываем значение
}
p_item_name[channel]->adc = (result / 20) ; // записать среднего от 20ти преобраз-й в p_item_name[index]->adc
channel ++; // перейти к следующему каналу
}};



Помогите пожалуйста. Как получить нормальные показания???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sKWO
сообщение Jul 29 2008, 15:06
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530



Цитата(Metallist64 @ Jul 29 2008, 17:33) *
Помогите пожалуйста. Как получить нормальные показания???

попробуйте задерку поставить здесь
Код
for (i=0;i<20;i++) // цикл для 20 ти преобразований.
{
ADCSRA.6 = 1; // начало проеобразования
while(ADCSRA.6); // ждем конца преобразования
result += ADCW; // записываем значение
delay_ms(1);
}

таким образом Вы дадите время на перезаряд ёмкости АЦП, если конечно в этом проблема.
и ещё, как показывает практика достаточно восьми измеряных значений, что даст возможность заменить
деление сдвигом.


--------------------
нельзя недооценивать предсказуемость глупости
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jul 29 2008, 15:46
Сообщение #3


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Запускайте АЦП по таймеру или в режиме свободного преобразования, температура довольно медленно меняется, поэтому так часто мерять ее нет никаго практического значения.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016