Технический форум по робототехнике.
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 мигают как сумасшедшие. может я что делаю не так? или так и должно быть ?
Michael_K » 07 мар 2011, 04:04
Смущают фразы "порт С увешал светодиодами", "сопротивление 1кОм перегревается" и "подаю 20 вольт".
Схему в студию.
По-моему, у вас что-то "в консерватории" не хватает.
И да, конечно, вы что-то делаете не так
avr123.nm.ru » 07 мар 2011, 13:34
на С жтаг еще.
NEOSoftWare » 07 мар 2011, 16:52
Michael_K писал(а):Смущают фразы "порт С увешал светодиодами", "сопротивление 1кОм перегревается" и "подаю 20 вольт".
Схему в студию.
По-моему, у вас что-то "в консерватории" не хватает.
И да, конечно, вы что-то делаете не так
вот если без резистора то мк зависает сразу. (светодиоды на порту С загораются все и больше рекции от мк нет, пока питание не отключишь)
с резистором
работает мк так как описал в первом посте
=DeaD= » 07 мар 2011, 16:53
Надо не через резистор подавать, а через резисторный делитель напряжения, если хотите измерять напряжение выше уровня питания контроллера.
Michael_K » 07 мар 2011, 17:05
млин, откуда вы такие беретесь?
- каждому светодиоду поставить последовательно резистор в один килоом.
- резисторный делитель на ногу pa0, так чтобы напряжение на АЦП никогда не превышало AREF.
Ну и конденсаторы бы что ли на питание хотя бы повесили... для красоты.
Вы наугад что ли схемы собираете...
NEOSoftWare » 07 мар 2011, 17:09
=DeaD= писал(а):Надо не через резистор подавать, а через резисторный делитель напряжения, если хотите измерять напряжение выше уровня питания контроллера.
предположим я не хочу выше уровня питания мк, просто замерить какое напряжение от источника, скажем на регулируемом источнике питания я выставлю 2.5 в (замерив мультиметром), тогда так подключить к мк ? ведь на прямую без резистора при 1.6 в мк вешается
Добавлено спустя 1 минуту 35 секунд:Michael_K писал(а):млин, откуда вы такие беретесь?
- каждому светодиоду поставить последовательно резистор в один килоом.
- резисторный делитель на ногу pa0, так чтобы напряжение на АЦП никогда не превышало AREF.
Ну и конденсаторы бы что ли на питание хотя бы повесили... для красоты.
Вы наугад что ли схемы собираете...
резисторы на светодиодах навешаны, просто лень было в программе их ставить.
Michael_K » 07 мар 2011, 17:10
если не превышаете, то можно подавать без резистора.
а вот светодиоды без резистора низзя.
NEOSoftWare » 07 мар 2011, 17:43
Michael_K писал(а):если не превышаете, то можно подавать без резистора.
а вот светодиоды без резистора низзя.
так без резистора мк виснет
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
NEOSoftWare » 07 мар 2011, 22:11
спасибо, почитал, все заработало, но возникла такая проблема мк запитываю через стабилизатор напряжения 78L05 к которому подвожу 12 вольт. так вот, если подать напряжение 1.6V на порт PA0, то все показывается как надо на порту PORTC, только стабилизатор напряжения очень сильно перегревается. с чем это связано? и ка этого избежать? (нагревается так что рукой не коснуться)
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
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 (2.51 КиБ) Просмотров: 1991
а если подать на вход мк напряжение от блока питания компа 5 В, то при подключении напряжения (опять повторюсь 1.6В) к ножке PA0, то греться начинает сама МК, что по моему еще хуже.
Дмитрий К. » 07 мар 2011, 23:02
Ну да, плоской стороной. И прижать пластинкой на винтах.
Но както это ... не технологично
Нельзя использовать другой преобразователь?
NEOSoftWare » 07 мар 2011, 23:18
Дмитрий К. писал(а):Ну да, плоской стороной. И прижать пластинкой на винтах.
Но както это ... не технологично
Нельзя использовать другой преобразователь?
ну в преобразователе дело не стоит, можно использовать и с тепло отводящей пластиной. я к тому что это нормально что идет такое потребление тока? ведь если использовать простые выводы (скажем для мигания светодиодов) и шим, то такой нагрузки ведь нету.