Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


2368
Бытовой цифровой термометр на микроконтроллере

Термометры комнатные или уличные, автомобильные или офисные используются в быту каждый день. В наши дни цифровая техника вытесняет спиртовые, пружинные и ртутные термометры. Погрешность показаний и срок эксплуатации современных цифровых термометров зависит от назначения прибора и от их производителя. Основная часть цифровых термометров производится на специализированных жидкокристаллических дисплеях, недоступных радиолюбителю. Автор собрал термометр из доступных импортных и отечественных деталей. Представленное устройство имеет универсальное бытовое применение как на улице, так и в помещении. В перспективе, если реализовать питание прибора от солнечных батарей совместно с аккумуляторами, эксплуатация термометра на улице будет достаточно длительной.

Термометр собран на основе микроконтроллера Tiny 15 и драйвера четырехразрядного семисегментного индикатора SAA1064 [20]. Микроконтроллер Tiny 15 оснащен четырехканальным 10-разрядным АЦП, Flash-памятью на 1 Кбайт, памятью EEPROM на 64 байт, шестью линиями ввода-вывода, встроенным RC-генератором, а также двумя таймерами/счетчиками.

Драйвер SAA1064 содержит интерфейс 12С, регистр-указатель, регистр управления, мультиплексор пар индикаторов и четыре регистра дешифратора семисегментных индикаторов [21].

Предел измерений температуры составляет -22°..+30° С. Прибор проектировался в наиболее дешевом варианте исполнения, поэтому точность измерения — в пределах последнего знака. Термометр можно использовать ночью, поскольку индикация температуры основана на све-тодиодах и потому очень яркая. Данные о температуре окружающей среды снимаются с терморезистора.

Температурный датчик

Терморезистор — это устройство, сопротивление которого значительно изменяется с изменением температуры. Он обладает высоким температурным коэффициентом сопротивления (ТКС) в широком диапазоне температур [22]. Различают терморезисторы с отрицательным

ТКС, сопротивление которых падает с возрастанием температуры (их часто называют термисторами), и терморезисторы с положительным ТКС, сопротивление которых увеличивается с возрастанием температуры (их называют позисторами).

Терморезисторы обоих типов изготавливают из полупроводниковых материалов. Диапазон изменения их ТКС составляет -6,5°....+70°С. Наиболее распространенные терморезисторы изготавливают на основе медно-марганцевых (ММТ), кобальто-марганцевых (КМТ) и медно-ко-бальто-марганцевых (СТЗ) оксидных полупроводников.

По конструктивному оформлению терморезисторы можно разделить на следующие категории (рис. 10.1):

• в виде цилиндрических стержней (КМТ-1, ММТ-1, КМТ-4 ММТ-4);

