цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков

Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков

Автор: Mike(admin) от 17-04-2019, 18:55

Визуализация данных при работе с Arduino – это то, что нам всем приходилось делать в прошлом, используя стороннее или самостоятельно разработанное программное обеспечение. Но команда Arduino недавно решила это изменить. Сегодня мы рассмотрим их решение, называемое Serial Plotter, новый инструмент, который поставляется с новыми версиями Arduino IDE.


Как использовать функцию Serial Plotter в Arduino IDE

Serial Plotter обеспечивает среду, через которую мы можем видеть графики данных, выводимых в последовательный порт Arduino в режиме реального времени. Перед включением этой функции в Arduino IDE инженерам и любителям обычно приходится писать дополнительный код с использованием других инструментов и языков программирования, таких как Python. Иногда это затрудняет отладку из-за дополнительной работы и времени, которое требуется, особенно в приложениях, основанных на сигналах, где просмотр данных на последовательном мониторе будет недостаточным.


Serial Plotter или последовательный плоттер в основном принимает значения, поступающие из заданного последовательного порта, и отображает их на графике плоскости x-y. Ось Y представляет значения из последовательного порта и автоматически настраивается при увеличении или уменьшении значения. Можно сказать, что ось X представляет собой момент времени. Каждая точка на оси x представляет выполнение оператора println в коде Arduino. Проще говоря, каждый раз, когда выполняется команда println, на графике записывается новая точка / данные (значение Y, соответствующее этой конкретной инструкции println). Ограничением Serial Plotter в этой версии Arduino IDE является тот факт, что он поддерживает всего 500 выборок данных, после чего может потребоваться перезапуск плоттера. Это может сделать плоттер непригодным для определенных приложений, но, возможно, это изменится в следующих версиях Arduino IDE.


Serial Plotter можно вызвать после загрузки кода на плату Arduino, щелкнув tools - serial plotter в раскрывающемся меню или нажав CTRL + SHIFT + L, что является сочетанием клавиш для той же операции.


Как использовать функцию Serial Plotter в Arduino IDE

Чтобы продемонстрировать использование последовательного плоттера в сегодняшнем уроке, мы создадим два примера. Для первого примера мы будем использовать Serial Plotter для получения данных с фоторезистора. Это даст нам возможность изучить, как данные изменяются в зависимости от силы света, не пытаясь понять, какие числа выводятся на последовательном мониторе. Во втором примере мы будем использовать датчик температуры и влажности DHT22. Цель этого примера – показать, как выводить данные с нескольких датчиков с помощью последовательного плоттера Arduino.


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


Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков

Для второго примера схема содержит датчик температуры и влажности DHT22, подключенный к Arduino, как показано на следующей схеме.


Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков

Код для двух примеров, с которыми мы будем работать, довольно прост. В обоих программах важна функция println(). Функция Serial.println() Arduino выводит данные на последовательный порт в виде читаемого человеком текста ASCII, за которым следует символ возврата каретки (ASCII 13 или «\r») и символ новой строки (ASCII 10 или «\n») , Эта команда принимает ту же форму, что и инструкция Serial.print(), с той лишь разницей, что символ новой строки не связан с serial.print(). Как упоминалось в начале, каждый раз, когда выполняется команда serial.println(), данные записываются в последовательный плоттер, что делает его очень важным для этого проекта. С учетом сказанного давайте рассмотрим код примеров, начиная с первого.



int LDRpin = 0;
int analogValue =0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  analogValue = analogRead(LDRpin);
  Serial.println(analogValue);
  delay(50);
}

Здесь в рамках функции бесконечного цикла void loop() мы используем функцию analogRead() для получения данных с вывода делителя напряжения, после чего данные отправляются в последовательный порт с помощью команды serial.println(), благодаря чему отображаются в виде графика в Serial Plotter.


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



#include "DHT.h"
#define DHTPIN 4  
#define DHTTYPE DHT22 
float temperature = 0.0;
float humidity = 0.0;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
 Serial.begin(9600);
 dht.begin();
 delay(100);
}
void loop() {
temperature = dht.readTemperature();
humidity = dht.readHumidity();
delay(500);
Serial.print(temperature);
Serial.print(" ");
Serial.println(humidity);
}

В функции void loop(), как обычно, делается большая часть работы. Мы начали с использования функций dht.readTempera() и dht.readHumidity, чтобы получить значение температуры и влажности от датчика. После чего мы приступили к их распечатке таким образом, чтобы Serial Plotter понимал разницу между переменными. Это делается путем печати пустого пространства между переменными (после первого значения, перед вторым значением). Без этого пустого пространства между данными плоттер увидит следующий оператор println как обновление предыдущего.


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


Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков

Как использовать функцию Serial Plotter в Arduino IDE для отображения графиков



© digitrode.ru


Теги: Arduino



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

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