АЦП для 12 вольт

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
brodnov
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт мар 17, 2009 21:05:28
Откуда: Rivne, UA
Контактная информация:

Сообщение brodnov »

AndyWorld писал(а):У меня есть Мега 16, два датчика DS18B20. ШИМ на 15 Кгц примерно. Кварц для часиков 4,096Mhz. Или прикрутить реал-тайм часы... еще не решил как быть - I2C тож освоить надо.
Не уверен на счет ШИМ - будет ли "бычить" двигатель. Вдруг загнется. А вот вольтметр обязательно прикручу, а то один раз "попал" не проконтролировал заряд и по метели тащили меня - жесть!

С малого надо начинать, конечно. Но я,обычно, развожу платы "на будущее", предусматриваю возможные входы-выходы. Ну можно сначала с кварцем, потом добавить маленькую платку с ЧРВ и питанием резервным. На автомобиль DS-ку круто, но опасность есть что ноги перегниют современем (если на двигатель ставить).
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Сообщение AndyWorld »

Pippeytz писал(а):" Кварц для часиков 4,096Mhz."

Нехреновые, такие часики


Ага! Ну эта частота делится хорошо для того чтобы секунду добыть!
kvr
Родился
Сообщения: 1
Зарегистрирован: Сб май 02, 2009 18:52:27
Контактная информация:

Сообщение kvr »

Делал я подобную конструкцию к своей машине, часиков там только небыло. DS-ки не отгнили, но с помехами от зажигания я устал бороться, и установил родной датчик температуры прикрутив к нему АЦП.
Foks
Поставщик валерьянки для Кота
Сообщения: 2108
Зарегистрирован: Пт авг 29, 2008 16:28:19
Откуда: Киев

Сообщение Foks »

Чтобы вывести на дисплей десятичные числа.
Деление числа с остатком:

Код: Выделить всё

 ; 16-разрядное число (r1:r0) делим на 8-разрядное (r3)
 ; в (r1:r0) получаем результат, в (r2) остаток от деления
   clr r2
   ldi r16,16
   div_loop:
      clc
      rol r0
      rol r1
      rol r2
      cp r2,r3
      brlo div_l1
      sub r2,r3
      inc r0
   div_l1:
   dec r16
   brne div_loop


Выдернул из своего вполне рабочего проекта.
Аватара пользователя
GP1
Поставщик валерьянки для Кота
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград
Контактная информация:

Сообщение GP1 »

AndyWorld писал(а):У меня есть Мега 16, два датчика DS18B20. ШИМ на 15 Кгц примерно.

1. Не пойму чего это огромное число форумчан уперлись в DS18B20? ну да, простота интерфейса в CV есть мастера и т.п., но я сталкивался с таким явлением: 3 шт DS18B20 лежащие на одном столе в радиусе 15 см показывали температуру с разбегом в 3,4 градуса!!! а на авто так вообще не айс, ИМХО лучще ставить 19.3828 (положительный ТКН) или 23.3828 (отрицательный ТКН) кому что по дуще.
2. Частота ШИМ для управления двигателем будет определяться силовым ключем который у вас будет применяться. не все ключи на такой частоте будут работать.
зы: а вообще идея хорошая, но опять же ИМХО лучше иметь несколько мелки проциков для разных задач, чем пытаться одной мегой решить кучу проблем, в общем удачи, пишите что получиться.
Чем дальше, тем больше становлюсь занудой...
Изображение
Dryg
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Вс дек 21, 2008 14:47:23
Контактная информация:

Сообщение Dryg »

Privet vsem, skinte pojalysta proshuvky dlia etoi shemu. Zaranee blagodaren!!!
Вложения
shema.gif
(12.94 КБ) 738 скачиваний
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

Вы в какой среде пишете прогу?
Вот, для Code Vision AVR, пример. Только там вывод температуры. Надо вам напряжение - пожалуйста, выводите, что хотите, только в temp забейте предварительно данные из ADCW.

Код: Выделить всё

#include <lcd> // LCD driver routines

// LCD display buffer
char lcd_buffer[33];

void main(void)
{
char sign;
int temp;
// initialize the LCD
lcd_init(16);
// initialize the I2C bus
i2c_init();
// initialize the LM75 chip with address 0
// hysterezis temperature 20°C
// O.S. temperature 25°C
// O.S. output is active high
lm75_init(0,20,25,1);
// temperature display loop
while (1)
      {
      // read LM75 temperature *10°C
      // from chip with address 0
      temp=lm75_temperature_10(0);
      sign='+';
      if (temp<0)
         {
         sign='-';
         temp=-temp;
         };
      sprintf(lcd_buffer,"t=%c%i.%u\xdfC",sign,temp/10,temp%10);
      // display the temperature
      lcd_clear();
      lcd_puts(lcd_buffer);
      delay_ms(200);
      }
}
Цапу крутить надо!!! Ку или не ку?
Аватара пользователя
Igor_67
Электрический кот
Сообщения: 1051
Зарегистрирован: Вт окт 21, 2008 11:46:23
Откуда: Барнаул

Сообщение Igor_67 »

А я вообще не парился. Вот по этой ссылке сделал вольт-амперметр и все ОК!
http://www.avr.4mg.com/custom4_1.html

