roboforum.ru

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

Автомобильный вольтметр

Re: Автомобилльный вольтметр

yak-40 » 13 авг 2009, 12:42

У тебя прерывание первого таймера не открыто.
Стоит TIMSK=0x01; а надо TIMSK=0x05;

Re: Автомобилльный вольтметр

avr123.nm.ru » 13 авг 2009, 12:51

У меня сделано без прерываний в основном цикле программы, обычный счетчик считает ...
Код: Выделить всёРазвернуть
char ctr_out;

while(1) {
 
if (ctr_out > 100){  //  вывод на 7seg 2 раза в секунду
     out_7seg(data);     
ctr_out = 0;  // счетчик увеличивается 200 раз в сек в прерыв переполн таймер 0

следующий код программы ...

         }

Re: Автомобилльный вольтметр

Master » 13 авг 2009, 13:18

2 yak-40 Убица ап стену, пасиба, а то у меня уже моск лопнул.
Я забыл совсем про этот регистр.
2 avr123.nm.ru Ну можно и так. Просто у меня таймер свободный.

Добавлено спустя 23 минуты 31 секунду:
Отредактировал первое сообщение, выложил проект. Теперь буду плату ваять.

Re: Автомобилльный вольтметр

blindman » 13 авг 2009, 18:39

Master, я бы внёс в код следующие изменения.

#define ind_0 и прочие заменил бы на

Код: Выделить всёРазвернуть
static char digits[] = {
   0b00111111,
   0b00000110,
   0b01011011,
   0b01001111,
   0b01100110,
   0b01101101,
   0b01111101,
   0b00000111,
   0b01111111,
   0b01101111,
};


и Displey() переписал бы так:

Код: Выделить всёРазвернуть
void Displey(void)
{
   unsigned int data = DCV_displey;
   //Выводим dro индикатор 
   ind_dro;
   PORTD = digits[data % 10];
   pause;
   data /= 10;
   //Выводим ed индикатор 
   ind_ed;
   PORTD = digits[data % 10];
   pause;
   data /= 10;
   //Выводим des индикатор 
   ind_des;
   PORTD = digits[data % 10];
   pause;
}


ИМХО компактнее и проще

Re: Автомобилльный вольтметр

Master » 13 авг 2009, 21:52

Прикольно, пасиба поробую.

Re: Автомобилльный вольтметр

Master » 17 авг 2009, 09:54

Я тут задумал еще светодиодик добавить чтобы при низком заряде он зажигался. Какое напряжение считается низким для авто аккумулятора?

Re: Автомобилльный вольтметр

=DeaD= » 17 авг 2009, 09:59

Правильно писать:

Display()

а то глаз царапает :wink:

Re: Автомобилльный вольтметр

yak-40 » 17 авг 2009, 10:41

Master писал(а):Какое напряжение считается низким для авто аккумулятора?

Тут вопрос вот в чём. При заведённом двигателе измерять или при заглушеном?

Re: Автомобилльный вольтметр

avr123.nm.ru » 17 авг 2009, 10:57

Master писал(а):Я тут задумал еще светодиодик добавить чтобы при низком заряде он зажигался. Какое напряжение считается низким для авто аккумулятора?


10.5 самое низкое, поэтому меньше 11 я бы не советовал разряжать. А когда мотор работает напруга должна быть 13.8 - 14.2 вольт примерно но не менее 13.2 Если меньше то генератор не рубит как надо.

Re: Автомобилльный вольтметр

yak-40 » 17 авг 2009, 11:13

И получается, если настроить индикатор на заведённый двигатель, то при заглушеном светодиод будет всегда гореть :(
Вопрос: нужен ли он?
Возможное решение: делать датчик работы двигателя, и менять уставку индикатора.

Re: Автомобилльный вольтметр

Master » 17 авг 2009, 11:40

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

Re: Автомобилльный вольтметр

Master » 30 авг 2009, 00:25

На этой неделе снова вернулся к этой теме, буду уже печатку травить.
Переписал процедуру Displey как рекомендовал blindman все работает, только я не совсем понимаю как оно работает, вот давайте пошагово.
Допустим напряжение получилось 12,6 В
DCV_displey=13,6
Код: Выделить всёРазвернуть
void Displey(void)
{
   unsigned int data=DCV_displey;  =13,6
   //Выводим dro индикатор 
   ind_dro;
   PORTD=digits[data%10];   13,6%10=6
   pause;
   data=data/10;                 13,6/10=1,36 
   //Выводим ed индикатор 
   ind_ed;
   PORTD = digits[data%10]; 1,36%10=36 Что выводим 36 ????
   pause;
   data=data/10;
   //Выводим des индикатор 
   ind_des;
   PORTD = digits[data%10];
   pause;
}

Re: Автомобилльный вольтметр

avr123.nm.ru » 30 авг 2009, 01:18

Master писал(а): откуда я датчик работы двигателя возьму.


Иногда принимают порог около 12,8 вольт как признак работы мотора. Если напруга в сети выше - то работает.

Re: Автомобилльный вольтметр

Master » 30 авг 2009, 01:42

А если генератор не работает? Лучше отдельный провод от зажигания кинуть.

Добавлено спустя 10 минут 45 секунд:
Блин я совсем запутался
чему будет равно
1. 13,6%10=3,6
2. 13,6/10=1 если переменные целые числа (всмысле что 13,6 это содержимое целочисленной переменной data)
верно?

Добавлено спустя 3 минуты 28 секунд:
Все разобрался.

Re: Автомобилльный вольтметр

avr123.nm.ru » 30 авг 2009, 12:13

1. 136 % 10 будет 6
2. 136 / 10 будет 13

3. 136 % 100 будет 36
4. 136 / 100 будет 1


Rambler\'s Top100 Mail.ru counter