在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。下面是一些基本步骤和示例,展示如何接收数字。
首先,确保在setup()函数中初始化了串行通信。
void setup() {
Serial.begin(9600); // 设置波特率为9600
}
这种方法适用于接收单个字符,然后你可以检查它是否是一个数字。
void loop() {
if (Serial.available() > 0) { // 检查是否有数据可读
char receivedChar = Serial.read(); // 读取一个字符
if (receivedChar >= '0' && receivedChar <= '9') { // 检查是否为数字
int number = receivedChar - '0'; // 将字符转换为数字
Serial.println(number); // 打印数字
}
}
}
如果你期望接收的是一个完整的数字,可以使用Serial.parseInt()方法。这个方法会读取直到遇到非数字字符为止的数字,并将其作为整数返回。
void loop() {
if (Serial.available() > 0) { // 检查是否有数据可读
int number = Serial.parseInt(); // 读取一个整数
if (number != 0) { // 检查是否成功读取到数字
Serial.println(number); // 打印数字
}
}
}
如果你要接收的是一个字符串形式的数字,可以先读取整个字符串,然后将其转换为整数。
void loop() {
if (Serial.available() > 0) { // 检查是否有数据可读
String receivedString = Serial.readString(); // 读取一个字符串直到遇到换行符或超时(默认为1秒)
int number = receivedString.toInt(); // 将字符串转换为整数
if (number != 0) { // 检查转换是否成功,并确保不是非数字字符串(如空字符串)转换的结果0
Serial.println(number); // 打印数字
}
}
}
AMR是Autonomous Mobile Robot的缩写,即自主移动机器人,是集环境感知,动态决策规划,行为控制与执行等多功能于一体的综合系统。
Queue 库提供了一个通用的 C++ 动态队列实现,专为在 Arduino 项目中使用而定制。
本程序是小鹏物联网智能浇花套件的单机版程序(不连接物联网),供同学们参考。
ArrayList 类是一个 C++ 模板类,它提供了 ArrayList 的实现,以便轻松存储任何指定类型的值。它允许使用索引进行高效存储和检索,支持排序操作。
ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。
在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
本文介绍一种使用Arduino开发板控制乐高EV3马达的方法。
要生成随机数,可以使用Arduino随机数函数random()。