Сейчас еще два таких же буду делать (есть необходимость).
Цапу крутить надо!!! Ку или не ку?
ujin
Открыл глаза
Сообщения: 41
Зарегистрирован: Пн дек 21, 2009 15:16:31

Сообщение ujin »

зы: а вообще идея хорошая, но опять же ИМХО лучше иметь несколько мелки проциков для разных задач, чем пытаться одной мегой решить кучу проблем, в общем удачи, пишите что получиться.[/quote]

для меги вовсе не напряг управлять процессами затронутыми выше....
у неё куча аппаратных средств для облечения жизни цпу( тот же шим )..
гораздо проще отладить одно устройство чем несколько.....да и надежность в общем будет хуже на количество этиж же устройств...
Mtr
Открыл глаза
Сообщения: 76
Зарегистрирован: Вт фев 09, 2010 20:54:18

Сообщение Mtr »

Uvajaimii Avatar ea resil povtoriti shemu predlogenuiu vami i stolcnulsea s problemoi no mogu vistoviti 00.0 u menea pocemuta vistavleaet 07.5 ne mense esli vas ne zatrudnit abesnite v ceom dela za ranie spasibo
Mtr
Открыл глаза
Сообщения: 76
Зарегистрирован: Вт фев 09, 2010 20:54:18

Сообщение Mtr »

Ea imel vedu milivolitmetr na pic16f676
Mtr
Открыл глаза
Сообщения: 76
Зарегистрирован: Вт фев 09, 2010 20:54:18

Сообщение Mtr »

Я как нормальный человек попросил помочь, а ты строишь из себя такого невебенного педераста!Если ты не знаешь латинских букв то это только твои проблемы!Если хочешь то помоги ,как нормальный человек,а если и дальше хочешь казаться умным,то иди ты тогда лесом! С уважением Я!!!
Обижаться на справедливое замечание не есть ГУТ. При таком хамском отношении к другим посетителям Вы помощи не получите. Сэр Мурр.
999
Родился
Сообщения: 7
Зарегистрирован: Чт май 06, 2010 21:09:37

Re: АЦП для 12 вольт

Сообщение 999 »

Собралл вольтметр MILLI выложеный ранее. Откомпилил прошивки. Обе вроде работают сначало залил для общего анода на индикаторе крякозаблины, но от изменения напряжения скачут. Потом залил катодную работает правильно. Индикатор приминил Е40281-L.
Вложения
milli.rar
Откомпилированые прошивки и платка.
(8.19 КБ) 307 скачиваний
999
Родился
Сообщения: 7
Зарегистрирован: Чт май 06, 2010 21:09:37

Re: АЦП для 12 вольт

Сообщение 999 »

В собранном устройстве столкнулся с проблемой запуска вольтметра то запустится то нет показывает 0 или прочую ерунду.
Ещё при установке в авто скачет последняя цифра, хотя тестер кажет ровно.
Аватара пользователя
billy
Встал на лапы
Сообщения: 80
Зарегистрирован: Вс ноя 25, 2007 22:53:17
Откуда: Украина
Контактная информация:

Re: АЦП для 12 вольт

Сообщение billy »

999 писал(а):В собранном устройстве столкнулся с проблемой запуска вольтметра то запустится то нет показывает 0 или прочую ерунду.
Ещё при установке в авто скачет последняя цифра, хотя тестер кажет ровно.


Такая же фигня,при включении питания вроде нормально всё,но при подключении нагрузки на индикаторе творится фиг знает что,какаято светомузыка,всё моргает,значений тока не видно толком,цифры бегут. :shock:Собирал схему амперметра. :shock:Индикаторы с общим катодом
elf
Открыл глаза
Сообщения: 60
Зарегистрирован: Чт окт 29, 2009 23:22:03

Re: АЦП для 12 вольт

Сообщение elf »

Доброго времени суток!!!
Народ нужна помощь- собрал вольтметр на атмеге8 все работает, но показания скачут как бешаные (фильтр на вод ацп поставил ) думаю надо усреднить показания АЦП
Но как?

пробую вот так:
#include <mega8.h>
#include <delay.h>
#include <stdio.h>

#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
char lcd_buffer[31];
unsigned int result;
unsigned int c;
unsigned int i;
unsigned int r2 ;
unsigned int result2 [64];


void main(void)
{

PORTC=0x00;
MCUCR = 0x0A;
GICR = 0xC0;
lcd_init(16);


while(1){

for(i=0; i<64;i++)
{ result= 0;
ADMUX=0;
ADCSRA=0b11011111; //включаем ацп
result2 [i] = (ADCW*5-ADCW/10); //пишем в масив значение ацп
result= ( result+result2[i]) /i ; //усредняем
}
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"ADC=% umV %u\r\n % u % u",result,i, result2[9] ,c );// записываем в буфер вторые 2 параметра
lcd_puts(lcd_buffer);
}

}


- ни хрена не выходит
Где тут грабли???
Помогите замучился уже :(
999
Родился
Сообщения: 7
Зарегистрирован: Чт май 06, 2010 21:09:37

Re: АЦП для 12 вольт

Сообщение 999 »

Автор прошивки milly подправил её и теперь показания обновляются раз в 1 сек. Вот ,сам пока не проверял.
Вложения
MILLUM1.rar
Прошивка. Задержка индикации 1 сек
(639 байт) 356 скачиваний
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»