• в виде дисков (СТ1-17,' СТЗ-17, СТ5-1);

• в виде плоских прямоугольников (СТЗ-23);

• в виде миниатюрных бусинок (СТ1-18, СТ1-19) [22].

Автор выбрал терморезистор ММТ-1 сопротивлением 9,0 кОм при 25°С.

У терморезисторов также есть недостатки, которые необходимо учитывать при выборе. Первый недостаток — это инерционность изменения сопротивления. Автор проделал следующий эксперимент. Терморезистор ММТ-1 на 9,0 кОм был помещен в морозильник и подключен к измерительному устройству, которое сканировало сопротивление каждые 200 мс. Данные передавались на компьютер и записывались в файл . dat, а затем были преобразованы в формат таблицы Excel (табл. 10.1), и на их основании был построен график выхода на температуру комнаты (рис. 10.2).

Таблица 10.1. Данные измерений, полученные для терморезистора ММТ-1


Минуты

Секунды

Полные секунды

Сопротивление, кОм

43

41

0

30,44

43

42

1

30,45

43

43

2

30,52

43

44

3

30,43

43

46

5

30,43

Минуты

Секунды

Полные секунды

Сопротивление, кОм

43

47

6

30,28

43

48

7

30,28

43

49

8

28,33

43

50

9

25,42

43

52

11

23,06

43

53

12

21,95

43

54

13

21,11

43

55

14

20,21

43

56

15

19,52

43

58

17

18,78

43

59

18

17,72

44

0

19

17,35

44

1

20

16,97

44

2

21

16,57

44

4

23

16,37

44

5

24

15,88

44

6

25

15,69

44

7

26

15,54

44

8

27

15,46

44

10

29

15,40

44

11

30

15,22

44

12

31

15,22

44

13

32

15,00

44

14

33

14,94

44

16

35

14,77

44

17

36

14,75

44

18

37

14,64

44

19

38

14,54

44

21

40

14,30

44

22

41

14,15

44

23

42

13,89

44

24

43

13,89

44

25

44

13,82

44

27

46

13,70

Минуты

Секунды

Полные секунды

Сопротивление, кОм

44

28

47

13,71

44

29

48

13,58

44

30

49

13,58

44

31

50

13,53

44

33

52

13,53

44

34

53

13,37

44

35

54

13,41

44

36

55

13,37

44

37

56

13,39

44

39

58

13,26

44

40

59

13,27

44

41

60

13,12

44

42

61

13,19

44

43

62

13,10

44

45

64

13,12

44

46

65

13,09

44

47

66

13,05

44

48

67

13,03

44

49

68

13,03

44

51

70

12,99

44

52

71

13,07

44

53

72

13,10

44

54

73

13,03

44

55

74

12,95

44

57

76

12,92

44

58

77

12,91

44

59

78

12,90

45

0

79

12,90

45

1

80

12,89

45

3

82

12,88

45

4

83

12,89

45

5

84

12,88

45

6

85

12,87

45

7

86

12,86

Минуты

Секунды

Полные секунды

Сопротивление, кОм

45

9

88

12,88

45

10

89

12,85

45

11

90

12,83

45

12

91

12,87

45

14

93

12,74

45

15

94

12,78

45

16

95

12,74

45

17

96

12,68

45

19

98

12,63

45

20

99

12,60

45

21

100

12,57

45

22

101

12,57

45

24

103

12,53

45

25

104

12,53

45

26

105

12,49

45

27

106

12,48

45

28

107

12,42

45

30

109

12,47

45

31

110

12,40

45

32

111

12,42

45

33

112

12,38

45

34

113

12,36

45

35

114

12,34

45

36

115

12,33

45

38

117

12,30

45

39

118

12,27

45

40

119

12,23

45

42

121

12,26

45

43

122

12,26

45

44

123

12,25

45

45

124

12,21

45

47

126

12,20

45

48

127

12,21

45

49

128

12,21

Минуты

Секунды

Полные секунды

Сопротивление, кОм

45

60

129

12,13

45

51

130

12,07

45

53

132

12,07

45

54

133

12,01

45

55

134

12,00

45

56

135

12,00

45

57

136

11,96

45

59

138

11,99

46

0

139

11,98

46

1

140

12,00

46

2

141

11,95

46

4

143

11,98

46

5

144

11,86

46

6

145

11,89

46

8

147

11,87

46

9

148

11,88

46

10

149

11,88

46

11

150

11,89

46

13

152

11,80

46

14

153

11,81

46

15

154

11,81

46

16

155

11,86

46

18

157

11,81

46

19

158

11,80

46

20

159

11,82

46

21

160

11,81

46

22

161

11,86

46

24

163

11,85

46

25

164

11,84

46

26

165

11,76

46

27

166

11,80

46

29

168

11,80

46

30

169

11,80


При выходе на постоянные показания, что соответствует примерно 0°С (сопротивление 30,44 кОм) терморезистор быстро перемещен из морозилки в комнату с температурой 20°С (сопротивление 11,8кОм). Можно сделать вывод, что для установки точных значений температуры необходимо около двух минут. Это объясняет неверные (некорректные) показания температуры в случаях, когда термометр был помещен на открытую местность и при этом дул ветер, или термометр быстро перемещали из комнаты на кухню или в ванную, где температура значительно отличается. Показания прибора будут явно некорректны, поскольку сопротивление терморезистора изменяется очень медленно.

Второй недостаток терморезисторов — это шумы. Амплитуда шумов, создаваемая терморезистором, может достигать больших значений, тогда как АЦП микроконтроллера быстро фиксирует эти данные с термодатчика. В результате показания термометра будут некорректны.

Эти недостатки, а также большой разброс параметров при изготовлении терморезисторов, ограничивают их массовое применение. Однако возможности микроконтроллеров (имеется ввиду не только Tiny 15) неограниченны, поскольку данные можно не только измерять, но и обрабатывать с помощью математического анализа, использовав методы интеграции и интерполяции, а в крайних случаях — коррекцию по эталону.

Схема термометра

Схема термометра (рис. 10.3) имеет питание +4,5 В от трех батарей 1,5 В типа А А (относительно общей "земли") и ток потребления не более 60 мА.


Рис. 10.3. Схема термометра

Канал измерения имеет стабилизированное питание +2,6 В от цепочки R5-D1 и состоит из измерительного моста TR1/R2/R3/R4/R7/R8 и операционного усилителя IC3, выполняющего роль сумматора. Для устранения смещения нуля операционного усилителя IC3 настраивается баланс R6 и выполняется коррекция по току нуля R9.

Операционный усилитель КР140УД1208 может работать при напряжении питания от +2,4 В до +18,0 В, поэтому питание ОУ не стабилизировано. В состав микроконтроллера Tiny 15 входит 10-разрядный АЦП, который коммутируется встроенным четырехканальным мультиплексором при настройке АЦП. На входе АЦП внутри микроконтроллера присутствует конденсатор, который компенсирует потери при считывании данных в АЦП, поэтому после операционного усилителя нет конденсатора, выполняющего роль компенсатора. Микроконтроллер сохраняет работоспособность при питании +2,7 В.

Связь между драйвером SAA1064 и АЦП микроконтроллера Tiny 15 осуществляется по линии 12С [20, 24]. Протокол 12С в микроконтроллере реализован программно. Скорость передачи данных по шине 1С ограничивается частотой тактовых импульсов SCL, равной 125 кГц.

Драйвер сохраняет работоспособность при напряжении питания +4,0 В. В случае постоянного сбоя передачи данных засвечивается или моргает светодиод "ERROR". Основной причиной сбоя является низкое напряжение питания или необходимость перезапуска микроконтроллера. Для управления семисегментными индикаторами в драйвере присутствуют дешифраторы, а также схема управления мультиплексированием по два разряда четырехразрядного индикатора. Мультиплексоры могут коммутировать ток до 110 мА, но в случае применения светодиодных матриц с ультраярким свечением и снижении питания ниже нормы драйвер может выйти из строя. По этой причине для усиления по току установлены транзисторы Ql, Q2. Ток базы транзисторов при управлении ограничен в драйвере.

В драйвере реализованы команды для ступенчатой регулировки выходного тока мультиплексора, а также в него встроен собственный генератор, поэтому синхронизация необязательна. Для знака "±" выпускаются специальные индикаторные матрицы, однако, если их нет, можно использовать четыре прямоугольных светодиода.

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

Очень важное значение для правильности показаний имеет канал измерения. Прежде всего, зависимость сопротивления терморезистора от температуры в идеале — линейная, хотя на практике наблюдаются отклонения в каждом экземпляре.

Данные с терморезистора может снимать АЦП микроконтроллера, однако автор для измерения сопротивления терморезистора выбрал мост, а также усиление сигнала разницы, что накладывает нелинейность на напряжение с выхода операционного усилителя (т.е. на получаемые данные).

Еще одной проблемой является выбор коэффициента усиления операционного усилителя (ОУ). Питание схемы ОУ имеет ограничение сверху, поскольку иПит = 4,5 В, и снизу, поскольку питание ОУ — од-

нополярное. Для решения проблемы питание измерительного моста стабилизировано на уровне +2,6 В, а коэффициент усиления ОУ равен 13. Дальнейшее уменьшение коэффициента усиления приведет к искажению данных и увеличению погрешности.

Если канал измерения идеально настроен, то необходимо обратить внимание на линеаризацию полученных данных после АЦП. При этом положительная ветвь температуры имеет одну формулу линеаризации, а отрицательная — другую. В качестве базисной точки автор выбрал 0°С. Результат линеаризации данных относительно этого базиса представлен на графике в файле Расчет характеристик терморезистора. xls 2 (идеальная прямая с углом наклона 45°).

Данные после АЦП линеаризуются (заодно масштабируются) и преобразуются в десятичное значение. Погрешность показаний достигает 3° в верхнем и нижнем пределе измерения температуры, что вполне допустимо для бытового применения. Для улучшения полученных данных можно ввести корректировочные коэффициенты на разных участках температурного диапазона. При разряде батарей менее 4,0 В данные индикации температуры будут иметь погрешность, которая увеличивается с падением напряжения питания.

Программа

Код программы на ассемблере представлен в листинге 10.1, а шест-надцатеричный код — в листинге 10.2.


Структура программы упрощена и не имеет сложных логических переходов (это видно из блок-схемы на рис. 10.4). В начале программы настраивается конфигурация порта ввода-вывода. Затем несколько раз считываются данные из АЦП. Эти данные суммируются и делятся на количество раз считывания (вычисляется среднее арифметическое). Это необходимо для уменьшения погрешности измерения и устранения шумов терморезистора.

АЦП настроен на преобразование с частотой 50 кГц. Опорное напряжение для АЦП берется от вывода питания микроконтроллера. В процессе аналого-цифрового преобразования двоичное число Z вычисляется по уравнению Z = 1024*Ubx/Uref, где UBx при 0°С составит 0,58 В, a Uref=Vcc. Для Tinyl5 Z = 14716.

После получения точных данных АЦП в программе выделяется положительное и отрицательное значение температуры.



В этом действии от данных АЦП вычитается эталонное шестнадца-теричное значение 0°С= 147i6- Получившиеся положительные данные соответствуют положительной температуре, а отрицательные — отрицательной. Положительные данные линеаризуются по формуле (константы — в шестнадцатеричном коде):

Линеаризация 1 =38- 7000/илцп.

Отрицательные данные линеаризуются по формуле (константы — в шестнадцатеричном коде):

Линеаризация 2 = (иАцп - 147)/6.

Детектор нуля должен быть нолем при Детектор 0 = (иАцп - 147) (константа — в шестнадцатеричном коде).

Подпрограмма деления длится 800 мкс при тактовой частоте микроконтроллера 1,6 МГц. После линеаризации получаем соответствующий масштаб полученных данных, которые преобразуются в данные о реальной температуре в десятичном коде (с помощью таблицы hex-bed по адресу prog2).

На следующем этапе данные разбиваются поразрядно. Для работы семисегментного индикатора двоично-десятичное значение преобразуется в семисегментный код с помощью таблицы в конце программы (по адресу ргодЗ). Преобразование кода выполнено по методике, описанной в [23]. Полученная цифра разряда передается по шине 12С на драйвер семисегментных индикаторов по протоколу, описанному в [21]. Поскольку первый индикатор состоит из светодиодов, то для засветки знака "минус" передается код 01XX, а для засветки знака "плюс"— код 11XX.

Драйвер SAA1064 имеет ряд особенностей. Поскольку питание схемы может снизиться до уровня меньше 4.0 В, необходимо сбросить флаг по питанию в драйвере SAA1064. Для этого следует прочитать данные из регистра состояния по адресу 77i6. Для записи байта информации в микросхему необходимо ввести адрес ведомого устройства 761б, определяющий направление записи, а затем — задать выходной ток драйвера (автор выбрал среднее значение 6 мА, код 47J6).

Далее при получении квитирования посредством логического нуля записывается субадрес каждой цифры, и пересылаются два разряда знака и два разряда значения температуры. В случае, если квитирование от SAA1064 не подтверждается (т.е. данные записываются с ошибкой), программа переходит в режим "ERROR" и засвечивается светодиод "ERROR". Выдерживается пауза в 230 мс, все данные обнуляются,

а выполнение программы автоматически начинается сначала. В начале программы светодиод "ERROR" гаснет. Если ошибка повторяется регулярно, то светодиод "ERROR" моргает или светится, пока не будет устранена неисправность.

Плата

Монтажная схема платы представлена на рис. 10.5, а схема разводки с двух сторон — на рис. 10.6.


Рис. 10.5. Монтажная схема платы управления термометром

Монтажная плата изготовляется из двухстороннего металлизированного текстолита. На ней установлен батарейный отсек с тремя секциями для батарей питания типа АА и элементы схемы с индикаторными матрицами (рис. 10.7). На плате присутствует кнопочный выключатель питания (на ток не более 0,2 А) и разъем PTR-500 для подсоединения датчика температуры. Примерный дизайн прибора представлен на рис. 10.8. Корпус из шгастика имеет окно для индикации и отверстие для кнопочного выключателя питания и индикатора ошибки. Окно индикации изготовлено из оргстекла и снизу покрыто пленкой, выделяющей элементы индикации. К корпусу окно приклеено клеем.


Светодиодная матрица знака "±" собрана из четырех прямоугольных светодиодов в виде отдельных сегментов знака "+". Светодиоды установлены на панельки так, чтобы общая высота совпадала с высотой индикаторов. Индикатор и микросхемы установлены на панельки, для облегчения монтажа при отбраковке элементов.

Автор собрал термометр навесным монтажом, применив:

• семисегментные светодиодные индикаторы HLEK-S512GWA;

• операционный усилитель КР140УД1208 (или любой другой с низковольтным питанием и низким дрейфом "нуля");

• стабилитрон Dl — КС119А на напряжение стабилизации 2,6 В;

• резисторы мощностью 0,125 Вт;

• переменные резисторы — миниатюрные, маломощные на 22 кОм.

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

Настройка

Прежде всего, необходимо проверить правильность сборки устройства. Для этого в микроконтроллер записывается тестовая программа, ассемблерный код которой представлен в листинге 10.3, а шестнадцате-ричный — в листинге 10.4.

$IMAGE22$

Эта программа выводит на дисплей цифры +25, микроконтроллер устанавливается в панельку, и затем включается питание. Если тест прошел без проблем, то в микроконтроллер записывается рабочая программа (см. листинг 10.1 и листинг 10.2) (микроконтроллер в панельку не устанавливается), после чего необходимо настроить канал измерения.

В этом случае правильные показания температуры настраиваются в следующей последовательности.

1. Терморезистор или термопару опустить в воду и заморозить в стакане в морозильной камере холодильника. При этом выводы термодатчика изолированы термоусадочной трубкой и не должны касаться какой-либо поверхности.

2. После заморозки необходимо подобрать резистор R2, равный по сопротивлению замороженному датчику.

3. Установив замороженный датчик в схему и включив питание, замеряем напряжение на выводе 6 операционного усилителя. Нулевому показанию температуры должно соответствовать напряжение 0,58 В на этом выводе. В противном случае оно регулируется с помощью резисторов R6 и R9.

4. Для установки коэффициента усиления Ку = 13 операционного усилителя, необходимо припаять навесным монтажом резистор 6 кОм от 6 вывода ОУ IC3 к выводу 2 IC3 (на схеме резистор имеет обозначение **, поскольку подбирается с высокой точностью при настройке канала измерения). Для улучшения чувствительности можно лобяпитт* положите itkhvjo обпатнл/ю гяяи Ппи снижении темпе-

ратуры напряжение снижается, а при увеличении температуры — увеличивается.

5. Проверка работы. ОУ во всем диапазоне температур и регулировка с помощью R9, ПОС и ООС изменения выходного напряжения ОУ. Данные по напряжению соответствуют таблице Расчет характеристик терморезистора. xls (последний сектор).

6. Устанавливается микроконтроллер с "прошитой" рабочей программой, подается питание и проверяются осциллограммы SDA (канал В), SCL (канал А) при развертке 100 мс и 200 мс, а также показания температуры.

Небольшая коррекция температуры достигается настройкой резистора R4. В случае возникновения большой погрешности на разных участках показания температуры необходима коррекция программным путем. Если при включении питания происходят сбои, то к выводам 1 и 4 микроконтроллера припаивается конденсатор на 10 нФ.

При изготовлении прибора на SMD-элементах себестоимость можно снизить в два раза. Прибор является попыткой преодолеть различные проблемы путем математического моделирования с помощью современных средств. Математические преобразования выполнены на языке ассемблера из-за ограничения в ресурсах и размерах памяти микроконтроллера Tiny 15. Для дальнейшего улучшения характеристик измерения температуры необходимо реализовать два канала измерения (отдельно для положительной и отрицательной температуры) с хорошими линейными передаточными характеристиками, а также задействовать более производительный микроконтроллер.


Категория: Устройства на микроконтроллерах | Добавил: Администратор (23.10.2011)
Просмотров: 11272 | Теги: НА, термометр, бытовой, микроконтроллере, цифровой | Рейтинг: 0.0/0


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024