问题标签 [arduino-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
6768 浏览

esp8266 - 如何解决“未在范围内声明 WiFi。”?

在我的代码中,我在编译到 NodeMCU 板时收到“未在此范围内声明 Wifi”错误。代码有一些自定义,但关于 WiFi 和调用 Wifi 函数的行,它与源代码具有相同的结构。

源代码编译完美无瑕,这让我认为库或任何类型的更新都没有问题。我已经多次查看我的代码并且没有收到错误。

以下是完整的编译错误:

C:\Users\Administrator\Documents\Arduino\teste_watsoniot\teste_watsoniot.ino:在函数 'void setup()' 中:

teste_watsoniot:65:14:错误:未在此范围内声明“Wifi”

if (strcmp(Wifi.SSID().c_str(), ssid) != 0) {

teste_watsoniot:73:59:错误:未在此范围内声明“Wifi”

Serial.print("已连接,IP地址:"); Serial.println(Wifi.localIP()); ^

退出状态 1 'Wifi' 未在此范围内声明

这是代码:

这是源代码: https ://github.com/ibm-watson-iot/device-arduino/blob/master/samples/ESP8266MqttSecure/ESP8266MqttSecure.ino

0 投票
1 回答
137 浏览

arduino - 伺服没有按预期响应

我第一次使用 Arduino 来控制我的模型铁路上的平交道口,使用 LDR 和两个伺服系统。我想让火车通过光敏电阻 (LDR)。在这种情况下,大门应该关闭。当火车经过时,应该有一个延迟,然后大门应该打开。此处提供的代码已简化为只需打开和关闭大门,而无需延迟。当 LDR 发送恒定读数时,伺服系统应该只对初始变化做出响应,因为我不想管理伺服系统一旦移动就拉动或推动门。

我尝试使用全局来保持门状态。我现在更改了代码以传递一个变量。

该代码适用于 Up 但不适用于 Down。向上工作一次,但向下不断重置并操作伺服。

0 投票
2 回答
39 浏览

c++ - 即使初始要求为真,也不会进入 for 循环

我有以下函数,里面有一个 for 循环。代码在 Arduino 上运行,Serial.print函数显示使用正确的输入值正确输入了函数。但是没有进入for循环。有谁知道为什么?

0 投票
1 回答
141 浏览

arduino - 使用 arduino 读取 RFID

我正在尝试使用GP-60a阅读器读取 RFID。

我已经设法从中得到一些东西,但我无法将我得到的数据解码为预期值。

这是我必须从读者那里阅读的代码:

我有一个十进制值为 111 (HEX:6F) 的 RFID。

我期待输出是

但我得到的是这个

0 投票
1 回答
86 浏览

arrays - 如何从 if 语句中设置全局数组的大小

我正在为 Arduino 编写这段代码。编译时,我收到错误“'timing' is not declared in this scope”(在我尝试打印时间 [i] 的底部附近的行中),因为我在 while 循环内的 if 语句中声明了数组, 我想。

如果这是一个简单的变量,我可以在循环之外声明它,这将得到修复,但问题是我只在 if 语句中知道这个数组的大小。

0 投票
1 回答
31 浏览

c++ - C 代码编译,但在 arduino 草图中它没有

我有一些用 GNU GCC 编译的 C 代码,但是当我把它放在一个 arduino 草图上时,它说

无法将参数 '1' 的 'const float' 转换为 'float ( )[25]' 到 'float dot_product(float ( )[25], float*)'

在草图中,函数 sigmoid 和 forward 和 dot_p 都已定义,我试图在草图本身上存储一些值,因为我无法将所有值存储在 EEPROM 上,如果你能提供帮助,请提供任何额外的说明

草图如下:

0 投票
3 回答
4237 浏览

arduino - 我正在尝试制作一个按钮来打开和关闭 LED,但它只是保持关闭状态

我从代码开始,在按下按钮时打开 LED。那行得通。但后来我尝试调整它,使按钮的作用类似于“开-关”开关,您只需按一次即可在状态之间切换。

LED 适用于较旧的代码(如下),所以我认为这不是接线问题。仅供参考,我跳过了设置功能,它与我让它闪烁时相同。

0 投票
0 回答
143 浏览

c++ - C++ / Arduino 中的摩尔斯编码

大家,早安 !所以我想制作一个程序,用摩尔斯电码传输光,然后接收器将其转换为 Arduino。

为了获得视觉效果,我选择放置一个 LED 和一个蜂鸣器。但是当我下载程序时,LED 会亮起,蜂鸣器也会亮起,而 LDR 甚至不会翻译发射器发送的内容。

所以这是接收者代码:

这段代码不长,但对我来说似乎很好,所以我没有看到问题

这是我编辑的照片。 莫尔斯接收器

0 投票
1 回答
729 浏览

c++ - 将 char 数组转换为 uint8_t

我在 Arduino 库中有这样的函数定义:

当我使用:

我在 pyserial 的 readline() 函数的另一端(SERVER_ADDRESS)得到了一个非常精细的字符串,该字符串使用 utf-8 编码完美解码。

现在我需要使用相同的sendtoWait()函数发送一些字节。我首先定义了一个 60 字节的 char 数组

然后我得到每个字节并将其转换为字符

然后将每个值放入 char 数组中,如下所示:

找到一个新行字符后,我尝试使用以下sendtoWait()函数再次发送 char 数组:

但是,尽管Serial.println(packetBuff)显示了正确的字符,例如“1559105487\n”(unix 时间戳),但buff数组无法正常工作,并显示随机字符,如分号、随机单个数字等。

如何正确转换 char 数组并使用发送sendtoWait()“time\n”之类的函数正确发送它?

编辑: 完整代码:

0 投票
0 回答
854 浏览

arduino - 读取具有格雷码输出的绝对编码器

我有一个绝对编码器(Hengstler AD36),它提供 12 位位置值和格雷码。我正在尝试将该值转换为十进制,我的意思是 0 到 360 度。

我使用 Arduino 获得了格雷码的 12 位值。我已经读取了 Arduino 端口并将其转换为 Python,但我需要在 Arduino 中进行。但是,我无法将其转换为 Arduino 中任何有意义的数字。

如何将数据转换为十进制(0 到 360 度)?

我无法解决的主要问题,我找到了一些将格雷码转换为二进制的函数,然后将其转换为十进制很容易。但是,这些函数将输入作为字符串或 int,我不知道将数据值转换为int

任何帮助将不胜感激。谢谢。