разработатка схемы и алгоритма работы измерителя емкости на плате Arduino UNO. Общий раздел
Скачать 1.68 Mb.
|
Содержание ОглавлениеВведение 4 1 Общий раздел 6 1.1Анализ поставленной задачи 6 1.2 Технические требования к проектируемому устройству 6 1.3 Обзор аналогов проектируемого устройства 7 1.3.1 Аналог 1 7 1.3.2 Аналог 2 9 1.4 Вывод по проектируемому устройству 10 Несмотря на преимущества вышеперечисленных аналогов я считаю что проектируемое мной устройство будет удобнее проектировать за счёт высокой распостраненности и общей дешевизны. 10 2 Проектный раздел 11 2.3 Описание элементной базы 13 2.4 Разработка схемы электрической принципиальной 19 3 Моделирование работы микропроцессорной системы 22 3.1 Сборка схемы в программе- симуляторе 22 3.2 Программирование микропроцессорной системы 23 3.3 Тестирование и отладка микропроцессорной системы 25 Заключение 27 Список источников 28 Приложение А 29 ВведениеМикропроцессорной системой - называют специализированную информационную или управляющую систему, построенную на основе микропроцессорных средств. Микропроцессор - это программно-управляемое устройство осуществляющее процесс цифровой обработки информации и управлением им построенное на одной БИС. Микроконтроллер - управляющая микро-ЭВМ, не имеющая развитых индивидуальных органов управления, конструктивно встраиваемая в объект управления. Главное отличие между микропроцессором и микроконтроллером состоит в том, что микропроцессор используется для приложений, которые требуют интенсивной обработки, в то время как микроконтроллер используется для выполнения конкретной задачи Данная проектируемая микропроцессорная система называется схемой работы измерителя емкости. В данной схеме используется микроконтроллер ATMEGA8 Преимущества данного проектируемого устройства: Низкая цена платы Простота Большое количество периферии. Большое количество информации. Цель курсового проекта – разработать схемы и алгоритм работы измерителя емкости на плате Arduino UNO. Задачи: - Исследовать принцип работы устройства. - Рассмотреть технологии создания микропроцессорных систем. - Привести примеры аналогов устройства. - Разработать схему электрическую структурную. - Разработать схему электрическую общую. - Разработать алгоритм работы микропроцессорной системы. - Разработать управляющую программу для микропроцессорной системы. - Произвести моделирование микропроцессорной системы в программе Proteus. Исходные данные: Arduino Uno 1 Общий разделАнализ поставленной задачиВ рамках курсового проекта требуется разработать устройство измеритель емкости на базе микроконтроллера Arduino UNO. Данное устройство используется для измерения емкости конденсаторов. Часто при ремонте старых телевизоров, радиоприемников и других электронных устройств у радиолюбителя возникает необходимость в измерении емкости ряда конденсаторов, входящих в состав данных устройств. И достаточно часто это становится ощутимой проблемой, особенно когда речь идет об элементах [компонентах] с поверхностным монтажом. Простейшие мультиметры не всегда умеют измерять емкость, а специализированные устройства для выполнения этой задачи часто отличаются достаточно высокой ценой. Для решения этой проблемы мы в данной статье рассмотрим создание простейшего измерителя емкости на основе платы Arduino Uno. Устройство нашего измерителя емкости будет достаточно простое и недорогое по цене. Для создания измерителя емкости мы воспользуемся платой Arduino Uno, триггером Шмидта и микросхемой таймера 555 (555 IC timer). 1.2 Технические требования к проектируемому устройствуРазработка устройства велась с учётом следующих требований: Условия эксплуатации устройство может эксплуатироваться в любом месте где есть компьютер. Рабочая температура -40…+85c Источник питания – компьютер. Напряжение питания 2.7…5.5 В Тактовая частота 8 мГц Устройство должно работать при рекомендованных параметрах без каких-либо помех. 1.3 Обзор аналогов проектируемого устройства1.3.1 Аналог 1Технические характеристики устройства: Д иапазон измерения частоты Гц 0.1-15000000; Диапазон генерации частоты Гц 0-100000; Количество точек по горизонтали для осциллографа Шт 16; Количество точек вывода по вертикале для осциллографа Шт 8; Диапазон чувствительности входа осциллографа В 0-5; Диапазон измерения емкости мкФ 0.00001 – 2000; Диапазон измерения сопротивления ОМ 1 — 200000000; Напряжение питания В 5; Рабочая температура 0 … +60ºС. Рисунок 1.1 – Электрическая принципиальная схема устройства аналога 1 Включить прибор на экране дисплея временно (1 Сек) появится сообщение «Измерение R» и прибор перейдет в режим измерения сопротивления. Переход из одного режима в другой осуществляется циклически при помощи кнопки переключения режимов «3» в порядке: «Измерение R», «Измерение С», «Осциллограф», «Генератор», «Частотомер». При переходе из режима в режим осуществляется кратковременная индикация названия режима. В режиме «Генератор» изменение частоты генерации происходит кнопками «1» — (увеличение частоты) и «2» (уменьшение частоты). В режиме «Осциллограф» кнопками «1» и «2» производится изменение времени развертки, измерение уровня сигнала происходит автоматически с индикацией его значения. В режимах «Измерение емкости» и «Измерение сопротивления» переключение диапазонов измерения происходит автоматически. Калибровка нуля в этих режимах происходит нажатием и удержанием кнопки «1»,с последующей записью в память кнопкой «2» и калибровка по номиналу 1000 ом или 1000пф нажатием и удержанием кнопки «2» с последующей записью в память кнопкой «1». Изменение время измерения частоты осуществляется кнопкой «1», позволяющей измерять частоту с точностью до 0.1 Гц. Само время измерения (Сек) индицируется в крайнем правом знакоместе верхней строки. 1.3.2 Аналог 2Технические характеристики устройства: Д иапазон измерения частоты Гц 0.1-15000000; Рабочая температура 0 … +60ºС. ряжение питания В 5; Количество точек по горизонтали Шт 16; Количество точек вывода по вертикале Шт 8; Диапазон измерения емкости мкФ 0.00001 – 2000; Рисунок 1.1 – Электрическая принципиальная схема устройства аналога 2 1.4 Вывод по проектируемому устройствуНесмотря на преимущества вышеперечисленных аналогов я считаю что проектируемое мной устройство будет удобнее проектировать за счёт высокой распостраненности и общей дешевизны.2 Проектный разделВ проектном разделе описан алгоритм работы устройства, разработаны схема электрическая принципиальная и структурная схема. Алгоритм работы микропроцессорной системы это цепь автоматизации обработки информации и управления различными процессами. Схема электрическая принципиальная это схема, определяющая полный состав элементов и принцип их работы Структурная схема цифрового устройства это совокупность элементарных звеньев объекта и связей между ними, один из видов графической модели. 2.1 Разработка алгоритма работы микропроцессорной системы Рисунок 2.1 – Блок-схема алгоритма работы устройства 2.2 Разработка схемы электрической структурной Рисунок 2.2 - Схема электрическая структурная Описание работы схемы структурной. Из каких блоков состоит устройство, за что отвечает каждый блок, как взаимодействует с другими блоками. 2.3 Описание элементной базыВ состав элементной базы проектируемого устройства входят элементы, представленные в таблице 2.1. Таблица 2.1 – Элементная база проектируемого устройства
Микросхема таймера 555 (генератор прямоугольных колебаний) Микросхема таймера 555 (555 Timer IC) представляет собой генератор прямоугольных колебаний, или, по другому ее еще называют несинхронизованным мультивибратором. Поскольку плата Arduino Uno имеет дело с цифровыми сигналами, то она сама по себе не может измерить емкость. Для переведения емкости в цифровой вид как раз и служит используемый в проекте генератор прямоугольных колебаний. Говоря простыми словами, таймер обеспечивает на своем выходе прямоугольный сигнал, частота которого напрямую зависит от емкости конденсатора, подключенного к нему. Общая схема таймера 555 в автоколебательном режиме показана на следующем рисунке. Выходная частота сигнала в данной схеме будет зависеть от резисторов RA, RB и емкости конденсатора C. Частоту в этом случае можно рассчитать по следующей формуле: Frequency (F) = 1/ (Time period) = 1.44/ ((RA+RB*2)*C). Подставляя в данную формулу значения номиналов резисторов RA и RB и емкости C можно рассчитать частоту прямоугольной волны на выходе схемы. Используются следующие значения номиналов резисторов: RA=1 кОм, RB=10 кОм, поэтому формула примет вид: Frequency (F) = 1/ (Time period) = 1.44/ (21000*C). Выражая из этой формулы емкость, получим Capacitance C = 1.44/ (21000*F). В приведенном ниже тексте программы для расчета емкости конденсатора в нанофарадах (нФ) будем умножать полученный результат (в фарадах) на “1000000000”. Также используется ‘20800’ вместо 21000 потому что точные значения номиналов резисторов в данном случае равны 0.98K and 9.88K. То есть, если известно значение частоты прямоугольной волны, мы можем рассчитать значение емкости конденсатора. Триггер Шмидта Сигнал с выхода таймера не в полной мере пригоден для того, чтобы подавать его непосредственно на вход платы Arduino Uno. Принимая во внимание чувствительность Arduino Uno мы будем использовать триггер Шмидта, который представляет собой цифровой логический элемент (затвор, вентиль). Уровень сигнала на его выходе зависит от сигнала на его входе. Триггер Шмидта имеет определенную границу (порог) напряжения – если напряжение на входе триггера больше этой границы, то на выходе триггера сигнал высокого уровня, а если напряжение на входе триггера меньше этой границы, то на выходе триггера будет сигнал низкого уровня. Триггер Шмидта чаще всего используется совместно с логической схемой НЕТ (NOT) на его выходе. Мы в нашем проекте будем использовать микросхему 74HC14, которая имеет в своем составе 6 триггеров Шмидта. Схема соединений этих триггеров с контактами микросхемы приведена на следующем рисунке. Таблица истинности триггера Шмидта с инверсным выходом показана на рисунке ниже, поэтому в программе для Arduino Uno нам следует инвертировать сигнал с выхода триггера. Таким образом, мы подаем сигнал с выхода таймера 555 на вход триггера Шмидта, на выходе которого получаем инвертированную прямоугольную волну, которая пригодна для подачи на вход Arduino Uno. Проект основан на Arduino Uno R3, программируемом контроллере на базе ATmega328 Arduino Uno построена на базе микроконтроллера ATmega328. Платформа имеет 14 цифровых ввода/ выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB или подать питание при помощи адаптера AC/DC, или аккумуляторной батареей. Рисунок 2.3 - Arduino Uno R3. Рисунок 2.4 – Схема электрическая принципиальная Arduino Uno R3. Спецификация: Микроконтроллер ATmega328 Напряжение питания 5В Входное напряжение (рекомендуемое) 7-12В Входное напряжение (предельное) 6-20В Цифровой ввод-вывод 14 линии (6 из них = ШИМ) Аналоговый ввод 6 линий Постоянный ток на линиях ввода-вывода 40мА Постоянный ток на линии 3.3В 50мА Flash-память 32кб, 0.5 кб из них использованы для загрузчика SRAM-память 2кб EEPROM-память 1кб Тактовая частота 16МГц Технические параметры Микроконтроллер atmega328 FLASH память, КБ 32 EEPROM память, КБ 1 SRAM память, КБ 2 Цифровые входы/ выходы 14(6 с шим) Аналоговые входы 6 Рисунок 2.5 – Расположение и назначение пинов Arduino Uno R3. 2.4 Разработка схемы электрической принципиальнойРисунок 2.19 – Схема электрическая принципиальная Описание работы схемы электрической принципиальной ЖК дисплей 16х2 используется для отображения емкости измеряемого конденсатора. Схема генератора прямоугольных колебаний (волн) (555 в автоколебательном режиме) подсоединена к Arduino, также к ней подключается конденсатор, емкость которого необходимо измерить. Триггер Шмидта (микросхема 74LS14 или 74HC14) включен в состав схемы чтобы удостовериться в том, что только прямоугольная волна будет попадать на контакт Arduino. Для фильтрации шумов в схему добавлены два конденсатора, включенных по питанию. Схема может измерять емкость конденсаторов в диапазоне от 10 нФ до 10 мкФ. 3 Моделирование работы микропроцессорной системыМоделирование работы микропроцессорной системы – это цикл исследований объектов систем на их моделях, процессов или явлений с целью получения информации об этих моделях. 3.1 Сборка схемы в программе- симулятореСимулирование работы электрических схем – это цепь явлений, которые предназначены для выявления ошибок или увеличения эффективности устройства. Симуляторы электронных схем используют математические модели для моделирования работы действительного устройства или схемы. Программы симуляции позволяют моделировать работу схем и являются бесценным инструментом анализа. Proteus и Workbench являются одними из самых популярных программ, для симулирования устройств. Proteus - универсальная программа, с помощью которой можно создавать различные виртуальные электронные устройства и выполнять их симуляцию. Она содержит большую библиотеку аналоговых и цифровых микросхем, датчиков, дискретных элементов. Главным преимуществом и отличием Proteus от других подобных программ для симуляции работы электрических цепей, — это возможность выполнять симуляцию работы микропроцессоров и микроконтроллеров сразу же после сборки. Рисунок 3.1 - Моделирование схемы в Proteus. 3.2 Программирование микропроцессорной системыПлата Arduino Uno имеет специальную функцию pulseIn, которая позволяет определить длительность положительной или отрицательной части прямоугольной волны: Htime=pulseIn(8,HIGH); Ltime = pulseIn(8, LOW); В представленном примере функция pulseIn измеряет время (в микросекундах), в течение которого на контакте PIN8 присутствует напряжение высокого (Htime) или низкого (Ltime) уровня. Когда мы сложим Htime и Ltime мы получим длительность цикла (периода), инвертировав которую мы получим значение частоты. А зная значение частоты, мы можем определить значение емкости по вышеприведенной формуле. То есть, в результате, мы будем подсоединять неизвестную емкость к схеме таймера 555, который будет генерировать прямоугольную волну, частота которой будет напрямую зависеть от подсоединенной емкости. Этот сигнал будет подаваться на плату Arduino Uno через триггер Шмидта. Плата Arduino Uno будет измерять частоту этой прямоугольной волны. А определив значение частоты, мы по вышеприведенной формуле рассчитываем значение емкости. На следующем рисунке показаны результаты измерения емкости. Когда к нашему устройству мы подсоединили электролитический конденсатор емкостью 1 мкФ, результат составил 1091.84 нФ 1 мкФ. А с полиэстеровым конденсатором 0,1 мкФ результат составил 107.70 nF 0.1uF. Затем мы подсоединили к устройству керамический конденсатор 0,1 мКФ и результат измерения емкости составил 100.25 nF 0.1uF. При подсоединении электролитического конденсатора 4,7 мкФ результат составил 4842.83 nF 4.8uF. Рисунок 3.2 – Разработка кода программы. 3.3 Тестирование и отладка микропроцессорной системыПроцедура проверки правильности функционирования объекта называется контролем или тестированием. Отладка − процесс обнаружения ошибок и определение источников их появления по результатам тестирования МПС Симулирование микропроцессорной системы: Сборка схемы Разработка алгоритма Запуск схемы Проверка работы микропроцессорной системы ЗаключениеЦелью курсового проекта являлась разработка схемы и алгоритма работы измерителя емкости на Arduino Uno В ходе работы над проектом были выполнены следующие этапы: - Исследовать принцип работы устройства. - Рассмотреть технологии создания микропроцессорных систем. - Привести примеры аналогов устройства. - Разработать схему электрическую структурную. - Разработать схему электрическую общую. - Разработать алгоритм работы микропроцессорной системы. - Разработать управляющую программу для микропроцессорной системы. - Произвести моделирование микропроцессорной системы в программе Proteus. Поставленные задачи курсового проектирования выполнены. Список источниковhttp://arduino.ru/ http://digitrode.ru/computing-devices/mcu_cpu/816-izmeritel-emkosti-na-arduino-svoimi-rukami.html https://meandr.org/archives/25040 https://cxem.net/izmer/izmer81.php https://cxem.net/arduino/arduino165.php https://radioprog.ru/post/627 http://mozgochiny.ru/electronics-2/izmeryaem-yomkost-kondensatora-pri-pomoshhi-arduino-svoimi-rukami/ https://www.youtube.com/watch?v=sxmKCv9STP0 Приложение АЛистинг управляющей программы для микроконтроллера #include LiquidCrystal lcd(2, 3, 4, 5, 6, 7); int32_t Htime; int32_t Ltime; float Ttime; float frequency; float capacitance; void setup() { pinMode(8,INPUT); lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("capacitance ="); } void loop() { for (int i=0;i<5;i++) { Ltime=(pulseIn(8,HIGH)+Ltime)/2; Htime=(pulseIn(8,LOW)+Htime)/2; } Ttime = Htime+Ltime; frequency=1000000/Ttime; capacitance = (1.44*1000000000)/(20800*frequency); lcd.setCursor(0,1); lcd.print(capacitance); lcd.print(" nF "); delay(500); } |