Arduino - 串行绘图仪

Arduino - Serial Plotter Arduino - 串行绘图仪

In this tutorial, we will learn how to use the Serial Plotter on Arduino IDE, how to plot the multiple graphs.
在本教程中,我们将学习如何在Arduino IDE上使用串行绘图仪,如何绘制多个图形。

About Serial Plotter 关于串行绘图仪

Serial Plotter is one of the tools in Arduino IDE. Arduino can read the temperature, humidity or any kind of sensor data, and send it to Serial Plotter. Serial Plotter receives data from Arduino and visualizes data as waveforms. Serial Plotter can visualize not only single but also multiple sensor data in the same graph.
串行绘图仪是Arduino IDE中的工具之一。Arduino可以读取温度,湿度或任何类型的传感器数据,并将其发送到串行绘图仪。串行绘图仪从Arduino接收数据,并将数据可视化为波形。串行绘图仪不仅可以在同一图形中显示单个传感器数据,还可以显示多个传感器数据。

Data is exchanged between Serial Plotter and Arduino via USB cable, which is also used to upload the code to Arduino. Therefore, To use Serial Plotter, we MUST connect Arduino and PC via this cable.
数据通过USB线在串行绘图仪和Arduino之间交换,USB线也用于将代码上传到Arduino。因此,要使用串行绘图仪,我们必须通过此电缆连接Arduino和PC。

Serial Plotter includes a selection box to select the serial baud rate and a graph:
串行绘图仪包括一个选择框,用于选择串行波特率和一个图表:

  • X-axis: represent the time. It has 500 points. The time between each point is the time between two consecutive Serial.println() function calls. This time is usually equal to the time of loop() function.
    X轴:表示时间。它有 500 点。每个点之间的时间是两个连续的 Serial.println() 函数调用之间的时间。这个时间通常等于 loop() 函数的时间。
  • Y-axis: represents the values received from Arduino. The Y-axis automatically adjusts itself as the value increases or decreases.
    Y轴:表示从Arduino接收的值。Y 轴会随着值的增加或减少而自动调整。

If you want to use the Serial Plotter on your smartphone, you can use the Web Serial Plotter instead.
如果您想在智能手机上使用串行绘图仪,您可以改用网络串行绘图仪。

How To Open Serial Plotter 如何打开串行绘图仪

On Arduino IDE, Click Serial Plotter icon
在 Arduino IDE 上,单击 Serial Plotter 图标
请添加图片描述

Plotting of Single Line in Graph 图中单线的绘制

To print a single graph, we just need to send the data and terminate it by “\r\n” character.
要打印单个图形,我们只需要发送数据并用“\r\n”字符终止它。

In detail, we just need to useSerial.println() function
详细来说,我们只需要使用 Serial.println() 函数

Serial.println(variable); 

※ NOTE THAT: ※ 注意事项:

Serial.println() automatically appends “\r\n” characters after data.
Serial.println() 自动在数据后附加“\r\n”字符。

Example Code 示例代码

This example reads the value from an analog input pin and plots them on Serial Plotter
本例从模拟输入引脚读取值,并将其绘制在串行绘图仪上

/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-serial-plotter*/void setup() {Serial.begin(9600); //好像115200不行
}void loop() {int y1 = analogRead(A0);Serial.println(y1);delay(100);
}
Quick Steps 快速步骤
  • Copy the above code and open with Arduino IDE
    复制上面的代码并使用Arduino IDE打开
  • Click Upload button on Arduino IDE to upload code to Arduino
    单击Arduino IDE上的“上传”按钮,将代码上传到Arduino
  • Open Serial Plotter 开放式串行绘图仪
  • Select baurate 9600 选择金黄色 9600
  • See graph on Serial Plotter
    参见串行绘图仪上的图表

请添加图片描述

Plotting of Multiple Lines in Graph 在图形中绘制多条线

When we want to plot multiple variables, we need to separate variables from each other by “\t” or " " character. The last value MUST be terminated by “\r\n” characters.
当我们想绘制多个变量时,我们需要用"\t"或" "字符将变量彼此分开。最后一个值必须以“\r\n”字符结尾。

In detail: 详细地:

  • The first variable 第一个变量
Serial.print(variable_first); 
  • The middle variables 中间变量
Serial.print("\t"); // or Serial.print(" ")
Serial.print(variable_nth); 
  • The last variable 最后一个变量
Serial.print("\t"); // or Serial.print(" ") 
Serial.println(variable_last); 

Example Code 示例代码

This example reads the value from 4 analog input pins and plots them on Serial Plotter
本例从4个模拟输入引脚读取值,并在串行绘图仪上绘制

