【问题标题】:Compare Serial read data and analog read value比较串行读取数据和模拟读取值
【发布时间】:2013-01-31 08:28:02
【问题描述】:

我将通过串行通信向 Arduino 发送一个输入。该变量应该存储在一个变量中。我通过串行通信发送的数据应与模拟输入值进行比较,如果两者相等,则应执行一些操作。

通过串行通信发送给 Arduino 的数据只发送一次。因此,程序应存储该值并因此与模拟输入值进行比较。我应该使用什么,字符串或字符串转换?

【问题讨论】:

    标签: string serial-port compare arduino analog-digital-converter


    【解决方案1】:

    您使用 analogRead() 的模拟数据将是 0-1023 范围内的 int(尽管取决于您的传感器,它可能远小于该值,但这些是最小值/最大值)。因此,您通过串行端口发送的目标值可以使用parseInt() 存储在int 变量中。

    【讨论】:

    • 嘿,非常感谢 - skinnyTod。它确实有效。我遇到的主要问题是 parse int 在 1.0 以外的版本中不起作用。
    【解决方案2】:

    您必须确定字符串的结尾。如果您要发送单字符命令或字节值,那么您可以简单地将 Serial.read() 值放入“int”。我怀疑您在哪里发送文本号码,例如"123" 或一串 "1","2",3","\n"。

    char*(string) 或 String 都可以。但是您必须从 serial.read 构建“字符串”并识别字符串的结尾。因此请注意“\n”的使用。或者您可以将其构图以始终期望相同数量的字符。例如"0","2",3"

    see previous discussionotheranother

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多