首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有Arduino Uno的servos的串行监视器的奇怪问题

使用带有Arduino Uno的servos的串行监视器的奇怪问题
EN

Stack Overflow用户
提问于 2019-04-20 22:05:35
回答 1查看 94关注 0票数 0

我一直在使用来自https://learn.adafruit.com/multi-tasking-the-arduino-part-1?view=all的伺服/leds控制器示例

在Servo的Update函数中,我为调试目的添加了以下内容:

代码语言:javascript
复制
Serial.print("Position: ");
Serial.println(pos);

生产

代码语言:javascript
复制
Position: 180
Position: 90
Position: 0
Position: 90
Position: 180
Position: 90
Position: 0

作为执行过程中串行监视器中的输出。

然后我把这两行改为:

代码语言:javascript
复制
Serial.print("Position: " + pos);

它产生了这个输出

代码语言:javascript
复制
Position: 



Position: 

(每当值为0时,似乎都会打印“位置”。)

从逻辑的角度来看,两者应该是相同的,所以我尝试了其他的东西,怀疑伺服和串行通信之间有某种干扰,成功地:

A)不同的波特率(1200、2400、9600到115200),使代码与串行监视器保持同步。(B)用外部电源为Arduino供电,而不是用USB连接我的笔记本电脑。通过独立驱动伺服,c)直接断开伺服

如果有人知道这里发生了什么,我会非常感激的。干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-21 00:00:21

我假设pos是一个int。您可以将pos转换为String来解决问题。尝尝这个。

代码语言:javascript
复制
Serial.println("Position: " + (String)pos);

或者,将整个输出转换为这样的字符串。

代码语言:javascript
复制
Serial.println((String)"Position: " + pos);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55778158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档