Например TDA7294

 Форум РадиоКот • Просмотр темы - Существует ли разница между АЦП в Atmega8A?
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт июн 23, 2017 12:03:15



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 08:59:59 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
Решил собрать устройство измеряющую температуру с помощью двух термопар.
Собрал печатную плату, по следующей схеме:

*Красной линией обвёл часть отвечающую за усиление сигнала с термопар.

Написал код:

*Код отвечающий непосредственно за измерения пометил комментарием: "//+++".

Как видно, обе части отвечающих за измерение температуры построены абсолютно одинаково, как аппаратно, так и программно.
Но значения меряют по разному. Если подышать на термопары, то термопара подключённая к PC0 покажет изменения в температуре, а термопара подключённая к PC2 никак не отреагирует. В теплой воде PC0 показывает температуру примерно на 7 выше, чем PC2. Температуру пара в чайнике показывают одну и туже. Это не просто разница в чувствительности, разница между PC0 и PC2 не стабильно 7 градусов.

*Термопары одинаковые. Менял местами, ничего не изменилось.

В чем может быть проблема?


Последний раз редактировалось Gap Ср июн 14, 2017 11:15:21, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 09:51:29 
Говорящий с текстолитом
Аватар пользователя

Карма: 3
Зарегистрирован: Ср сен 07, 2011 22:40:30
Сообщений: 1524
Рейтинг сообщения: 0
C такой смехатехникой, не удивительно...
Зачем R4 R8 ?
Кто разрешил 358 нагружать на емкость? Почему не нагружен на активное сопротивление?
Кто решил ставить в обратной связи подстроечники?
У тебя там самовозбуд, наверняка...


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

Дешевле уже некуда: всего $2, за 10 ПП размером 10х10см!

Электронные компоненты: Экономия до 50%, бесплатная доставка при одновременном заказе печатной платы и компонентов!

Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 10:22:47 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
Подсмотрел в гугле...)


Ещё тут: http://avrproject.ru/publ/kak_podkljuch ... u/2-1-0-70

Насколько я понимаю R4, R8 с составляющие фильтра. А подстроечные резисторы для калибровки термопары.

А можно по подробнее, как правильно?


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 10:36:41 
Говорящий с текстолитом
Аватар пользователя

Карма: 3
Зарегистрирован: Ср сен 07, 2011 22:40:30
Сообщений: 1524
Рейтинг сообщения: 0
Обрати внимание на последнюю картинку-схему. Она самая грамотная, так как является вольной переделкой весьма продуманной схемы от аналог девайсес.
Там хоть и поставили подстроечник, но при этом избавились от возбуда, добавив конденсатор в ОС. R9 там является частью схемы усилителя, а не просто последовательным резистором.
А 358 нагрузи 10 кОм.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 10:42:59 
Поставщик валерьянки для Кота

Карма: 12
Зарегистрирован: Вт ноя 27, 2007 12:32:06
Сообщений: 2065
Откуда: Tashkent
Рейтинг сообщения: 0
1. При однополярном питании на входы + ОУ принято подавать некоторое напряжение смещения. После усиления это напряжение вычитают.
2. Перед чтением результата АЦП
data = ADCW; //+++
рекомендуется подождать флага готовности. АЦП - штука медленная и не выдаёт ответ сразу.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 11:14:27 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
Ради интереса... провёл эксперимент. Налил в кружку кипяток и каждые 30 секунд мерял температуру. Построил график:

*Температура приведена без компенсации холодного спая.

Добавлено after 16 minutes 52 seconds:
Flasher, спасибо за указание правильного направления. Но, обвязка неправильная как на PC0, так и на PC2, тогда почему измерения разные?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 11:55:09 
Грызет канифоль

Карма: 12
Зарегистрирован: Ср июн 08, 2011 21:25:20
Сообщений: 299
Рейтинг сообщения: 0
В чем может быть проблема?
Отсоединить один выход LM358. Соединить PC0 и PC2 вместе. Определитесь камень или аналоговая часть. Можно в принципе и цешкой замерить на выходах LM358. АЦП работает в диапазоне до 100ед.....???


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 13:03:12 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
uk8amk, добавил флаг готовности следующим образом:
Код:
while(ADCSRA != 0x95){}
data = ADCW;
ADCSRA |= 0x10;

Ничего не изменилось.

Добавлено after 1 hour 4 minutes 22 seconds:
bob1, отсоединил один выход LM385, которая идет к PC2. И соединил на Atmega8A PC0 и PC2. Разница есть, причем чем выше температура, тем выше разница. При измерении температуры пара в чайнике, разница в 13 градусов. Причем PC0 < PC2.

P.s. Забыл сказать. Прежде, когда PC0 не было соединено c PC1. Я, когда мерял температуру пара, с помощью подстроечных резисторов настроил термопары так, что б они показывали одинаковую температуру. Возможно именно поэтому на графике в моей предыдущем сообщении, чем ниже температура, тем выше разница.

