- Създаване на графичен потребителски интерфейс MATLAB за нанасяне на графика
- MATLAB код за нанасяне на графиката
- Необходим материал
- Електрическа схема
- Начертайте графиката с MATLAB
Графиките винаги са полезни за визуализиране на данните и става много лесно да се намерят тенденции и модели, като се разглеждат. Наличен е много софтуер за нанасяне на графики въз основа на входните стойности, днес ще използваме MATLAB за нанасяне на графики въз основа на данните за температурата от сензора LM35. Този урок ще ви даде основна идея за това как да начертаете графика в реално време с помощта на MATLAB. Тук се използва Arduino Uno за получаване на температурни данни от температурния сензор LM35.
Преди да продължите по-нататък, ако сте нов в MATLAB, можете да проверите предишните ни уроци по MATLAB за по-добро занижаване:
- Първи стъпки с MATLAB: Кратко въведение
- Свързване на Arduino с MATLAB - мигащ светодиод
- Последователна комуникация между MATLAB и Arduino
- DC управление на двигателя с помощта на MATLAB и Arduino
- Управление на стъпков двигател с помощта на MATLAB и Arduino
Създаване на графичен потребителски интерфейс MATLAB за нанасяне на графика
Първо трябва да изградим GUI (графичен потребителски интерфейс) за начертаване на графика с данните за температурата. За да стартирате GUI, въведете командата по-долу в командния прозорец
ръководство
Ще се отвори изскачащ прозорец, след което изберете нов празен GUI, както е показано на изображението по-долу,
Сега трябва да изберем един бутон, две оси и едно текстово поле за графичен интерфейс MATLAB . Бутонът ще се използва за стартиране на температурното отчитане, две оси за нанасяне на графиката и текстово поле за показване на текущата стойност на температурата.
За да преоразмерите или да промените формата на бутона, оси или бутона за редактиране на текст, просто кликнете върху него и ще можете да плъзнете ъглите на бутона. Чрез двукратно щракване върху някое от тях ще можете да промените цвета, низа и етикета на този конкретен бутон. След персонализиране ще изглежда така
Можете да персонализирате бутоните според вашия избор. Сега, когато запазите това, в прозореца на редактора на MATLAB се генерира код. За да накарате вашия Arduino да изпълнява някаква конкретна задача, свързана с вашия проект, винаги трябва да редактирате този генериран код. Така че по-долу сме редактирали кода MATLAB. Можете да научите повече за командния прозорец, прозореца на редактора и т.н. в Първи стъпки с урок MATLAB.
MATLAB код за нанасяне на графиката
Пълният код на MATLAB за проектиране на термометър с помощта на LM35 и Arduino е даден в края на този проект. Освен това тук включваме GUI файла (.fig) и кодовия файл (.m) за изтегляне, с помощта на който можете да персонализирате бутоните или размера на осите според вашите изисквания. Редактирахме генерирания код, както е обяснено по-долу.
Копирайте и поставете долния код на ред №. 74, за да се уверите, че Arduino говори с MATLAB всеки път, когато стартирате m-файла .
изчисти всичко; глобален a; a = arduino ();
Когато превъртите надолу, ще видите, че в GUI има две функции, създадени за бутон и редактиране на текст , няма да бъде създадена функция за оси. Сега напишете кода във функцията Бутон (бутон за стартиране) според задачата, която искате да изпълните.
Във функцията на бутона " Старт " копирайте и поставете кода по-долу точно преди края на функцията, за да започнете да измервате температурата. За непрекъснато отчитане, показване и графично нанасяне на графиката на температурата използваме цикъл while . Осигурили сме пауза от 1 секунда след всяка итерация, така че стойността на температурата ще се актуализира всяка секунда.
x = 0; go = вярно; глобален a; while go value = readVoltage (a, 'A1'); temp = (стойност * 100); disp (темп); x =; парцел (handles.axes1, x); мрежа върху; xlabel ('Време (секунди)') ylabel ('Температура (° C)'); заглавие („Графика на температурата в реално време“); drawnow set (handles.edit1, 'String', num2str (temp)); пауза (1); край
Сега нека видим как работи кодът. В реда под три реда сме задали началната стойност на ' x ' на нула, дефинирайки ' go ' като true за стартиране на цикъл while и декларираме ' global a' за извикване на Arduino във функцията.
x = 0; go = вярно; глобален a;
Под реда на кода се използва, за да се усети стойността на напрежението от аналоговия щифт A1 на Arduino, който е свързан към щифта „OUT“ на температурния сензор LM35. Изходът ще бъде стойността на напрежението, а не аналоговата стойност.
стойност = readVoltage (a, 'A1');
Тук можем директно да преобразуваме стойността на напрежението в стойността на температурата (градуса по Целзий), като я умножим по 10
temp = (стойност * 100);
Сега за начертаване на графиката се използва функцията „plot (handles.axes1, x)“ , където ax1 е препратката или името на областта на Графика. Така че, ако начертавате повече от една графика, просто трябва да промените името на осите, като ако начертаете друга графика, можете да напишете графика (handles.axes2, x) '
'Grid on' се използва за Изглед на мрежата на графиката , 'xlabel', 'ylabel' и ' title ' се използват за именуване на оста x, оста y и заглавието.
парцел (handles.axes1, x); мрежа върху; xlabel ('Време (секунди)') ylabel ('Температура (° C)'); заглавие („Графика на температурата в реално време“);
„ Drawnow“ се използва за актуализиране на графичното представяне в реално време.
drawnow
За да се покаже стойността на температурата в текстовото поле за редактиране при всяка секунда отдолу се използва команда, набор (handles.edit1, 'String', num2str (temp));
Необходим материал
- MATLAB инсталиран лаптоп (Предпочитание: R2016a или по-нови версии)
- Arduino UNO
- LM35 - Температурен сензор
- Свързване на проводници
- Макет
Електрическа схема
Начертайте графиката с MATLAB
След като настроите хардуера според схемата, просто кликнете върху бутона за изпълнение, за да стартирате редактирания код във.m файл
MATLAB може да отнеме няколко секунди, за да отговори, не кликвайте върху бутоните на GUI, докато MATLAB не показва съобщение заето в долния ляв ъгъл, както е показано по-долу,
Когато всичко е готово, щракнете върху бутона за стартиране и ще започнете да получавате температурните данни в Графичната област и в полето Редактиране на текст . Стойността ще се актуализира автоматично на всяка секунда. Този интервал от една секунда можете да промените съответно в кода на MATLAB.
Резултатът ще изглежда като изображението, показано по-долу,
Ето как можете да начертаете графиката за всяка входяща стойност от Arduino с помощта на MATLAB.
Проверете демонстрационното видео по-долу за правилно разбиране.