Перейти к содержанию

Лабораторная работа 12. Передача данных на ПК

Цель работы:

Дальнейшее ознакомление с работой термистора, а также применение полученных знаний и навыков для создания программы по получению данных о температуре и передача их на ПК, используя Arduino-микроконтроллер.

Теоретическая часть

Терморезисторы изготавливают из различных материалов, температурный коэффициент сопротивления (ТКС) которых достаточно высок (значительно превосходит металлические сплавы и чистые металлы). Непосредственно основной резистивный элемент получают посредством порошковой металлургии, обрабатывая халькогениды, галогениды и оксиды определенных металлов, придавая им различные формы, напри- мер, форму дисков или стержней различных размеров, больших шайб, средних трубок, тонких пластинок, маленьких бусинок, размерами от единиц микрон до десятков миллиметров.

Материалами для терморезисторов сегодня служат: смеси поликристаллических оксидов переходных металлов, таких как кобальт, марганец, медь и никель, соединений AIIIBV-типа, а также легированных, стеклообразных полупроводников, таких как кремний и германий, и некоторых других веществ. Терморезисторы, в целом, можно классифицировать на:

  • Низкотемпературного класса (рабочая температура ниже 170 К);
  • Среднетемпературного класса (рабочая температура от 170 К до 510 К);
  • Высокотемпературного класса (рабочая температура от 570 К и выше);
  • Отдельный класс высокотемпературных (рабочая температура от 900 К до 1300 К).

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

Практическая часть

В данной лабораторной работе необходимо разработать программу, которая будет получать данные о температуре, и передавать их на ПК. Для этого необходимо рассмотреть и использовать функции из набора функций Serial. Чтобы увидеть значение температуры, необходимо в программе Arduino IDE после загрузки скетча на контроллер открыть во вкладке инструменты монитор порта.

Функция Serial.begin

Описание:

Функция Serial.begin инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Для обмена данными с компьютером используйте следующие значения: 300, 1 200, 2 400, 4 800,

9 600, 14 400, 19 200, 28 800, 38 400, 57 600 или 115 200. При соединении

через порты входа/выхода 0 и 1 также могут быть использованы другие значения скорости, требуемые устройством, с которым будет осущест- вляться обмен данными. Чаще всего используют 9 600 бит/с. Функция begin не является глобальной, она принадлежит объекту с именем Serial. Объекты, если говорить условно, это - переменные, которые обладают собственными функциями, к которым обращаются через символ точки.

Синтаксис:

Serial.begin(speed)

Параметры:

speed: скорость в бит/c (бод)

Возвращаемые значения:

Нет

Функция Serial.print (Serial.println)

Описание:

Функция Serial.print начинает передачу данные через последователь- ный порт как ASCII текст. Эта функция может принимать различные типы данных. Так целые числа выводятся соответствующими им символами ASCII. Вещественные выводятся с помощью двух ASCII символов, для це- лой и дробной части. Байты передаются как символ с соответствующим номером. Симоволы и строки отсылаются как есть. Функция Serial.println отличается от Serial.print только тем, что после передачи данных будет произведен перенос курсора на следующую строку.

Синтаксис:

Serial.print(val) Serial.print(val, format)

Параметры:

val: данные для передачи через последовательное соединение format: базис для целых чисел или количество знаков после запятой

для вещественных

Возвращаемые значения:

Нет

Схема подключения:

К данной рабочей программе используется следующая схема подключения (Рисунок 12.1). Для реализации проекта потребуются следующие компоненты: макетная плата, резистор на 10 кОм (1 шт), термистор (1 шт) и провода.

Рисунок 12.1. Внешний вид схемы

После сборки схема имеет следующий вид (Рисунок 12.2):

Рисунок 12.2. Внешний вид схемы после сборки

Рабочая программа:

#include <math.h> int minute = 1;

// Параметр конкретного типа термистора (из datasheet): 
#define TERMIST_B 3950
#define VIN 5.0 void setup()

{
// Для передачи данных на ПК открывается канал передачи
// данных через USB через последовательный порт.
// Для этого используется команда начала передачи
// с указанием скорости. 
Serial.begin(9600);
// Передача заголовка таблицы в текстовом виде,
// печать строки. Символ «\t» является табуляцией. 
Serial.println(«Minute\tTemperature»);

}
void loop()
{

float voltage = analogRead(A0) * VIN / 1024.0; 
float r1 = voltage / (VIN - voltage);

float temperature = 1./( 1./(TERMIST_B)*log(r1)+1./(25. + 273.) ) - 273;
// Печать минуты и температуры, разделяя их табом.
// println переводит курсор на новую строку Serial.print(minute);
Serial.print("\t"); Serial.println(temperature);
delay(60000);
// Прибавление 1 к счётчику минут
++minute;
}

Список дополнительных вопросов:

  1. Какими свойствами должны обладать материалы для термисторов?
  2. Какие материалы используют для изготовления термисторов?
  3. Как классифицируют терморезисторы?
  4. Какие у них диапазоны для работы?
  5. От чего меняются характеристики термисторов?
  6. Как работает функция Serial.begin?
  7. На каких скоростях работает функция?
  8. О чём говорит приставка Serial.?

Список дополнительных задач:

  1. Изменить программу так, чтобы изменения вводились каждые 30 секунд.
  2. Изменить программу так, чтобы предыдущие значения температуры также выводились на экран.
  3. Подключить к плате светодиод, и изменить программу так, чтобы он загорался при наступлении идеальной комнатной температуры, выводил на экран это сообщение.

Center-nav

← Назад | Оглавление | Вперёд →