Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом / Диплом.doc
Скачиваний:
135
Добавлен:
23.02.2016
Размер:
1.12 Mб
Скачать

Глава 2 Разработка автоматизированного зарядного устройства

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

Наименование работ:«Разработка автоматизированного зарядного устройства на микроконтроллереPIC16»

Заказчик:ОАО «ЧЭМК»

Исполнитель:Бычков Александр Сергеевич

Требования по составу изделия.

Опытный образец изделия состоит из:

- Платы, на которой установлены программируемый контроллер (PIC16);

- программного обеспечения (ПО): Программы работы контроллера PIC16;

Технические характеристики устройства.

- Напряжение питания — 220В;

- Физическая среда реализации –микроконтроллер PIC16.

Требования по назначению.

Устройство предназначено для зарядки свинцово-кислотных аккумуляторных батарей.

Требования эксплуатации.

Устройство не должно требовать при эксплуатации, работ по настройке и регулировке.

Организовать защиту от неправильного подключения к АКБ.

Устройство должно иметь возможность зарядки АКБ разных емкостей с номинальным напряжением до 24 В.

Требования по транспортабельности не предъявляются.

Требования по безопасности и экологической защите не предъявляются.

Требования по стандартизации и унификации.

Доработка, изготовление и испытания должны осуществляться на основе действующей нормативно-технической документации, государственных стандартов ЕСКД, ЕСПД.

Требования по проверке патентной чистоты не предъявляются.

Доработка устройства должна проводиться с учетом руководящих указаний Заказчика по конструированию.

Требования по технологичности.

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

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

Проект должен быть построен на базе микроконтроллера PIC16.

2.2 Разработка функциональной схемы

Рисунок 5 – Функциональная схема зарядного устройства

ИП – Импульсный преобразователь

БУ – Блок управления (микроконтроллер PIC16)

С – Стабилизатор напряжения

Принцип работы по функциональной схеме.

Входное напряжение поступает на импульсный преобразователь, а затем на стабилизатор напряжения, где напряжение становится постоянным. Со стабилизатора напряжения поступает сигнал на блок управления с данными о выходном напряжении. В зависимости от выходного напряжения блок управления (микроконтроллер) задает режим работы импульсного преобразователя.

2.3 Разработка схемы электрической – принципиальной.

Разработка схемы произведена в программе MicrosoftOfficeWord. Благодаря дополнениям, данная программа содержит весь необходимый функционал для выпуска документации на проектируемое электрооборудование. Разработка документов проекта осуществляется с помощью панели инструментов для рисования электрических схем.

Рисунок 6 – Электрическая - принципиальная схема зарядного устройства

2.4 Описание работы устройства по схеме электрической – принципиальной.

При включении в сеть сетевое напряжение поступает на выпрямитель диодный мост (представленный четырьмя диодами S3M)

Выпрямленное напряжение поступает на стабилизатор, который состоит из конденсаторов 470мкФ 200В и становиться постоянным напряжением приблизительно 308В (зависит от напряжения в сети), оно поступает на транзисторы MJE13009, которые являются силовыми ключами генератора импульсов.

Транзистор 2SC3150, резисторы 10кОм 10Вт; 100кОм 2Вт и стабилитроныBZX85 5V1 представляют собой простейший параметрический стабилизатор напряжения на одном транзисторе его задача понизить напряжение 308В до 10,1В чтобы запитать высоко точный стабилизатор напряженияLP2950A-5.0 с входным напряжением не более 12В и выходным 5В которое необходимо для питания контролераPIC-16.

Резисторы 15кОм 0,125ВТ и 2кОм 0,125Вт представляют собой делитель напряжения сигнал с которого поступает на контроллер.

При включении устройства в сеть, на контроллер поступает сигнал о начале работы и загорается красный светодиод «Включен». Если АКБ подключен не правильно загорается красный светодиод «Переполюсовка». Контроллер замеряет напряжение на делителе и проверяет его, если на делитель поступает напряжение выше 12,8В контролер подаёт сигнал на зеленый светодиод «АКБ заряжен», что указывает на то что подключенный аккумулятор полностью заряжен, если же напряжение поступающее на делитель находиться в пределах от 11,8 до 12,8 вольт контролер подаёт сигнал на красный светодиод «5» и начинает выдавать меандр (последовательность импульсов амплитудой 5В и скважностью 50% и переменной частотой). Меандр необходим для задания режима работы генератора импульсов построенного на транзисторе КТ-503Е, микро-трансформаторе и диодах 1N4007 которые непосредственно и задают частоту переключения силовых транзисторовMJE13009. Чем выше частота создаваемых импульсов тем больше энергии передаётся через конденсаторы 4,7мкФ 400В на выходной диодный мост(состоящий из диодовIN4007) и поступает на аккумулятор. Конденсатор 1000икФ 50В необходим для сглаживания высокочастотных пульсаций на выходе.

2.5 Разработка программы прошивки микроконтроллера.

