Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Переделать РН Страж в вольтметр

Непрочитано 26.04.2013, 16:30  
Svat-SV
Частый гость
 
Регистрация: 17.04.2012
Сообщений: 27
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Svat-SV на пути к лучшему
По умолчанию Переделать РН Страж в вольтметр

После выхода из строя силовой части осталась плата с цифровой частью от реле напряжения "Страж". Хочу применить её в качестве вольтметра постоянного напряжения с пределом 0-20В (для автомобиля), но в программировании (написании прошивки), мягко говоря, я не очень силен. Поэтому надеюсь на помощь форумчан в написании кода на Си для CVAVR.
Итак, что имеется на плате:
1. трехразрядный семисегментный индикатор с ОК;
2. мк attiny26;
3. две кнопки без фиксации;
4. три сопротивления.
Т.к. это всё уже запаяно на плате, то хотелось бы всё так и оставить без переделок и подгонять проект под эту плату.
Мои мысли-замечания по поводу платы (я могу и ошибаться):
1. т.к. сопротивления всего 3, то использовалась не поразрядная, а посегментная индикация;
2. вывода vcc и avcc соединены напрямую проводником на печатной плате, вывод aref подключен к индикатору - поэтому в качестве опорного напряжения используется vcc;
3. сигнал с делителя поступает на 7-й пин мк (РВ4, ADC7).

Основные требования к вольтметру: приемлемая точность показаний и индикация напряжения с десятками вольт (т.е. 13,9 или 14,1 и т.п.). В идеале - коррекция измерения (АЦП) двумя кнопками в + и в -.

В архиве выкладываю схему РН "Страж" и предполагаемую схему вольтметра.

Вот такой код пока набросал (начальные настройки, дальше темный лес):
PHP код:
Chip type               : ATtiny26
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 32
**************************************************  ***/
#include ‹tiny26.h›

#include ‹delay.h›

#define digit3 PORTB.6 //катод 3-й цифры
#define digit2 PORTB.0 //катод 2-й цифры
#define digit1 PORTB.1 //катод 1-й цифры

#define ADC_AVERAGE (50) //среднее по 50-ти замерам
char digit_out[3], cur_dig; //переменные для работы с LED

unsigned long indication; //переменная для хранения чисел
unsigned int volt;

flash char digits[] = {0xE7, 0x24, 0xAB, 0xAE, 0x6C, 0xCE, 0xCF, 0xA4, 0xEF, 0xEE, 0x00}; //индикатор с ОК

void recoding(void) { //разделение на сотые, десятые и единичные доли
 digit_out[0]=indication/100%10;
 digit_out[1]=indication/10%10;
 digit_out[2]=indication%10;
 }
 
 #define ADC_VREF_TYPE 0x00

// Read the AD conversion result
unsigned int 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
ADCSR|=0x40;
// Wait for the AD conversion to complete
while ((ADCSR & 0x10)==0);
ADCSR|=0x10;
return ADCW;
}

void main(void)
{
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
PORTA=0x00;
DDRA=0xFF;

// Port B initialization
// Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out 
// State7=P State6=0 State5=T State4=T State3=P State2=T State1=0 State0=0 
PORTB=0x88;
DDRB=0x43;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSR=0x86; 
Вложения:
Тип файла: rar voltmeter.rar (13.1 Кб, 56 просмотров)
Реклама:

Последний раз редактировалось Svat-SV; 26.04.2013 в 16:34.
Svat-SV вне форума  
Непрочитано 29.04.2013, 09:21  
korsaj
Частый гость
 
Регистрация: 12.05.2009
Сообщений: 44
Сказал спасибо: 3
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
korsaj на пути к лучшему
По умолчанию Re: Переделать РН Страж в вольтметр

Соберите все в протеусе и начните с динамической индикации. Индикация должна быть реализована в прерывании по таймеру (так не будет подмигивать дисплей )) ). Вывод данных поразарядно, 1 разряд обновляется 1 раз в 5мС, весь цикл вывода будет повторятся за 15мС (частота вывода 67Гц). Как научитесь выводить данные на дисплей, тогда уже можете запихивать данные полученные от АЦП в буфер (дополнительные регистры для монопольного дступа) вывода на дисплей.
korsaj вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расшифровать и переделать оконечник sergei948 Аудиотехника 4 03.09.2009 22:12
Как переделать схему с датчиками протечек rolka Электроника - это просто 46 27.08.2009 23:54
Электромеханический микроамперметр переделать на вольтметр?? ivan_nick Измерительное оборудование 6 21.05.2009 09:16
Как заставить работать "Страж-SMS 4x4" в Беларуси milt Делимся опытом 2 05.11.2008 11:27
Как переделать Японский а/м TV Serg999 Видеотехника 1 06.10.2006 22:37


Часовой пояс GMT +4, время: 23:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.