Разработка цифрового термометра с диапазоном измеряемых температур 0-70 °C

Страницы работы

Содержание работы

ОТЧЕТ: Цифровой термометр

Составил: Кохно К.С.

Краткое содержание:

Техническое задание и основные элементы схемы  - 4

Аналоговая часть – 5

Цифровая часть -8

Программная часть -11

Погрешности устройства-12

Описание программы – 12

Проверка прибора – 24

Техническое задание:

Диапазон измеряемых температур: 0 – 70 С

Цена деления (шаг индикации): 0.1 С

Время обновления показаний: 1 сек

Основные элементы прибора:

Всь прибор состоит из 2-х основных частей:

1)  Аналоговая часть (усилительная)

2)  Цифровая часть

Перевод аналогового в цифровой сигнал осуществляется с помощью внутреннего АЦП микроконтроллера.

3)  Для удобства схема питается от USB компьютера, (разъем USB-B)

Аналоговая часть:

Выходной сигнал сенсора имеет линейный вид:

Так как подключаемый датчик имеет не дифференциальный выходной сигнал, то аналоговая часть состоит из 2-х основных частей:

1)  Вычитатель

2)  Усилитель

Схема аналоговой части:

В схеме используется ОУ 2 штуки, марки AD8628.

Распиновка ОУ:

Вычитатель вычитает одно напряжение из другого, а усилитель усиливает напряжение в определенное количество раз.

Схема датчика (на двух транзисторах КТ3102):

Настройка вычитателя:

Вычитатель  сделан на ОУ(левая часть схемы) и должен иметь 4 одинаковых резистора(10К).

U1 – вычитаемое напряжение, которое задается построечным резистором. Это напряжение устанавливается равным минимальному выходному сигналу сенсора: 1.25В (100 С).

Выход вычитателя имеет напряжение от 0 до dU=Umax-Umin.  dU имеет максимум = 0,24 при 0 С.

Этот максимум далее усиливается усилителем до 2.56В, т.к. это опорное напряжение АЦП микроконтроллера (внутренний ИОН).

Настройка усилителя:

Формула усилителя:

;

Где R1 – резистор по обратной связи, а R2 – резистор на землю.

Расчет коэффициента усиления:

Отсюда: k=2.56/0.24=10.66; (примерно)

Это значит, что можно поставить резисторы:

R1=10К;

R2=1K;

И получим k=1+10=11 .

На практике,  из-за погрешности резисторов коэффициент усиления примерно получился k=10,75

В итоге датчик меняет выходное напряжение, а на выходи усилителя напряжение изменяется от 0 до 2.56 В.

Обработанный таким образом сигнал можно подключать к микроконтроллеру.

Цифровая часть:

Схема Цифровой части:

Описание схемы:

Сигнал DIGITAL – выход усилителя.

Сканирование клавиатуры производится путем подачи на PB4-7 последовательно 1 и считывания сигнала с PB0-3; при считанной 1 видим, что нажата определенная клавиша.

Резисторы на клавиатуре предназначены, для перевода напряжения PB0-3 в логический 0, когда туда не поступает  1.

Светодиод предназначен в основном как индикатор цикла, хотя нажав клавишу 2 ему можно задать определенный режим свечения.

100n – конденсатор для стабильности питания(защита от шумов),

10 Ом- резистор для светодиода дисплея,

5К и 10 мкФ  - узел, отвечающий за сброс.

Распиновка микроконтроллера ATMega16A  в PDIP корпусе:

Схема программатора:

Распиновка вилки программатора:

1-MOSI

2-Vcc

3-не использ

4-RESET

5-SCK

6-MISO

7-GND

Программная часть

Программа имеет несколько меню, перейти в которые можно по нажатию клавиш:

2-меню просмотра построечных коэффициентов и изменения значения опорного напряжения

Чтобы изменить воспринимаемое программой опорное напряжение нажать А и вводить значение, разделяющая точка вводится кнопкой #;

С - меню ввода характеристики аналоговой части. Причем при вводе ADCH – это значение АЦП в данной точке, ввод осуществляется как и в 1 случае. Причем нумерация точек должна соответствовать:

Причем в случае, с техническим заданием:

ADCH1=255;                                                              T1=0;

ADCH2=0;                                                                   T2=98;

98-температура кипения.

В главном меню программы выводится значение ацп – ADCH, значение DIGITAL; и температура;

Нажав кнопку D можно включить или отключить мигающий светодиод(индикация цикла).

Описание программы:

Ниже приведен листинг кода (только тот код, который написан мной):

Для включения АЦП микроконтроллера нужно установить

ADCSRA= 0xC7; что соответствует 11000111

Расшифровка битов:

0-2: задает предделитель (стоит максимум 128 изза максимального кварца)

3: выключено прерывания по АЦП

4: флаг, показывающий, что АЦП закончило преобразование

5: триггер (захват напряжения)

6: старт преобразования

7: ВКЛ АЦП

Файл main.c:

#include <intrinsics.h>

#include <iom16.h>

#include "defines.h"

#include "lcd.h"

void main( void )

{

__disable_interrupt();  // отключили прерывания

LCD_init(); // инициализация дисплея

// инициализация порта клавиатуры

DDRB=0xF0;   // 11110000

// инициализация ацп

DDRA=0xF0;        // 11110000  инициализация входа АЦП

Похожие материалы

Информация о работе