21xrx.com
2025-06-17 13:59:47 Tuesday
文章检索 我的文章 写文章
C++程序100例:RTUno(0)
2023-07-05 06:07:27 深夜i     16     0
C++ RTUno 100例 程序 编程

C++程序100例系列旨在分享一百个C++实例,以便初学者可以更好地了解这门编程语言。今天,我们将介绍第 RTUno(0) 个实例。

RTUno(0)程序是一个简单的命令行应用程序,用于控制Arduino板上的LED灯闪烁。 它使用了Arduino和C++的基本库功能,通过串口连接到PC上并发送指令,可实现在指定时间内控制LED灯亮或闪烁。

首先,我们需要包含头文件和库:

#include <Arduino.h>
#include <SoftwareSerial.h>

在程序的 setup() 函数中,我们设置了串口的波特率、串口通信端口和 LED 的控制引脚。 

SoftwareSerial mySerial(10, 11); // RX, TX
int LEDpin = 13; // LED针脚的数字信号引脚
int duration = 500; // LED闪烁的时间间隔,500毫秒

在 loop() 函数中,我们通过消息队列读取并解析串口上收到的命令。 如果接收到的命令是 “ON” 或 “OFF”,它会从命令队列的开头删除该指令并将 LED 控制到相应的状态。 如果接收到的是 “TOGGLE”,则 LED 状态会在 on 和 off 之间切换。

void loop()
{
 if (mySerial.available())
 { 
  String cmd = mySerial.readStringUntil('\n');
  cmd.trim();
  if (cmd == "ON")
  {
   digitalWrite(LEDpin, HIGH);
   Serial.println("LED ON");
   delay(duration);
  }
  else if (cmd == "OFF")
  {
   digitalWrite(LEDpin, LOW);
   Serial.println("LED OFF");
   delay(duration);
  }
  else if (cmd == "TOGGLE")
  {
   digitalWrite(LEDpin, !digitalRead(LEDpin));
   Serial.println("LED TOGGLE");
   delay(duration);
  }
  else
  {
   Serial.println("Invalid command: " + cmd);
  }
 }
}

最后,我们还需要一个发送命令的工具,可以将指定的命令发送到串行端口上。以下是发送指令的代码:

void sendCommand(String cmd)
{
 mySerial.println(cmd);
}

这就是RTUno(0)程序的全部内容。 它可能很简单,但它展示了如何使用 Arduino 和 C++ 库,如何设置和解析串行端口通信,以及如何控制电子设备。 这些基础知识是编写更复杂和实用的程序的基础。

  
  

评论区