roboforum.ru

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

Atmega16a и АЦП

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

Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 03:18

в CodeVisionAVR через коде визард вставил порт С на out и включитл ацп получил сгенерированый код получения данных с ацп функцией
Код: Выделить всёРазвернуть
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
.....
void main(void){
...
while(1){
PORTC = read_adc(0);
}
}

порт C увешал светодиодами
от регулируемого источника питания подаю напряжение на GND и PA0 , мультиметр показывает 1.6 вольта. подключил к мк, все светодиоды загорелись и мк завис. попробовал напряжение подать через сопротивление 1кОм, все ок, меняю напряжение, диоды меняются, одно но сопротивление перегревается. и не совсем понятно как теперь по этим светодиодам определить какое напряжение.
когда подаю 1.6в загораются первые 4 светодиода, т.е. 0b00001111 , подаю 20в загораются 0b00111111, причем первые 3 мигают как сумасшедшие. может я что делаю не так? или так и должно быть ?
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение Michael_K » 07 мар 2011, 04:04

Смущают фразы "порт С увешал светодиодами", "сопротивление 1кОм перегревается" и "подаю 20 вольт".
Схему в студию.

По-моему, у вас что-то "в консерватории" не хватает.
И да, конечно, вы что-то делаете не так :)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Atmega16a и АЦП

Сообщение avr123.nm.ru » 07 мар 2011, 13:34

на С жтаг еще.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 16:52

Michael_K писал(а):Смущают фразы "порт С увешал светодиодами", "сопротивление 1кОм перегревается" и "подаю 20 вольт".
Схему в студию.

По-моему, у вас что-то "в консерватории" не хватает.
И да, конечно, вы что-то делаете не так :)

Image1.png

вот если без резистора то мк зависает сразу. (светодиоды на порту С загораются все и больше рекции от мк нет, пока питание не отключишь)
с резистором
Image2.png

работает мк так как описал в первом посте
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение =DeaD= » 07 мар 2011, 16:53

Надо не через резистор подавать, а через резисторный делитель напряжения, если хотите измерять напряжение выше уровня питания контроллера.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Atmega16a и АЦП

Сообщение Michael_K » 07 мар 2011, 17:05

млин, откуда вы такие беретесь?
- каждому светодиоду поставить последовательно резистор в один килоом.
- резисторный делитель на ногу pa0, так чтобы напряжение на АЦП никогда не превышало AREF.
Ну и конденсаторы бы что ли на питание хотя бы повесили... для красоты.

Вы наугад что ли схемы собираете...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 17:09

=DeaD= писал(а):Надо не через резистор подавать, а через резисторный делитель напряжения, если хотите измерять напряжение выше уровня питания контроллера.

предположим я не хочу выше уровня питания мк, просто замерить какое напряжение от источника, скажем на регулируемом источнике питания я выставлю 2.5 в (замерив мультиметром), тогда так подключить к мк ? ведь на прямую без резистора при 1.6 в мк вешается

Добавлено спустя 1 минуту 35 секунд:
Michael_K писал(а):млин, откуда вы такие беретесь?
- каждому светодиоду поставить последовательно резистор в один килоом.
- резисторный делитель на ногу pa0, так чтобы напряжение на АЦП никогда не превышало AREF.
Ну и конденсаторы бы что ли на питание хотя бы повесили... для красоты.

Вы наугад что ли схемы собираете...

резисторы на светодиодах навешаны, просто лень было в программе их ставить.
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение Michael_K » 07 мар 2011, 17:10

если не превышаете, то можно подавать без резистора.
а вот светодиоды без резистора низзя.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 17:43

Michael_K писал(а):если не превышаете, то можно подавать без резистора.
а вот светодиоды без резистора низзя.

так без резистора мк виснет :(
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение avr123.nm.ru » 07 мар 2011, 17:53

NEOSoftWare писал(а):просто замерить какое напряжение от источника
АЦП AVR www.proavr.narod.ru/z11.htm и www.proavr.narod.ru/z09b.htm
Даташит AVR на русском языке - www.proavr.narod.ru/02.htm
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 22:11

спасибо, почитал, все заработало, но возникла такая проблема мк запитываю через стабилизатор напряжения 78L05 к которому подвожу 12 вольт. так вот, если подать напряжение 1.6V на порт PA0, то все показывается как надо на порту PORTC, только стабилизатор напряжения очень сильно перегревается. с чем это связано? и ка этого избежать? (нагревается так что рукой не коснуться)
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение citizen » 07 мар 2011, 22:24

Вы подаете на стабилизатор 12в, а снимаете с него 5в. К примеру, 5 горящих светодиодов дают общий ток 100ма.
Тогда на стабилизаторе выделяется мощность (12-5)*0.1=0.7 Вт, что довольно немало.
Вывод - ставить на стабилизатор большой радиатор, понижать напряжение питания, или использовать dc-dc преобразователь, как тут
http://radio-hobby.org/news/article.php?storyid=445
OpenSimpleLidar - проект простого самодельного лидара.
Аватара пользователя
citizen
 
Сообщения: 369
Зарегистрирован: 12 окт 2008, 12:40
Откуда: Красногорск, Подмосковье

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 22:50

citizen писал(а):Вы подаете на стабилизатор 12в, а снимаете с него 5в. К примеру, 5 горящих светодиодов дают общий ток 100ма.
Тогда на стабилизаторе выделяется мощность (12-5)*0.1=0.7 Вт, что довольно немало.
Вывод - ставить на стабилизатор большой радиатор, понижать напряжение питания, или использовать dc-dc преобразователь, как тут
http://radio-hobby.org/news/article.php?storyid=445

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

по поводу радиатора. стабилизатор не имеет площадки для отвода тепла, как его тогда прикрепить? обмазать весь стабилизатор термопастой и поджать как нибудь к радиатору?
78L05.jpg
78L05.jpg (2.51 КиБ) Просмотров: 1990


а если подать на вход мк напряжение от блока питания компа 5 В, то при подключении напряжения (опять повторюсь 1.6В) к ножке PA0, то греться начинает сама МК, что по моему еще хуже.
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

Re: Atmega16a и АЦП

Сообщение Дмитрий К. » 07 мар 2011, 23:02

Ну да, плоской стороной. И прижать пластинкой на винтах.
Но както это ... не технологично :) Нельзя использовать другой преобразователь?
Дмитрий К.
 
Сообщения: 76
Зарегистрирован: 01 июл 2010, 20:58
Откуда: Санкт-Петербург
прог. языки: Си
ФИО: Дмитрий

Re: Atmega16a и АЦП

Сообщение NEOSoftWare » 07 мар 2011, 23:18

Дмитрий К. писал(а):Ну да, плоской стороной. И прижать пластинкой на винтах.
Но както это ... не технологично :) Нельзя использовать другой преобразователь?

ну в преобразователе дело не стоит, можно использовать и с тепло отводящей пластиной. я к тому что это нормально что идет такое потребление тока? ведь если использовать простые выводы (скажем для мигания светодиодов) и шим, то такой нагрузки ведь нету.
NEOSoftWare
 
Сообщения: 142
Зарегистрирован: 16 фев 2011, 00:52
прог. языки: PHP, ActionScript, Delphi, Visual Basic, Perl,Java

След.

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

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

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