Построение графика температуры с помощью MATLAB и Arduino


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

Внешний вид проекта для построения графика температуры с помощью MATLAB и Arduino

Чтобы лучше понять материал этой статьи вы можете изучить следующие проекты на нашем сайте, посвященные взаимодействию системы MATLAB и платы Arduino:

Создание графического интерфейса в MATLAB для построения графика

Чтобы в MATLAB запустить графический интерфейс пользователя (GUI - Graphical User Interface) напечатайте в окне команд:

Откроется новое всплывающее окно, в нем выберите новый blank GUI как показано на следующем рисунке.

Запуск редактора графического интерфейса в MATLAB

После этого нам на рабочее поле редактора графического интерфейса необходимо поместить кнопку (push button), две оси (two axes) и одно текстовое поле (text box). Кнопка будет использоваться для старта измерений и построения графика, две оси – для построения графика, а в текстовом поле будет показываться текущее значение температуры.

Размещение в графическом редакторе элементов для нашего проекта

Чтобы изменить размер или форму размещенных в поле редактора элементов нажмите на них один раз. После двойного нажатия на эти элементы можно будет изменять множество других их параметров.

Окно для редактирования параметров графических элементов

Вы можете настроить внешний вид этих элементов по своему усмотрению, мы использовали (кастомизировали) следующий дизайн этих элементов:

Внешний вид созданных нами графических элементов

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

Объяснение кода MATLAB для построения графика

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его основные фрагменты.

Скопируйте следующие строки и вставьте их в программу начиная со строки №74 чтобы убедиться в том что плата Arduino взаимодействует с MATLAB каждый раз когда вы запускаете на выполнение m-файл.

Добавление кода в MATLAB для взаимодействия с платой Arduino

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

Для функции кнопки старта (Start button’s function) скопируйте и вставьте следующий фрагмент программы. Для непрерывного измерения, отображения и построения графика температуры мы будем использовать цикл типа while. В этом цикле мы будем использовать задержку в 1 секунду – с этой периодичностью будут обновляться результаты измерений.

Код программы в MATLAB для построения графика температуры

Теперь давайте рассмотрим как работает этот фрагмент кода. В следующих 3-х строчках кода мы устанавливаем начальные значения переменных: ‘x’- 0, ‘go’ – true. Также мы объявляем глобальную переменную ‘global a’ для взаимодействия с платой Arduino в программе.

Следующая команда используется для считывания температуры с аналогового контакта A1 платы Arduino, к которому подключен контакт OUT’ датчика температуры LM35.

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

Далее для построения графика используется функция ‘plot(handles.axes1,x)’, в ней axes1 обозначает ссылку или имя графического поля/графика (Graph area). То есть если ли вы будете строить несколько графиков, вам необходимо будет использовать несколько таких имен. К примеру, для построения второго графика вам необходимо будет уже записать ‘plot(handles.axes2,x)’.

Команда ‘grid on’ используется для включения сетки на графике, ‘xlabel’, ‘ylabel’ и ‘title’ используются для установки имен осей x и y на графике и для названия графика.

Команда ‘Drawnow’ используется для обновления информации на графике в режиме реального времени.

Для отображения значения температуры в текстовом поле каждую секунду используется команда:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Установленная на компьютер математическая система MATLAB (предпочтительно версии R2016a или выше).
  3. Датчик температуры LM35 (купить на AliExpress).
  4. Соединительные провода.
  5. Макетная плата.

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

Схема проекта для построения графика температуры в реальном времени с помощью MATLAB и Arduino представлена на следующем рисунке.

Схема проекта для построения графика температуры в реальном времени с помощью MATLAB и ArduinoПостроение графика с помощью MATLAB

После сборки аппаратной части проекта запустите на выполнение созданный .m файл в системе MATLAB.

Запуск на выполнение .m файла в Matlab

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

Ждем пока Matlab выполняет код файла

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

На экране компьютера при этом у вас должна формироваться примерно следующая картина:

Тестирование работы проекта

Более подробно все эти процессы вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы для MATLAB

Видео, демонстрирующее работу проекта

(1 голосов, оценка: 5,00 из 5)
Загрузка...
1 714 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *