Arduino Serial 接收数字

在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。

在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。下面是一些基本步骤和示例,展示如何接收数字。

1. 初始化串行通信

首先,确保在setup()函数中初始化了串行通信。

void setup() {
  Serial.begin(9600); // 设置波特率为9600
}

2. 接收数字

方法1:使用Serial.read()

这种方法适用于接收单个字符,然后你可以检查它是否是一个数字。

void loop() {
  if (Serial.available() > 0) { // 检查是否有数据可读
    char receivedChar = Serial.read(); // 读取一个字符
    if (receivedChar >= '0' && receivedChar <= '9') { // 检查是否为数字
      int number = receivedChar - '0'; // 将字符转换为数字
      Serial.println(number); // 打印数字
    }
  }
}

方法2:使用Serial.parseInt()

如果你期望接收的是一个完整的数字,可以使用Serial.parseInt()方法。这个方法会读取直到遇到非数字字符为止的数字,并将其作为整数返回。

void loop() {
  if (Serial.available() > 0) { // 检查是否有数据可读
    int number = Serial.parseInt(); // 读取一个整数
    if (number != 0) { // 检查是否成功读取到数字
      Serial.println(number); // 打印数字
    }
  }
}

方法3:使用Serial.readString()结合转换

如果你要接收的是一个字符串形式的数字,可以先读取整个字符串,然后将其转换为整数。

void loop() {
  if (Serial.available() > 0) { // 检查是否有数据可读
    String receivedString = Serial.readString(); // 读取一个字符串直到遇到换行符或超时(默认为1秒)
    int number = receivedString.toInt(); // 将字符串转换为整数
    if (number != 0) { // 检查转换是否成功,并确保不是非数字字符串(如空字符串)转换的结果0
      Serial.println(number); // 打印数字
    }
  }
}

注意事项:

  • 确保发送端发送的数字之间有分隔符(如换行符或空格),以便接收端可以正确区分每个数字。例如,在发送端发送数字时,可以这样发送:Serial.println(123);。
- 本文内容来自网络,如有侵权,请联系本站处理。

2024-11   阅读(1)   评论(0)
 标签: 创客 Arduino 串口

涨知识
I2S

I2S(Inter—IC Sound)总线, 又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。

评论:
相关文章
ESP32 FreeROS 双核使用

ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。


理解 MSBFIRST(最高有效位)和 LSBFIRST(最低有效位)

在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。


Arduino 和 TB6612FNG 驱动直流电机

TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。


Arduino-ESP32 Preferences库使用详解

Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。




Arduino 8×8 共阳极LED点阵显示(74HC595)

本文主要介绍8×8 共阳极LED点阵显示实验,分别是:介绍74HC595点阵模块、点阵显示指定行列LED、点阵显示汉字。


Arduino 上使用红外遥控器

日常生活中我们会接触到各式各样的遥控器,电视机、空调、机顶盒等都有专用的遥控器,很多智能手机也在软硬件上对红外遥控做了支持,可以集中遥控绝大部分家用电器。本篇介绍红外遥控相关原理及应用,通过红外遥控器控制 Uno 板载 LED 灯。


Arduino 驱动 8×8 LED点阵屏

LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。


ESP32 使用DAC模拟输出完成两路呼吸灯

ESP32的DAC函数可以实现真正的模拟输出。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。