Меряем напряжение с помощью АЦП ATMEGA-8
Меряем напряжение с помощью АЦП ATMEGA-8
Уважаемые форумчане, возникла такая задача. Необходимо замерять напряжение на 2-х клеймах генератора или сельсина, напряжение меняется от 0-100В, причем в зависимости от направления вращения меняется соответственно полярность питания. Предполагается использовать МК ATMEGA-8. Так же необходим удаленный контроль с компа, куда соответственно будут поступать данные, для этого предполагается использовать микросхему FT232RL для связи МК по USART и для подключения к USB порту.
Ничего не приходит на ум как сделать входное устройство с делителем напряжения, т.к. меняется полярность напряжения, посоветуйте у кого есть какие соображения по этому поводу!!
Ничего не приходит на ум как сделать входное устройство с делителем напряжения, т.к. меняется полярность напряжения, посоветуйте у кого есть какие соображения по этому поводу!!
Re: Меряем напряжение с помощью АЦП ATMEGA-8
А зачем лишнее звено - FT232RL?Smokeman писал(а):Предполагается использовать МК ATMEGA-8...
...предполагается использовать микросхему FT232RL для связи МК по USART и для подключения к USB порту.
На ATMEGA-8 можно реализовать софтовую поддержку USB.
Re: Меряем напряжение с помощью АЦП ATMEGA-8
PB_EXPERT писал(а):А зачем лишнее звено - FT232RL?Smokeman писал(а):Предполагается использовать МК ATMEGA-8...
...предполагается использовать микросхему FT232RL для связи МК по USART и для подключения к USB порту.
На ATMEGA-8 можно реализовать софтовую поддержку USB.
Каким образом?
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Например, таким http://mcselec.com/index.php?option=com ... &Itemid=57Smokeman писал(а):Каким образом?
В устройствах использован обычный ATmega8, который непосредственно подключается к USB
Вот аналогичный пример на Русском http://purebasic.mybb.ru/viewtopic.php?id=46
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Smokeman писал(а): причем в зависимости от направления вращения меняется соответственно полярность питания.
клемы генератора -> делитель -> mega8 -> USB -> Комп
Интересно, что сгорит раньше?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
-
of_silence
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 08, 2010 09:33:42
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Интересно, что сгорит раньше?
Поддерживаю. гальваническая развязка не помешает. Если развязывать, я бы делал на генератор - делитель - контроллер самый дохлый - опторазвязка - FT232 - USB
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Вот набросал примерную схемку, подскажите как тут сделать гальваническую развязку.
-
of_silence
- Открыл глаза
- Сообщения: 79
- Зарегистрирован: Сб май 08, 2010 09:33:42
Re: Меряем напряжение с помощью АЦП ATMEGA-8
между мегой и FT232 воткнуть по оптопаре туда и обратно. Земли и питания по левой и правой части схемы должны быть отдельные.
Re: Меряем напряжение с помощью АЦП ATMEGA-8
of_silence писал(а):между мегой и FT232 воткнуть по оптопаре туда и обратно. Земли и питания по левой и правой части схемы должны быть отдельные.
Питание FT232 я так понимаю будет от USB, на МЕГУ отдельное. Если есть какие-нибудь наброски относительно развязки, выложите плиз!
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Вот набросал схемку с развязкой на оптронах H11L1.
- vitecd
- Родился
- Сообщения: 14
- Зарегистрирован: Вт ноя 27, 2007 23:31:32
- Откуда: Auckland
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
чот мне кажется, резистивный делитель при 0-100в это не очень хорошо... у меня на 15В уже нелинейная характеристика получается... хотя тут всего 1/3 делитель. а вот 100в просимулировать бы в excell для начала 
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
А поставить трансформатор (400Гц как понимаю раз сельсин) понижающий напряжение со 100В до 2...2,5В и привязать один из выводов к середине диапазона (те же 2,5В) нельзя?
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- Харизмат
- Родился
- Сообщения: 16
- Зарегистрирован: Пн апр 26, 2010 15:00:53
- Откуда: Киев
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Товарищи, коты. Можно ли как-нибудь мерить напряжение питания контроллера его собственным АЦП? Необходимо сделать мониторинг питания, чтобы в случае разрядки подать сигнла о необходимости заряда батареи.
благодарю!
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Харизмат писал(а):Товарищи, коты. Можно ли как-нибудь мерить напряжение питания контроллера его собственным АЦП? Необходимо сделать мониторинг питания, чтобы в случае разрядки подать сигнла о необходимости заряда батареи.благодарю!
Вообще никаких проблем.
Причем есть кача вариантов с выбором опорного напряжения.
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Вот и мне интересно как запрограммировать АЦП на Меге8. Как раз хочу небольшой лабораторный блок питания забацать. Программы писать умею, но с АЦП первый раз сталкиваюсь.
Нашёл в Инете вот это: http://my-avr.at.ua/publ/1-1-0-15, но комментариев к данному проекту фиг да нифига. Может кто-нибудь сможет дать комментарии, а?
Нашёл в Инете вот это: http://my-avr.at.ua/publ/1-1-0-15, но комментариев к данному проекту фиг да нифига. Может кто-нибудь сможет дать комментарии, а?
Даже у стен есть уши...
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
мда...
А почитать ДШ, книжки там разные умные, это никак...
Ну как же, супер программисту, программирующему на Си с помощью матеров СV, книжки-то читать, не по рангу.
просто жесть куда мы кОтимся
А почитать ДШ, книжки там разные умные, это никак...
Ну как же, супер программисту, программирующему на Си с помощью матеров СV, книжки-то читать, не по рангу.
просто жесть куда мы кОтимся
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Меряем напряжение с помощью АЦП ATMEGA-8
И читаем и учимся! И чем плох CVAVR? Может у меня времени нету АСМ выучить! Программлю на СИ, что знаю очень хорошо! А мне бы вот для интереса узнать что делает это прерывание? опишите строчки помеченные вопросиком...
Код: Выделить всё
interrupt [ADC_INT] void adc_isr(void) //стандартное прерывание по ADC от CVAVR
{
static unsigned char input_index=0;
adc_data[input_index]=ADCH; //?
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)) //?
input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index; //?
delay_us(10); //задержка перед началом преобразования
ADCSRA|=0x40; //старт АЦП
Даже у стен есть уши...
- zhu4er
- Вымогатель припоя
- Сообщения: 544
- Зарегистрирован: Пт июн 04, 2010 17:40:13
- Откуда: Непокорный город-герой Севастополь
Re: Меряем напряжение с помощью АЦП ATMEGA-8
кое что просветила книженция "CVAVR пособие для начинающих" будем ковырять АЦП дальше
Даже у стен есть уши...
Re: Меряем напряжение с помощью АЦП ATMEGA-8
zhu4er писал(а):И чем плох CVAVR?
CVAVR плох тем, что тамошним мастером пользуются люди, не способные без него написать этот же код. И как следствие, не понимающие, что код, сгенерённый мастером делает.
Например из всех строк, которые ты привёл на самом деле тебе нужна только
zhu4er писал(а):ADCSRA|=0x40; //старт АЦП
И то читабельность у такого кода нулевая - биты в регистрах очень желательно указывать по именам: ADCSRA|=(1<<ADSC);
Возможно ещё нужны строки
zhu4er писал(а):interrupt [ADC_INT] void adc_isr(void) //стандартное прерывание по ADC от CVAVR
{
но вполне возможно можно обойтись и без них.
Так что для начала всё таки стоит почитать даташит http://www.atmel.com/dyn/resources/prod ... oc2486.pdf или его перевод http://www.gaw.ru/html.cgi/txt/doc/micr ... /index.htm (ATMega8 и ATMega128 весьма похожи, но всё таки не забывай поглядывать в даташит, мало ли чем они отличаются).
Вкратце, сначала нужно включить и инициализовать основные настройки АЦП(частота, наличие прерывания, режим постоянной работы, если он нужен) в регистре ADCSRA(а в более новых контроллерах есть ещё ADCSRB), после чего выставить в ADMUX нужный канал и вход опорного напряжения(обрати внимание, что после некоторых изменений этих настроек АЦП в течение некоторого времени будет измерять непойми что, так что сделанные в это время измерения использовать нельзя) и запустить АЦП флагом ADSC(та самая единственная нужная строка, про которую я писал выше) и затем когда он закончит работу и выставит флаг ADIF прочитать результат из ADCL и ADCH(читать их обязательно нужно именно в таком порядке).
- Харизмат
- Родился
- Сообщения: 16
- Зарегистрирован: Пн апр 26, 2010 15:00:53
- Откуда: Киев
- Контактная информация:
Re: Меряем напряжение с помощью АЦП ATMEGA-8
Murav писал(а):Вкратце, сначала нужно включить и инициализовать основные настройки АЦП(частота, наличие прерывания, режим постоянной работы, если он нужен) в регистре ADCSRA(а в более новых контроллерах есть ещё ADCSRB), после чего выставить в ADMUX нужный канал и вход опорного напряжения(обрати внимание, что после некоторых изменений этих настроек АЦП в течение некоторого времени будет измерять непойми что, так что сделанные в это время измерения использовать нельзя) и запустить АЦП флагом ADSC(та самая единственная нужная строка, про которую я писал выше) и затем когда он закончит работу и выставит флаг ADIF прочитать результат из ADCL и ADCH(читать их обязательно нужно именно в таком порядке).
Ценная информация, особенно для тех, у кого с английским пока туго! Спасибо.
Последний раз редактировалось Харизмат Ср окт 06, 2010 12:20:30, всего редактировалось 1 раз.