P.s.s. Сейчас вспомнил... Достаточно давно, я случайно сделал КЗ на этом микроконтроллере (подключил AREF и AVCC к земле), которое заметил, только после того как он раскалился. Возможно здесь собака и зарыта. К сожалению на данный момент не имею другого кристалла для проверки.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 19:54:13 
Держит паяльник хвостом
Аватар пользователя

Карма: 8
Зарегистрирован: Чт июн 10, 2010 21:11:19
Сообщений: 943
Рейтинг сообщения: 0
Код ужасен. Динамическую индикацию обычно делают на прерывании таймера либо в бесконечном цикле с низкой частотой (порядка 200-1000 Гц), делать как у вас сейчас - нарываться на неодинаковую яркость сегментов, гашение первых и засветы. Для выбора комбинации диодов для каждой цифры заводят массив констант, из которого выбирают по индексу. Также и с разрядами. Отдельные биты стоит оборачивать в макросы чтобы было удобно изменять если что:
Код:
#define SEG_A (1<<0)
#define SEG_B (1<<4)
#define SEG_C (1<<7)
...
#define SEG_PORT PORTA
const uint8_t segs[] = {
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, //0
  SEG_B | SEG_C, //1
  SEG_A | SEG_B | SEG_D | SEG_E | SEG_G,
...
};
#define DIGIT_1 (1<<0)
#define DIGIT_2 (1<<1)
#define DIGIT_3 (1<<5)
const uint8_t digits[3] = {DIGIT_1, DIGIT_2, DIGIT_3};
#define DIGIT_PORT PORTB

uint8_t videobuf[3] = {0,0,0};

ISR( TIMER0_OVF_vect){
  static uint8_t digit = 0;
  SEG_PORT = 0;
  DIGIT_PORT |= digits[ digit ];
  digit++;
  if(digit > 3)digit = 0;
  DIGIT_PORT &=~ digits[ digit ];
  SEG_PORT |= videobuf[ digit ];
}

void display_int(uint8_t x){
  videobuf[0] = x % 10;
  x /= 10;
  videobuf[1] = x % 10;
  videobuf[2] = x / 10;
}
примерно так. Писал из головы, только чтобы общая идея была понятна. Тут - полноценная реализация.


Цитата:
ADMUX = 0x42; //+++
ADCSRA |= 0x40; //+++
data = ADCW;
Почему не дожидаетесь окончания преобразования?
У вас вроде еще PC1 свободен, что если подключить его в параллель к PC0 или PC2 - может он более линеен? Соединять AREF с VCC - плохая идея.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Ср июн 14, 2017 20:30:29 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
COKPOWEHEU, спасибо за наводку по индикации.
К PC1 у меня подключён терморезистор, который измеряет температуру помещения для компенсации холодного спая.
В одном из моих предыдущих комментариев, добавил в код ожидание окончания преобразования.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Пт июн 16, 2017 17:14:32 
Открыл глаза
Аватар пользователя

Зарегистрирован: Ср дек 16, 2015 00:13:32
Сообщений: 53
Рейтинг сообщения: 0
Короче говоря... Поставил другую Atmega8A, разница в измерениях осталась, как PC0 показывал меньше PC2 так и показывает... и тут я в панике вспоминаю код... вспоминаю следующие строки:
Код:
Real_Temperature = data*0.0048828*170;     //+++
Real_Temperature = data*0.0048828*200;    //+++

Температуру на PC0 я рассчитывал по одной формуле, а на PC2 по другой)
В общем одинаковые значения показывают АЦП PC0 и PC2. Значит ошибка где то в аналоговой части.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Вс июн 18, 2017 08:50:21 
Грызет канифоль

Карма: 3
Зарегистрирован: Ср июн 25, 2008 16:19:44
Сообщений: 281
Рейтинг сообщения: 0
Динамическая индикация реализуется и в основном цикле. Если итерация основного цикла выполняется с запасом по значению времени системного тика.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Вс июн 18, 2017 19:24:55 
Держит паяльник хвостом
Аватар пользователя

Карма: 8
Зарегистрирован: Чт июн 10, 2010 21:11:19
Сообщений: 943
Рейтинг сообщения: 0
Можно и в основном цикле. Главное чтобы за одну итерацию обрабатывалось не более одного разряда. Тем более что требования к точности временных интервалов там минимальны.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Существует ли разница между АЦП в Atmega8A?
СообщениеДобавлено: Пн июн 19, 2017 05:31:53 
Грызет канифоль

Карма: 3
Зарегистрирован: Ср июн 25, 2008 16:19:44
Сообщений: 281
Рейтинг сообщения: 0
Главное чтобы за одну итерацию обрабатывалось не более одного разряда.

Пффф. Дык этта... Флаги или программные таймеры. И точность обеспечена. Плюс-минус десяток-другой мкс в расчет не берем.

Добавлено after 9 hours 42 minutes 11 seconds:
Кстати, жареный мк лучше либо выбросить, либо отказаться от ацп.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y