roboforum.ru

Технический форум по робототехнике.

Работа с АЦП

Работа с АЦП

Freeman » 21 июл 2008, 13:52

Помогите пожалуйста научится работать с АЦП (ПРОГРАММНО!)... Начал заниматся МК я совсем недвно, тут передо мной стала задача:
Нужно замерять напряжение от 0 до +5(питание). Результат нужно складывать в любую переменную...
...и каково время переобразования, т.к. задача состоит в следующем: нужно регулировать скорость нарастания яркости светодиода(цыкл+ШИМ), подключенным ко входу АЦП переменным резистором, между +5 и 0. время(значение снятое с АЦП) должно быть в пределах от 1мс и выше...
Пишу в Код вижн АВР под мегу8

Зарание спасибо!

Re: Работа с АЦП

Duhas » 21 июл 2008, 14:28

для начала лучше взять верхний предел в 2.56 вольта. настроив внутреннее опорное напряжение, повесив на ногу AREF кондер нан этак 100 и туда же зацепившись 1 из выводов переменника...

а дальше дело программирования, на асме могу рассказать, на сях увы я не разсказчик...

Re: Работа с АЦП

Freeman » 21 июл 2008, 18:24

Все таки хотелось бы от +5
Именно в программировании и вся проблема... на сях...

Re: Работа с АЦП

EdGull » 21 июл 2008, 18:37

на васике для минибота в вике есть пример замера акб
времени на разрабоку минуты полторы уйдет
но Си это конечно намного круче... :D

Re: Работа с АЦП

alegz » 21 июл 2008, 19:04

а в чем собственно говоря проблема?


Код: Выделить всёРазвернуть
int     adc_complete;
int     adc_result;
               
interrupt [ADC_INT] void adc_isr() {
        adc_result = ADCW;
        adc_complete = TRUE;       
}

void main() {
         .....
        ADCSRA = 0b10001011;
        ADMUX = 0b00000000;
       
        // Global enable interrupts
        #asm("sei")     
}


замеры делать так:
Код: Выделить всёРазвернуть
        adc_complete = FALSE;
        // запускаем АЦП
        ADCSRA |= 0x40;               
        // ждем завершения
        while(!adc_complete);

в adc_result будет результат

Не забываем тег CODE!
<Digit>

Re: Работа с АЦП

Duhas » 21 июл 2008, 19:35

и с ацп время снять невыйдет, просто сразу данные с ацп кидать в таймер для ШИМ...

и все-таки лучше от 2.56... думаю ясно почему..

Re: Работа с АЦП

Freeman » 22 июл 2008, 01:48

Спасибо, сейчас буду пробывать..
2,56 ясно почему... а вот где именно указивается порт с которого будет сниматся переобразование?

Добавлено спустя 3 часа 45 минут 33 секунды:
Код: Выделить всёРазвернуть
#define ADC_VREF_TYPE 0x60    
int     adc_result, aa;
               
interrupt [ADC_INT] void adc_isr()
{
        delay_ms(20);
        adc_result = ADCW;   
        ADCSRA|=0x40;
}
void main(void)
{
       
// ADC initialization
// ADC Clock frequency: 31,250 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x8E;
SFIOR&=0xEF;

          while(1)
          {
                ADCSRA|=0x40; 
                aa=ADCH;
                delay_ms(20);
          }
}





Я правильно понял??? значение записыватся в аа? И где именно указивается с каким портом будет работать АЦП?

Re: Работа с АЦП

Duhas » 22 июл 2008, 11:04

ADMUX... смотреть даташит ....

Re: Работа с АЦП

Freeman » 23 июл 2008, 01:34

Всем спасибо, все работает!

Re: Работа с АЦП

D'Ark Trouyan » 06 янв 2009, 12:14

А не поделитесь или не подскажите где схему такого плана можно найти. А то не очень понятен момент с тем как переменный резистор меняет напряжение(он же вроде как ток должен менять). И повторюсь очень интеррисует аппаратное решение этого вопроса, а то уже пару дней ищу пока ничего стоющего не нашел.

Re: Работа с АЦП

RoboTok » 06 янв 2009, 13:27

Вот вам аппаратное решение :oops:
Вложения
Untitled-1.gif

Re: Работа с АЦП

avr123.nm.ru » 06 янв 2009, 13:55

Freeman писал(а):Помогите пожалуйста научится работать с АЦП (ПРОГРАММНО!)... Начал заниматся МК я совсем недвно

Задача-упражнение 9 и 11 - http://avr123.nm.ru/06.htm

D'Ark Trouyan писал(а): не очень понятен момент с тем как переменный резистор меняет напряжение

Основы электроники - КРУПНЫМИ КРАСНЫМИ БУКВАМИ - на страничке http://avr123.nm.ru

Re: Работа с АЦП

Master » 06 янв 2009, 15:19

D'Ark Trouyan писал(а):А не поделитесь или не подскажите где схему такого плана можно найти. А то не очень понятен момент с тем как переменный резистор меняет напряжение(он же вроде как ток должен менять). И повторюсь очень интеррисует аппаратное решение этого вопроса, а то уже пару дней ищу пока ничего стоющего не нашел.

Вот так понятно?
Вложения
Резистор.JPG

Re: Работа с АЦП

D'Ark Trouyan » 07 янв 2009, 13:22

хех вполне !!! Спасибо)))


Rambler\'s Top100 Mail.ru counter