это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
3996678
Ознакомительный фрагмент работы:
Введение
Электроника является универсальным и исключительным
средством при решении проблем в самых различных областях. Сфера
её применения постоянно расширяется. Практически каждая
достаточно сложная техническая система оснащается электронными
устройствами. Трудно назвать технологический процесс, управление
которым осуществлялось бы без неё. Функции устройств становятся
всё более разнообразными. Наилучшим радиотехническим
устройством является то, которое можно и не замечать, но оно при
этом само будет выполнять все необходимые функции. Одним из
таких является электронный регулятор температуры.
Очень важно не только знать величину температуры, но и
управлять ею. Например, во многих сферах промышленности,
сельского хозяйства, да и просто в жизни, требуется поддерживать
определённую температуру для процессов производства, либо для
поддержания нормального функционирования узлов, т.к. всем
известно что изменение температуры в большую или меньшую
сторону ведёт к порче устройств, либо объектов для регулирования
которых применяются эти устройства.
Существует множество разновидностей термометров: ртутный,
где указателем уровня измеряемой температуры является ртуть, у
которой коэффициент линейного расширения изменяется в
зависимости от температуры окружающей среды, также нашёл
применение термометр, датчиком температуры у которого служит
термопара и много других. Каждый из них имеет ряд недостатков.
Например, ртутный недостаточно точен, а в случае раскола колбы
произойдёт утечка ртути, которая очень опасна для здоровья людей.
Поэтому темой настоящего курсового проекта является разработка
безопасного регулятора температуры, который предназначен для
регулирования и поддержания температуры в нужной для его
применения области. Применение микрроконтроллеров позволит
создать довольно несложное устройство способное регулировать
температуру в широком интервале значений и поддерживать её с
высокой точностью.
1. Основная часть
Задание:
1. Выбрать необходимую конфигурацию элементов и микроконтроллер
управления.
2. Составить блок-схему системы управления.
3. Составить электрическую схему соединений аппаратов.
4. Написать программу в программном обеспечении Proteus.
Реализовать модель автоматического нагрева воды в титане по
следующему алгоритму:
- в определенное время включить питание нагрева;
- при поступлении сигнала от датчика верхнего значения температуры
отключить питание;
- при поступлении сигнала с нижнего значения температуры включить
питание нагрева.
1. Структурная схема
Структурная схема объекта автоматизации приведена на рисунке 1.
Микроконтроллер
ЖК индикатор
Датчик температуры
Кнопки
Ключ
Ключ
Светодиоды
Рисунок 1. – Структурная схема микропроцессорного блока.
Основным элементом является микропроцессор, который управляет
ключами, включая или отключая силовые элементы – нагреватель или
вентилятор.
Установка параметров производится при помощи кнопок, где
выбирается верхний и нижний предел регулировании температуры.
Данная информация выводится на экран. Также состояние индицируется
при помощи светодиодов.
Измерение температуры производится температурным датчиком, сигнал
с которого обрабатывается микроконтроллером.
Силовая часть блока в виде структурной схемы приведена на рисунке 2.
Блок релеНагреватель
Рисунок 2. – Структурная схема силового блока.
7
2. Создание визуализации в программе Proteus.
Для создания визуализации в программе Proteus 8, были выбраны
следующие элементы:
1) Микроконтроллер Atmega8.
Рисунок 3. – МК Atmega 8.
2) Жидкокристаллический индикатор LM041
Рисунок 4. – Жидкокристаллический индикатор LM041
8
3) Температурный датчик DS18B20
Рисунок 5. - Температурный датчик DS18B20
4) Светодиод
Рисунок 6. – Светодиод
5) Кнопка
Рисунок 7. – Кнопка
3. Характеристики микропроцессора
Для построения блока управления необходимо определиться с выбором
микроконтроллера. Основные требования определим следующие:
1) Доступность среды разработки программы;
2) Наличие достаточного объема памяти:
9
3) Быстродействие.
Данным требования удовлетворяет микроконтроллер семейства AVR
ATmega8 (рисунок 8).
Рисунок 8 – Распиновка МК ATmega 8
Atmega8 является КМОП (комплементарная логика на транзисторах
металл-оксид-полупроводник) 8-битным микроконтроллером, построенным
на расширенной AVR RISC архитектуре. Используя команды, исполняемые
за один машинный такт, контроллер достигает производительности в 1 MIPS
(величина, показывающая, сколько миллионов инструкций в секунду
выполняет процессор в некотором синтетическом тесте) на рабочей частоте 1
МГц, что позволяет разработчику эффективно оптимизировать потребление
энергии за счёт выбора оптимальной производительности.
AVR ядро сочетает расширенный набор команд с 32 рабочими
регистрами общего назначения. Все 32 регистра соединены с арифметико-
логическим устройством (АЛУ), что обеспечивает доступ к двум
независимым регистрам на время исполнения команды за один машинный
10
такт. Благодаря выбран ной архитектуре достигнута наивысшая скорость
кода и соответственно высокая производительность в 10 раз превосходящая
скорость соответствующего CISC микроконтроллера.
ATmega8 содержит 8Кбайт внутрисистемно-программируемой FLASH
памяти программ, допускающей чтение во время записи, 1024 байт EEPROM,
2К байт SRAM, 32 рабочих регистра, JTAG интерфейс сканирования
внутренних регистров, встроенную систему отладки и программирования,
три гибких таймера - счётчика с модулем сравнения, внутренние и внешние
прерывания, последовательный программируемый интерфейс USART, байт-
ориентированный двухпроводный последовательный интерфейс, 8-и
канальный, 10-и битный АЦП с дифференциальным программируемым
усилителем (только для TQFP), программируемый Watchdog таймер с
внутренним генератором, порт SPI и шестью режимами сбережения энергии.
В режиме Idle ЦПУ не функционирует в то время как функционируют
USART, двухпроводный интерфейс, АЦП, SRAM, таймеры - счётчики, SPI
порт и система прерываний.
В Atmega8 существует специальный режим подавления шума АЦП,
при этом в целом в спящем режиме функционирует только АЦП и
асинхронный таймер для уменьшения цифровых шумов преобразования. В
выключенном режиме процессор сохраняет содержимое всех регистров,
замораживает генератор тактовых сигналов, приостанавливает все другие
функции кристалла до прихода внешнего прерывания или поступления
внешней команды Reset. В режиме ожидания работает один тактовый
генератор, при остановке остальных функций контроллера.
Благодаря быстрому переходу в нормальный режим работы, в том
числе и по внешнему прерыванию Atmega8 успешно приспосабливается к
внешним условиям работы и требует меньше энергии, чаще оказываясь в
выключенном режиме. В расширенном режиме ожидания в рабочем
состоянии находятся основной генератор и асинхронный генератор.
11
Микросхемы выпускаются при использовании технологии
энергонезависимой памяти высокой плотности. Встроенная ISP FLASH
память позволяет перепрограммировать область программной памяти
внутрисистемно через последовательный SPI интерфейс стандартным
программатором, или используя загрузочную программу из
энергонезависимой памяти работающую в AVR ядре. Комбинация
расширенной 8-и битной RISC архитектуры ЦПУ и твёрдотельной FLASH
памяти обеспечивают Atmega8 высокую гибкость и экономическую
эффективность во встраиваемых системах управления.
4. Описание индкатора
Для вывода изображения применим ЖК-индикатор. Существует
несколько типов ЖК, выберем алфавитно-цифровой.
Алфавитно-цифровые ЖКИ-модули представляют собой недорогое и
удобное решение, позволяющее сэкономить время и ресурсы при разработке
новых изделий, при этом обеспечивают отображение большого объема
информации при хорошей различимости и низком энергопотреблении.
Возможность оснащения ЖКИ-модулей задней подсветкой позволяет
эксплуатировать их в условиях с пониженной или нулевой освещенностью, а
исполнение с расширенным диапазоном температур (-20°С... +70°С) в
сложных эксплуатационных условиях, в том числе в переносной, полевой и
даже, иногда, в бортовой аппаратуре.
Контроллер HD44780 потенциально может управлять 2-мя строками по 40
символов в каждой (для модулей с 4-мя строками по 40 символов
используются два однотипных контроллера), при матрице символа 5 х 7
точек. Контроллера также поддерживает символы с матрицей 5 х 10 точек, но
в последние годы ЖКИ-модули с такой матрицей практически не
встречаются, поэтому можно считать, что фактически бывают только
символы 5х7 точек.
12
Существует несколько различных более-менее стандартных форматов
ЖКИ-модулей (символов х строк): 8х2, 16х1, 16х2, 16х4, 20х1, 20х2, 20х4,
24х2, 40х2, 40х4. Встречаются и менее распространенные форматы: 8х1,
12х2, 32х2 и др., - принципиальных ограничений на комбинации и
количество отображаемых символов контроллер не накладывает - модуль
может иметь любое количество символов от 1 до 80, хотя в некоторых
комбинациях программная адресация символов может оказаться не очень
удобной.
5. Выбор термодатчика
В системе нагревания было решено использовать датчик температуры
DS18B20.
13
Рисунок 9 – Термодатчик DS18B20
Данное устройство хорошо согласуются с микроконтроллером.
Термодатчик DS1820 имеет следующие технические характеристики:
индивидуальный 64-битный идентификационный номер;
напряжение питания от +3 до +5,5 В;
измеряемая температура от -55 до +125°С;
погрешность измерения температуры в диапазоне -
10...+85°С не более 0,5°С;
в остальном диапазоне температур погрешность измерения
не превышает 2°С;
информация о температуре выдается 9-битным кодом;
максимальное время преобразования температуры в код
750 мс;
возможность питания от высокого уровня шины данных;
термодатчики не требуют индивидуальной настройки при
замене. Термодатчик типа DS18B20 отличается от DS1820
способностью измерять температуру с четырьмя уровнями
погрешности - 0,5; 0,25; 0,0625°С. При этом максимальное
время измерения для каждого уровня составляет
14
соответственно 93,75; 187,5; 375; 750 мс. Необходимая
погрешность измерения может быть задана при
инициализации термодатчика.
Термодатчики выпускают в двух типах корпусов: ТО-92 и SOIC.
DS18B20 обменивается данными по 1-Wire шине и при этом может
быть как единственным устройством на линии, так и работать в группе. Это
также послужило ключевой особенностью в пользу выбора датчика, т. к.
позволяет впоследствии модернизировать устройство путем добавления
новых датчиков.
Другая особенность DS18B20 - способность работать без внешнего
питания. Эта возможность предоставляется через подтягивающий резистор.
Высокий сигнал шины заряжает внутренний конденсатор (CPP), который
питает прибор, когда на шине низкий уровень. Этот метод носит название
"Паразитное питание". При этом максимальная измеряемая температура
составляет + 100 °C. Для расширения диапазона температур до + 125 °C
необходимо использовать внешнее питание.
6. Разработка алгоритмов работы системы.
На рисунке 10 приведен алгоритм работы устройства в виде блок схемы.
15
Начало
Инициализация
МК
Измерение
температуры
Вывод значения
температуры на
экран
T<T1
Включить
нагреватель
T>=T2
Выключить
нагреватель
ДА
ДА
НЕТ
НЕТ
Конец
Рисунок 10 - Алгоритм работы устройства
7. Электрическая схема соединения элементов
16
Рисунок 11 - Электрическая схема соединения элементов
8. Текст программы в Atmel Studio
#include <avr/io.h>
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
// 1 Wire Bus interface functions
#include <1wire.h>
// DS1820 Temperature Sensor functions
#include <ds1820.h>
// maximum number of DS1820 devices
// connected to the 1 Wire bus
#define MAX_DS1820 8
// number of DS1820 devices
// connected to the 1 Wire bus
unsigned char ds1820_devices;
// DS1820 devices ROM code storage area,
// 9 bytes are used for each device
17
// (see the w1_search function description in the help)
unsigned char rom_codes[MAX_DS1820][9];
unsigned char i,devices;
// Alphanumeric LCD functions
#include <alcd.h>
// Declare your global variables here
char lcd_buffer[33]; //Буфер для хранения данных для вывода на дисплей
int temp,temp1,temp2,temp3,temp4; //Переменная для хранения значения температуры
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) |
(0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) |
(0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) |
(0<<DDC0);
// State: Bit6=T Bit5=T Bit4=T Bit3=P Bit2=P Bit1=P Bit0=P
PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (1<<PORTC3) | (1<<PORTC2) |
(1<<PORTC1) | (1<<PORTC0);
// Port D initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out
Bit0=Out
DDRD=(1<<DDD7) | (1<<DDD6) | (1<<DDD5) | (1<<DDD4) | (1<<DDD3) | (1<<DDD2) |
(1<<DDD1) | (1<<DDD0);
// State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=1 Bit2=1 Bit1=0 Bit0=0
PORTD=(1<<PORTD7) | (1<<PORTD6) | (1<<PORTD5) | (1<<PORTD4) | (1<<PORTD3) |
(1<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=(0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) |
(0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) |
(0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
18
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) |
(0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) |
(0<<TOIE1) | (0<<TOIE0);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) |
(0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) |
(0<<ACIS1) | (0<<ACIS0);
SFIOR=(0<<ACME);
// ADC initialization
// ADC disabled
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) |
(0<<ADPS1) | (0<<ADPS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) |
(0<<SPR1) | (0<<SPR0);
// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// 1 Wire Bus initialization
// 1 Wire Data port: PORTD
// 1 Wire Data bit: 7
// Note: 1 Wire port settings are specified in the
// Project|Configure|C Compiler|Libraries|1 Wire menu.
w1_init();
// Determine the number of DS1820 devices
// connected to the 1 Wire bus
ds1820_devices=w1_search(0xf0,rom_codes);
19
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 3
// D5 - PORTB Bit 4
// D6 - PORTB Bit 5
// D7 - PORTB Bit 6
// Characters/line: 16
lcd_init(16);
// go on the second LCD line
temp3=20;
temp4=20;
while (1)
{
for (i=0;i<devices;) //опрос датчиков
{
temp=ds1820_temperature_10(&rom_codes[i][0]);
if (i==0) temp1=temp;
if (i==2) temp2=temp;
};
if(PINC.0==0) {
temp3++;
if (temp3>100) temp3=100;
delay_ms(100);
}
if(PINC.1==0) {
temp3--;
if (temp3<20) temp3=20;
delay_ms(100);
}
if(PINC.2==0) {
temp4++;
if (temp4>100) temp4=100;
delay_ms(100);
}
if(PINC.3==0) {
temp4--;
if (temp4<20) temp4=20;
delay_ms(100);
}
lcd_gotoxy(0,0);
lcd_putsf("t1=");
sprintf(lcd_buffer,"%i%u\xdf",temp1/10,temp1%10); //запись в буфер текста и
значений температуры в подготовленном виде
lcd_puts(lcd_buffer); //вывод содержимого буфера на LC
lcd_gotoxy(0,1);
lcd_putsf("t2=");
20
sprintf(lcd_buffer,"%i%u\xdf",temp2/10,temp2%10); //запись в буфер текста и
значений температуры в подготовленном виде
lcd_puts(lcd_buffer); //вывод содержимого буфера на LC
lcd_gotoxy(0,2);
lcd_putsf("t3=");
sprintf(lcd_buffer,"%i%u\xdf",temp3/10,temp3%10); //запись в буфер текста и
значений температуры в подготовленном виде
lcd_puts(lcd_buffer); //вывод содержимого буфера на LC
lcd_gotoxy(0,3);
lcd_putsf("t4=");
sprintf(lcd_buffer,"%i%u\xdf",temp4/10,temp4%10); //запись в буфер текста и
значений температуры в подготовленном виде
lcd_puts(lcd_buffer); //вывод содержимого буфера на LC
// Place your code here
}
}
21
9. Результат работы
22
Заключение
В ходе выполнения данной курсовой работы была создана
электрическая схема по управлению нагреванием воды в титане с помощью
микроконтроллера Atmega8.
Для проектирования системы управления была составлена
структурная схема системы автоматизации, которая помогла
конкретизировать задачи управления. Выбраны подходящие элементы для
создания электрической схемы. При выборе микроконтроллера учитывались
особенности ядра микроконтроллера, программирования, программные
возможности, характеристики электрические и периферийных модулей. Было
определено количество входных и выходных сигналов, определили вид
каждого (все сигналы цифровые). Также представлена структурная схема
микроконтроллера. Создана блок-схема алгоритма управления, на основе
которого разработана программа на программирования С.
23
Список литературы
1. Баранов В.Н. Применение микроконтроллеров AVR: схемы,
алгоритмы, программы. - М. Ж Издательский дом "Додэка XXI", 2004
2. Тигранян Р.Э. Микроклимат. Электронные системы обеспечения. -
ИП. Радиософт, 2005
3. Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel. - М.:
ИП РадиоСофт, 2002 - 176с.
4. Datasheet: Atmel 8-bit AVR Microcontroller
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!