比较串行读取数据和模拟读取值

时间:2013-01-31 08:28:02

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

see previous discussionother以及another