Прошивка была разработана в программе MPLab.MPLab—представляет собой единую бесплатную интегрированную среду разработки для контроллеров производства Microchip, работающая в операционных системах Windows NT/2000/XP/Vista/7.MPLabсодержит в себе менеджер проектов, редактор исходного кода, инструменты виртуальной симуляции и внутрисхемной отладки, позволяет писать программы на ассемблере или на C/C++.

#include <htc.h>

//#include <pic.h>

//#include <pic1687x.h>

__CONFIG (0x3D72);

#define_XTAL_FREQ16000000

// настройка модуля АЦП

// 1 канал - AN0

// Опорное напряжение подключено к Vdd , GND = 5V

// до 5 МГц - Fosc/8

// правое выравнивание - 6 старших бит ADRESH = 0

// резервируем переменные в памяти

static volatile unsigned int adcP0 @ 0x20; // результат АЦП0

static volatile unsigned char adcP0L @ 0x20; // результат АЦП0 младший

static volatile unsigned char adcP0H @ 0x21; // результат АЦП0 старший

static volatile unsigned int imp @ 0x22; // (22,23)длительность импульса

static volatile unsigned char impL @ 0x22; // длительность импульса

static volatile unsigned char impH @ 0x23; // длительность импульса

void main(void)

{

// временные переменные

STATUS = 0b00000000; // состояние контроллера

OPTION = 0b00000011; // TMR0/WDT,RB0/INT,RportB

INTCON = 0b00000000; // прерывания

PIE1 = 0b00000000; // переферийные прерывания (устройства)

PIR1 = 0b00000000; // периферийные прерывания (модули)

PIE2 = 0b00000000;

PIR2 = 0b00000000;

PCON = 0b00000011; // источник сброса контроллера

TRISA = 0b00000001; // 1-Input 0-Output

TRISB = 0b00000000;

TRISC = 0b00000000;

PORTA = 0b00000000;

PORTB = 0b00000000;

PORTC = 0b00001001;

// модуль EEPROM

EEADR = 0b00000000;

EEADRH = 0b00000000;

EEDATA = 0b00000000;

EEDATH = 0b00000000;

EECON1 = 0b00000000;

// таймер 0

TMR0 = 0;

// таймер 1

TMR1H = 0b00000000;

TMR1L = 0b00000000;

T1CON = 0b00000000;

// таймер 2 -

TMR2 = 0;

PR2 = 0xFF;

T2CON = 0b00000000;

// CCP

CCPR1H = 0b00000000;

CCPR1L = 0b00000000;

CCPR2H = 0b00000000;

CCPR2L = 0b00000000;

CCP1CON= 0b00000000;

CCP2CON= 0b00000000;

// MSSP - I2C - i2c_std.c

// USART - далее

SPBRG = 12;

TXSTA = 0b00000110; // настройка передатчика

RCSTA = 0b00000000; // настройка приемника

// АЦП

ADCON0 = 0b01000000;

ADCON1 = 0b00001110;

ADRESH = 0b00000000;

ADRESL = 0b00000000;

GIE = 0; // глобальное разрешение прерываний

PR2 = 255;

CCPR1L = 0b10000000;

CCP1CON = 0b00001100;

T2CON = 0b00000100;

while(1)

{

// Измерение напряжения

ADCON0 = 0b10000001; // Канал 0, Включить модуль АЦП - ADCON0[0]

__delay_us(25); // Пауза для зарядки конд-ра АЦП (~25uSec)

ADCON0 = 0b10000101; // запуск преобразования АЦП

while (ADGO == 1) { } // ожидание завершения преобразования

adcP0H = ADRESH; // считываем количество шагов АЦП

//adcP0L = ADRESL; // считываем количество шагов АЦП

ADIF = 0;

ADCON0 = 0b10000000; // Выключить модуль АЦП - ADCON0[0]

// делим на 2 - 128 шагов

adcP0H >>= 1;

adcP0H += 79;

// частота

// PR2 = adcP0H; // ниже

// длительность импульса - меандр

impH = 0;

impL = adcP0H + 1; // (PR2+1)

imp <<= 1; // длительность импульса

// заполняем младшие биты

#asm

// CCP1CON.5

BCF 0x17,5; // сбросить бит

BTFSC 0x22,1; // если бит 1 =0, - пропускаем

BSF 0x17,5; // если бит 1 =1, - устанавливаем бит CCP1CON.5

// кратность 2 - убираем

// CCP1CON.4

//BCF 0x17,4; // сбросить бит

//BTFSC 0x22,0; // если бит 0 =0, - пропускаем

//BSF 0x17,4; // если бит 0 =1, - устанавливаем бит CCP1CON.4

#endasm

imp >>= 2;

CCPR1L = impL; // обновляем частоту

PR2 = adcP0H; // пауза 1/4 сек

__delay_ms(100);

} // while(1)

}

Соседние файлы в папке диплом