21xrx.com
2024-12-22 22:22:56 Sunday
登录
文章检索 我的文章 写文章
C++程序100例:RTUno(0)
2023-07-05 06:07:27 深夜i     --     --
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++ 库,如何设置和解析串行端口通信,以及如何控制电子设备。 这些基础知识是编写更复杂和实用的程序的基础。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复