Страница 1 из 1

АЦП криво работает..

Добавлено: Вс окт 30, 2011 01:16:15
AVT-28
Делаю вот так..

Код: Выделить всё

#include <pic.h>	// Include header file for MCU
#include <lcd887.h>	// Include Library for LCD display
__CONFIG(HS & WDTDIS & LVPDIS);	// Config. High speed clock,Disable watchdog and Disable LVP
void main()
{
int resh;
int resl;
    int maxadc;
	int adc=0;		// Keep ADC value
	TRISA2 = 1;		// Set RA2 input mode
	ANS2 = 1;		// Set RA2 analog port
	ADCON0 = 0b11001001;	// Select RC Mode,ANS2 active,ADON=1
	lcd_init();		// Initial LCD
	lcd_puts(0x80,"ADC(RA2)=");	// Show message at line 1
	while(1)		// Infinite loop
	{
		GODONE = 1;		// Start conversion
		while(GODONE);	// Wait until conversion success
		adc = (ADRESH<<2)+(ADRESL>>6); 	 // Get ADC value
        
        	lcd_puts(0x89,"    ");	// Clear old value
		inttolcd(0x89,ADC);	// Update new value
		delay(100);		// Delay a few time for display
	}
}
Подключаю резюк переменный и начинаю крутить. Останавливаюсь.
Цифры скачат в пределах 50-70. Нестабильные значения.
Вольтметром измеряю напряжение например ровно 3.25 вольт. Никуда не скачет. Цифры как мертвые стоят. В на дисплее дерготня в приличном диапазоне. 50-70 это слишком.
Никакого вольтметра не построишь на таких глюках.
Я оцифровываю датчик давления, думал датчик сперва такое выдает. А как подал фиксированное значение так все так и глючит.
Может кто подскажет как сделать грамотно АЦП?

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 01:51:33
Flasher
поставь кондер между входом ацп и землей в 0,1 мкФ

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 01:59:53
AVT-28
Да я уже и питание все передергал и конденсаторы куда тока не ставил и 0.1 и 1000 и до кренки и после кренки 2200 и все одна и та же дерготня.
Ведь если делают вольтметры с успехом которые измеряют сотые вольта и ничего там не колбасит значит что то у меня не то. Или код кривой или еще что то.

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 02:14:08
AVT-28
Разобрался в причине.
И что с этим делать не знаю. 16f887
Сигнал аналоговый на оцифровку заходит на ногу RA0.
На ногу RB0 заходит тахосигнал с кулера. То есть там чистый прямоугольник с амплитудой 5 вольт и частотой от 36 герц до 100 герц.
Вот если вентилятор крутится и туда в порт что то жужжит с этой частотой то АЦП начинает дергаться. Тахо снимаешь с RA0 и все идеально!
Как бороться с этим?? У меня кулер управляется шимом и контроллер меряет обороты вентилятора. В зависимости от температуры обороты меняются.
И защита по оборотам вентилятора, если ниже определенных то срабатывает защита.

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 02:40:54
Flasher
Еще раз повторюсь- ставь конденсатор куда сказал и не выдумывай.

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 03:50:58
AVT-28
Яж чего писал то вверху. Ставил. Не помогает. Начал с 0.1 как сказали и закончил 2200 по всякому разному питанию всего чего попало. Все кондеями обвешал и толку ноль.
Яж писал это кулер такие заморочки дает. Не уже ли внутрепиковые наводки?

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 08:58:07
eygen
Схемку давай, и куда лепишь кондюк. Такое ощущение не туда его лепишь :)

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 12:16:55
BerZerK-ku
Выше написано было поставить кондер на вход АЦП, а не по питанию.
Еще можно сделать программное усреднение.
На счет кондеров по питанию, их надо ставить не только до/после кренки, но и возле каждого входа питания микроконтроллера, по возможности как можно ближе + должна быть хорошая земля.

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 12:36:30
Flasher
AVT-28 писал(а):Не уже ли внутрепиковые наводки?
Вот так и рождаются легенды. Просто из-за того, что люди совершенно не понимают сущность происходящих процессов, занимаясь простым копированием схем и кусков кода.

Re: АЦП криво работает..

Добавлено: Вс окт 30, 2011 16:14:43
YS
Сигнал аналоговый на оцифровку заходит на ногу RA0.
На ногу RB0 заходит тахосигнал с кулера. То есть там чистый прямоугольник с амплитудой 5 вольт и частотой от 36 герц до 100 герц.
1. Фильтровать питание. 0.1мкФ как можно ближе к корпусу обязательно.
2. Разделить цифровую и аналоговую землю.
3. Фильтровать опору АЦП.
4. Кондер на вход АЦП на аналоговую землю.
5. Желателен дроссель по питанию.