Разработка структурной схемы устройства. Принцип работы его блоков: источника напряжения, цифрового программируемого устройства, семисегментного дисплея, датчиков давления и температуры. Разработка алгоритма работы управляющей программы, ее блок-схема.
Аннотация к работе
Устройство состоит из четырех блоков: источника напряжения, цифрового программируемого устройства, семисегментного дисплея, датчика атмосферного давления и температуры в помещении и датчика внешней температуры. Оно выполняет такие функции, как получение значений температуры и давления с датчиков, обработка полученных данных и вывод информации на дисплей. Показание температуры внутри помещения считывается с датчика BMP085 и аналогично значению давления передается в подпрограмму Temperature(int Tin, int Tout). В качестве датчика внешней температуры использован терморезистор, поэтому прежде, чем передавать полученное значение в подпрограмму Temperature(int Tin, int Tout), требуется провести линейную интерполяцию полученного значения напряжения с термистора и соотнести полученное значение падения напряжения с соответствующим значением температуры. Блок-схемы подпрограмм Pressure(float P), Temperature(int Tin, int Tout) и CALCTEMPERATURE(float AD) приведены на рисунках 3.4, 3.5, 3.6. цифровой барометр датчикВ данной курсовой работе продемонстрирована возможность разработки цифровых устройств на микроконтроллере ATMEGA328 в составе инструмента для проектирования электронных устройств Arduino Uno R3.
План
Содержание
Введение
Разработка структурной схемы устройства
Разработка принципиальной схемы
Разработка алгоритма работы управляющей программы
Разработка управляющей программы
Заключение
Список использованных источников
Введение
Одним из важнейших направлений научно-технического прогресса является развитие и применение микропроцессоров. Их малые размеры, высокая надежность, большие вычислительные и логические способности позволяют создавать контролирующие, управляющие и обрабатывающие цифровые устройства высокого качества и низкой стоимости. Начиная с 1971 года, объемы ежегодного производства микроконтроллеров в несколько раз превышают объемы производства процессоров.
Микроконтроллеры применяются системах промышленной автоматики, в измерительной технике, в управлении транспортом, в бытовой технике, где необходима не столько мощность процессора, сколько баланс между ценой и достаточной функциональностью.
На сегодняшний день существует более 200 модификаций микроконтроллеров, среди которых популярностью пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology, AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры архитектуры ARM, которую разрабатывает фирма ARM.
1. Разработка структурной схемы устройства
Структурная схема цифрового барометра приведена на рисунке 1.1. Устройство состоит из четырех блоков: источника напряжения, цифрового программируемого устройства, семисегментного дисплея, датчика атмосферного давления и температуры в помещении и датчика внешней температуры.
Основой цифрового барометра является цифровое программируемое устройство (ЦПУ). Его основой является микроконтроллер ATMEGA328 в составе модуля Arduino Uno R3. Оно выполняет такие функции, как получение значений температуры и давления с датчиков, обработка полученных данных и вывод информации на дисплей.
Датчик BMP085 измеряет атмосферное давление с высокой точностью, а также получает данные о температуре воздуха и высоты над уровнем моря. Он отличается производительностью, точностью (минимальное значения измерения давления - 0.03HPA) и очень низким энергопотреблением.
Принцип действия датчика внешней температуры состоит в использовании термистора - полупроводникового прибора, электрическое сопротивление которого изменяется в зависимости от его температуры. ЦПУ получает значение падения напряжения с термистора, преобразует его в цифровой код и передает его в управляющую программу. Расчет значения температуры производится путем сопоставления полученного напряжения значению из таблицы соответствующих температур (таблицы температур находятся в технической документации термистора).
Жидкокристаллический модуль МТ-10Т7 состоит из БИС контроллера и ЖК панели и может отображать 10 знакомест.
2. Разработка принципиальной схемы
Принципиальная схема устройства показана на рисунке 2.1. Входное напряжение подается на вход VCC датчика давления, на вход VSS дисплея и в цепь с термистором, выполняющую функцию датчика внешней температуры.
Выводы датчика BMP085 SCL и SDA подключены к портам Arduino Uno A5/SCL и A4/SDA соответственно. Посредством этих выводов на Arduino осуществляется связь I2C и передача информации между датчиком и микропроцессором.
Порт назначения адреса А дисплея подключен к выводу D10 Arduino Uno, порты DB0-DB3, выполняющие функцию шин адреса/данных, подключены к D7-D4 соответственно. Порты дисплея R/W и RS предназначены для записи данных в модуль, подключены к выводам D9 и D8. Порты D4-D10 являются цифровыми входами, из которых D5, D6, D9, D10 обеспечивают широтно-импульсную модуляцию с разрешением 8 бит для получения изменяющегося аналогового сигнала.
Принципиальная схема Arduino Uno показана на рисунке 2.2.
Рисунок 2.2 - Схема электрическая принципиальная Arduino Uno
Для рассматриваемого устройства спецификация приведена в таблице 2.1.
Таблица 2.1 - Перечень элементов схемы электрической принципиальной разрабатываемого устройства
Обозначение Наименование Кол. Примечание
Микросхемы
DD1 Uno Arduino 1
Дисплей
DD2 ЖК модуль МТ-10Т7 1
Резисторы
R1 Резистор выводной - 10 КОМ 1
R2 Термистор - 2,2 КОМ 1
Конденсаторы
C1 Конденсатор - 100 НФ 1
C2-C3 Конденсатор - 0.1 МКФ 2
Дроссели
L2 Дроссель выводной - 10 МКГН 1
3. Разработка алгоритма работы управляющей программы
В общем виде управляющая программа показана на рисунке 3.1.
Рисунок 3.1 - Общий вид управляющей программы
Общая блок-схема программы представлена на рисунке 3.1. При подключении питания однократно выполняется подпрограмма setup(), проверяющая подключение датчика и инициализирующая дисплей. После этого циклически выполняется подпрограмма loop(), которая считывает и преобразует полученные с датчиков данные в понятную пользователю форму и выводит информацию на дисплей, до того момента, пока питание не будет отключено. Показания давления и температуры сменяют друг друга с интервалом в три секунды. Блок-схемы программ setup() n loop() представлены на рисунках 3.2, 3.3.
Рисунок 3.2 - Блок-схема подпрограммы setup()
Рисунок 3.3 - Блок-схема подпрограммы loop()
Показание атмосферного давления считывается с датчика BMP085, умножается на переводной множитель Kmm для перевода из паскалей в миллиметры ртутного столба и передаются в подпрограмму Pressure(float P), где обрабатывается для корректного вывода на дисплей. Преобразованные данные (значения разрядов числового значения давления с точностью до 0,01 мм ртутного столба) передаются в строку INFOPRESS[10].
Показание температуры внутри помещения считывается с датчика BMP085 и аналогично значению давления передается в подпрограмму Temperature(int Tin, int Tout).
Механизм считывания и обработки внешней температуры несколько сложнее. В качестве датчика внешней температуры использован терморезистор, поэтому прежде, чем передавать полученное значение в подпрограмму Temperature(int Tin, int Tout), требуется провести линейную интерполяцию полученного значения напряжения с термистора и соотнести полученное значение падения напряжения с соответствующим значением температуры. Для этого полученное значение напряжение передается в подпрограмму CALCTEMPERATURE(float AD), которое возвращает значение температуры. После этого полученное числовое значение передается в подпрограмму Temperature(int Tin, int Tout) вместе со значением внутренней температуры. Значение Tout умножается на поправочный множитель 1,286 для минимизации погрешности. Обработанная информация заносится в строку INFOTEMP[10]. Блок-схемы подпрограмм Pressure(float P), Temperature(int Tin, int Tout) и CALCTEMPERATURE(float AD) приведены на рисунках 3.4, 3.5, 3.6. цифровой барометр датчик
Для отображения обработанной информации используется подпрограмма DISPSTRING(char Str[10]). После установления начального адреса символу с каждой позиции переданной строки устанавливается соответствие из массива SEGMENTMAP[30], который содержит передаваемые на семисегментный дисплей коды символов. Блок-схема данной подпрограммы изображена на рисунке 3.7.
float Kmm = 0.00750063755419211 byte STPIN = 4; //start pin No for output 4 bits DB0-DB3 byte WR1pin = 8; //pin No for WR1 byte WR2pin = 9; //pin No for WR1 byte ADPIN = 10; // address/data signal int SENSORPIN = A0; // select the input pin for the potentiometer int LEDPIN = 13; //select the pin for the LED int SENSORVALUE = 0; // variable to store the value coming from the sensor byte SEGMENTMAP[30] = {B11101110, B01100000, B00101111, B01101101, B11100001, B11001101, B11001111, B01101000, B11101111, B11101101, B00100011, B11000001, B11100110, B11101010, B10101001, B10001110, B00000001, 0, B01000011, 0, B11111110, B01110000, B00111111, B01111101, B11110001, B11011101, B11011111, B01111000, B11111111, B11111101};
///////////////////////////////////////////////////////// void DATACLR() { int pin=0;
for (pin=STPIN; pin<=STPIN 3; pin ) {
DIGITALWRITE(pin, LOW); }
STROBEWR();
STROBEWR();
}
Вывод
В данной курсовой работе продемонстрирована возможность разработки цифровых устройств на микроконтроллере ATMEGA328 в составе инструмента для проектирования электронных устройств Arduino Uno R3.
Конечным результатом проведенной работы являются электронный барометр с возможностью измерения температуры, его структурная и принципиальная схемы цифрового, а также алгоритм функционирования системы и листинг программы.
Таким образом, цели работы курсового проектирования были достигнуты в полном объеме.
Список литературы
Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. - М.: Энергоатомиздат, 1987.
Хартов В. Я. Микроконтроллеры AVR/. Практикум для начинающих. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2007.
Петин В. Проекты с использованием контроллера Arduino. - M.: BHV, 2015.