/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-serial-plotter*/void setup() {Serial.begin(9600); 
}void loop() {int y1 = analogRead(A0);int y2 = analogRead(A1);int y3 = analogRead(A2);int y4 = analogRead(A3);Serial.print(y1);Serial.print(" "); // a space ' ' or  tab '\t' character is printed between the two values.Serial.print(y2);Serial.print(" "); // a space ' ' or  tab '\t' character is printed between the two values.Serial.print(y3);Serial.print(" "); // a space ' ' or  tab '\t' character is printed between the two values.Serial.println(y4); // the last value is followed by a carriage return and a newline characters.delay(100);
}

Multiple Graph: 多图:

请添加图片描述

Example of 3 Sine Waveforms 3 正弦波形示例

/** Created by ArduinoGetStarted.com** This example code is in the public domain** Tutorial page: https://arduinogetstarted.com/tutorials/arduino-serial-plotter*/void setup() {Serial.begin(9600);
}void loop() {for(int i = 0; i < 360; i += 5) {float y1 = 1 * sin(i * M_PI / 180);float y2 = 2 * sin((i + 90)* M_PI / 180);float y3 = 5 * sin((i + 180)* M_PI / 180);​    Serial.print(y1);
​    Serial.print("\t"); // a space ' ' or  tab '\t' character is printed between the two values.
​    Serial.print(y2);
​    Serial.print("\t"); // a space ' ' or  tab '\t' character is printed between the two values.
​    Serial.println(y3); // the last value is followed by a carriage return and a newline characters.​    delay(100);}
}

Multiple Sine Waveform Graph:
多正弦波形图:

请添加图片描述

Video Tutorial 视频教程

We are considering to make the video tutorials. If you think the video tutorials are essential, please subscribe to our YouTube channel to give us motivation for making the videos.
我们正在考虑制作视频教程。如果您认为视频教程是必不可少的,请订阅我们的 YouTube 频道,为我们制作视频提供动力。

Function References 函数参考

  • Serial.available()
  • Serial.begin()
  • Serial.print()
  • Serial.println()
  • Serial.read()
  • Serial.readBytes()
  • Serial.readBytesUntil()
  • Serial.readString()
  • Serial.readStringUntil()
  • Serial.write()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webstorm无法识别@路径的问题,左键无法跳转

在项目根目录下创建 webstorm.config.js use strict; const webpackConfig require(vue/cli-service/webpack.config.js); module.exports webpackConfig;webstorm设置里找到以下位置&#xff0c;引入新建的 webstorm.config.js即可&#xff0c;不生效把webstorm重启一下

android Studio 无线开发调试: PC机远程安卓电脑 免费

背景 公司的安卓机比较大&#xff0c;还有连接着串口设备不好挪动。 但是遇到问题调试很麻烦。想找到一套远程调试方法。 实现 要求&#xff1a; adb android Studio 2023.3.1 安卓机IP:1928.168.1.228 直接用adb远程连接&#xff1a;adb connect 1928.168.1.228 默认端口…

HarmonyOS Next开发学习手册——ExtensionAbility

概述 EmbeddedUIExtensionAbility 是EMBEDDED_UI类型的ExtensionAbility组件&#xff0c;提供了跨进程界面嵌入的能力。 EmbeddedUIExtensionAbility需要和 EmbeddedComponent 一起配合使用&#xff0c;开发者可以在UIAbility的页面中通过EmbeddedComponent嵌入本应用的Embed…

读AI新生:破解人机共存密码笔记11智能爆炸

1. 大猩猩问题 1.1. 大约1000万年前&#xff0c;现代大猩猩的祖先创造了进化出现代人类的遗传谱系 1.1.1. 它们的物种基本上没有未来&#xff0c;除了我们屈尊所允许它们拥有的未来 1.1.2. 我们不希望在超级智能机器面前处于类似的地位 1.2. 大猩猩问题就是人类是否能在一个…

电脑提示msvcr120.dll丢失怎样修复

文件功能与重要性&#xff1a;msvcr120.dll 文件的功能和重要性体现在多个方面&#xff0c;以下是对其核心功能的详细分析&#xff1a; 运行时支持 msvcr120.dll 提供了运行时环境&#xff0c;使得使用 Microsoft Visual C 2013 编译的程序能够调用必要的运行时函数。这些函数…

Mysql----表的约束

提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、表的约束 表的约束&#xff1a;表中一定要有约束&#xff0c;通过约束让插入表中的数据是符合预期的。它的本质是通过技术手段&#xff0c;让程序员插入正确的数据&#xff0c;约束的最终目标是保证…

Java | Leetcode Java题解之第189题轮转数组

题目&#xff1a; 题解&#xff1a; class Solution {public void rotate(int[] nums, int k) {k % nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end) {whil…

【机器学习】图神经网络(NRI)模型原理和运动轨迹预测代码实现

1.引言 1.1.NRI研究的意义 在许多领域,如物理学、生物学和体育,我们遇到的系统都是由相互作用的组分构成的,这些组分在个体和整体层面上都产生复杂的动态。建模这些动态是一个重大的挑战,因为往往我们只能获取到个体的轨迹数据,而不知道其背后的相互作用机制或具体的动态…

Shardingsphere-Proxy 5.5.0数据迁移

Shardingsphere-Proxy 5.5.0数据迁移 Shardingsphere系列目录&#xff1a;背景配置集群部署搭建Zookeeper修改shardingsphere-proxy配置重启shardingsphere-proxy 执行数据迁移连接代理数据库实例&#xff08;Navicate&#xff09;应用代理数据库注册目标分片数据库存储单元创建…

如何将图片旋转任意角度?这四种方法轻松将图片旋转至任意角度!

如何将图片旋转任意角度&#xff1f;当我们涉及到图片时&#xff0c;常常会面临角度不佳的挑战&#xff0c;这一问题可能会给我们带来一系列不便&#xff0c;让我们深入探讨这些挑战&#xff0c;并探寻解决之道&#xff0c;首先&#xff0c;错误的角度可能导致视觉失真&#xf…

计算机Java项目|基于SpringBoot的音乐网站

作者主页&#xff1a;编程指南针 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容&#xff1a;Java项目、Python项目、前端项目、人工智能与大数据、简…

【SQL Server数据库】带函数查询和综合查询(1)

目录 1&#xff0e;统计年龄大于30岁的学生的人数。 2&#xff0e;统计数据结构有多少人80分或以上。 3.查询“0203”课程的最高分的学生的学号。 4&#xff0e;统计各系开设班级的数目(系名称、班级数目)&#xff0c;并创建结果表。 5&#xff0e;选修了以“01”开头的课…

C语言入门课程学习笔记9:指针

C语言入门课程学习笔记9 第41课 - 指针&#xff1a;一种特殊的变量实验-指针的使用小结 第42课 - 深入理解指针与地址实验-指针的类型实验实验小结 第43课 - 指针与数组&#xff08;上&#xff09;实验小结 第44课 - 指针与数组&#xff08;下&#xff09;实验实验小结 第45课 …

AI入门:AI发展势头这么猛,你在哪个阶段,落后了吗

生活的各方面都在发生着各种变化&#xff0c;笔者的教育生涯伴随着考试分数和排名&#xff0c;但现在的小学已经不公开分数和排名了&#xff0c;高考都屏蔽分数防止炒作了。 个人认为这是一个好的现象&#xff0c;教育就应该只有一个单纯的目的&#xff0c;那就是培养学生如何…

2024上海MWC 参展预告 | 未来先行,解锁数字化新纪元!

一、展会介绍——2024世界移动通信大会 2024年世界移动通信大会上海(MWC上海)将于6月26日至28日在上海新国际博览中心举行。 本届大会以“未来先行(Future First)”为主题聚焦“超越5G”、“数智制“人工智能经济’造”三大热点话题。届时将在包括超级品牌馆(Super Hall)在内…

Linux操作系统汇编语言基础知识(图文代码)

1、什么是汇编语言&#xff0c;它在计算机语言中的地位&#xff1f; 汇编语言是程序设计语言的基础语言&#xff0c;是唯一可以直接与计算机硬件打交道的语言2、汇编语言与源程序、汇编程序、汇编的关系&#xff1f; 3、汇编语言的特点 \1) 汇编语言与机器指令一一对应&#…

封装vuetify3中v-time-picker组件,并解决使用时分秒类型只能在修改秒之后v-model才会同步更新的问题

目前时间组件还属于实验室组件&#xff0c;要使用需要单独引入&#xff0c;具体使用方式查看官网 创建公共时间选择器组件 common-time-pickers.vue 子组件页面 <template><div><v-dialog v-model"props.timeItem.isShow" activator"parent&q…

网页里面的3D交互展示是怎么做的呢?

网页里实现3D交互展示已经有非常成熟的软件和平台&#xff0c;使用起来非常便捷高效&#xff0c;也不需要懂编程和开发。具体方法如下&#xff1a; 1、设计3D模型&#xff1a;使用3D建模软件&#xff08;如Blender, 3ds Max, Maya等&#xff09;制作好3D模型&#xff0c;确保模…

Struts2 S2-061 远程命令执行漏洞(CVE-2020-17530)

目录 Struts2介绍 漏洞介绍 环境搭建 漏洞探测 执行命令 反弹shell 这一篇还是参考大佬的好文章进行Struts2 S2-061远程命令执行漏洞的学习和练习 Struts2介绍 百度百科 Struts2框架是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Ja…

昇思25天学习打卡营第1天|MindSpore快速入门

今天是参加华为MindSpore昇思25天学习打卡营的第一天&#xff0c;通过博客记录一下自己的学习路程 初识MindSpore 昇思MindSpore是一个全场景深度学习框架&#xff0c;旨在实现易开发、高效执行、全场景统一部署三大目标。 昇思MindSpore总体架构图 通过一套统一的MindSpore开…