roboforum.ru

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

Работа с АЦП

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Работа с АЦП

Сообщение Freeman » 21 июл 2008, 13:52

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

Зарание спасибо!
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

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

Сообщение Duhas » 21 июл 2008, 14:28

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

а дальше дело программирования, на асме могу рассказать, на сях увы я не разсказчик...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Freeman » 21 июл 2008, 18:24

Все таки хотелось бы от +5
Именно в программировании и вся проблема... на сях...
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

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

Сообщение EdGull » 21 июл 2008, 18:37

на васике для минибота в вике есть пример замера акб
времени на разрабоку минуты полторы уйдет
но Си это конечно намного круче... :D
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

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>
Аватара пользователя
alegz
 
Сообщения: 63
Зарегистрирован: 01 июн 2008, 08:48
Откуда: Новосибирск
прог. языки: С++, Asm, PHP

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

Сообщение Duhas » 21 июл 2008, 19:35

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

и все-таки лучше от 2.56... думаю ясно почему..
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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);
          }
}





Я правильно понял??? значение записыватся в аа? И где именно указивается с каким портом будет работать АЦП?
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

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

Сообщение Duhas » 22 июл 2008, 11:04

ADMUX... смотреть даташит ....
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Freeman » 23 июл 2008, 01:34

Всем спасибо, все работает!
Аватара пользователя
Freeman
 
Сообщения: 43
Зарегистрирован: 20 янв 2008, 04:28

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

Сообщение D'Ark Trouyan » 06 янв 2009, 12:14

А не поделитесь или не подскажите где схему такого плана можно найти. А то не очень понятен момент с тем как переменный резистор меняет напряжение(он же вроде как ток должен менять). И повторюсь очень интеррисует аппаратное решение этого вопроса, а то уже пару дней ищу пока ничего стоющего не нашел.
vivere militare est
Аватара пользователя
D'Ark Trouyan
 
Сообщения: 76
Зарегистрирован: 21 сен 2006, 22:42
Откуда: М.О.

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

Сообщение RoboTok » 06 янв 2009, 13:27

Вот вам аппаратное решение :oops:
Вложения
Untitled-1.gif
Аватара пользователя
RoboTok
 
Сообщения: 1060
Зарегистрирован: 04 фев 2008, 13:18
Откуда: Москва
прог. языки: PHP

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

Сообщение avr123.nm.ru » 06 янв 2009, 13:55

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

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

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

Основы электроники - КРУПНЫМИ КРАСНЫМИ БУКВАМИ - на страничке http://avr123.nm.ru
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение Master » 06 янв 2009, 15:19

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

Вот так понятно?
Вложения
Резистор.JPG
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

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

Сообщение D'Ark Trouyan » 07 янв 2009, 13:22

хех вполне !!! Спасибо)))
vivere militare est
Аватара пользователя
D'Ark Trouyan
 
Сообщения: 76
Зарегистрирован: 21 сен 2006, 22:42
Откуда: М.О.


Вернуться в Микроконтроллеры

Кто сейчас на конференции

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