问题标签 [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.
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' 未在此范围内声明
这是代码:
arduino - 伺服没有按预期响应
我第一次使用 Arduino 来控制我的模型铁路上的平交道口,使用 LDR 和两个伺服系统。我想让火车通过光敏电阻 (LDR)。在这种情况下,大门应该关闭。当火车经过时,应该有一个延迟,然后大门应该打开。此处提供的代码已简化为只需打开和关闭大门,而无需延迟。当 LDR 发送恒定读数时,伺服系统应该只对初始变化做出响应,因为我不想管理伺服系统一旦移动就拉动或推动门。
我尝试使用全局来保持门状态。我现在更改了代码以传递一个变量。
该代码适用于 Up 但不适用于 Down。向上工作一次,但向下不断重置并操作伺服。
c++ - 即使初始要求为真,也不会进入 for 循环
我有以下函数,里面有一个 for 循环。代码在 Arduino 上运行,Serial.print
函数显示使用正确的输入值正确输入了函数。但是没有进入for循环。有谁知道为什么?
arduino - 使用 arduino 读取 RFID
我正在尝试使用GP-60a阅读器读取 RFID。
我已经设法从中得到一些东西,但我无法将我得到的数据解码为预期值。
这是我必须从读者那里阅读的代码:
我有一个十进制值为 111 (HEX:6F) 的 RFID。
我期待输出是
但我得到的是这个
arrays - 如何从 if 语句中设置全局数组的大小
我正在为 Arduino 编写这段代码。编译时,我收到错误“'timing' is not declared in this scope”(在我尝试打印时间 [i] 的底部附近的行中),因为我在 while 循环内的 if 语句中声明了数组, 我想。
如果这是一个简单的变量,我可以在循环之外声明它,这将得到修复,但问题是我只在 if 语句中知道这个数组的大小。
c++ - C 代码编译,但在 arduino 草图中它没有
我有一些用 GNU GCC 编译的 C 代码,但是当我把它放在一个 arduino 草图上时,它说
无法将参数 '1' 的 'const float' 转换为 'float ( )[25]' 到 'float dot_product(float ( )[25], float*)'
在草图中,函数 sigmoid 和 forward 和 dot_p 都已定义,我试图在草图本身上存储一些值,因为我无法将所有值存储在 EEPROM 上,如果你能提供帮助,请提供任何额外的说明
草图如下:
arduino - 我正在尝试制作一个按钮来打开和关闭 LED,但它只是保持关闭状态
我从代码开始,在按下按钮时打开 LED。那行得通。但后来我尝试调整它,使按钮的作用类似于“开-关”开关,您只需按一次即可在状态之间切换。
LED 适用于较旧的代码(如下),所以我认为这不是接线问题。仅供参考,我跳过了设置功能,它与我让它闪烁时相同。
c++ - C++ / Arduino 中的摩尔斯编码
大家,早安 !所以我想制作一个程序,用摩尔斯电码传输光,然后接收器将其转换为 Arduino。
为了获得视觉效果,我选择放置一个 LED 和一个蜂鸣器。但是当我下载程序时,LED 会亮起,蜂鸣器也会亮起,而 LDR 甚至不会翻译发射器发送的内容。
所以这是接收者代码:
这段代码不长,但对我来说似乎很好,所以我没有看到问题
这是我编辑的照片。 莫尔斯接收器
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”之类的函数正确发送它?
编辑: 完整代码:
arduino - 读取具有格雷码输出的绝对编码器
我有一个绝对编码器(Hengstler AD36),它提供 12 位位置值和格雷码。我正在尝试将该值转换为十进制,我的意思是 0 到 360 度。
我使用 Arduino 获得了格雷码的 12 位值。我已经读取了 Arduino 端口并将其转换为 Python,但我需要在 Arduino 中进行。但是,我无法将其转换为 Arduino 中任何有意义的数字。
如何将数据转换为十进制(0 到 360 度)?
我无法解决的主要问题,我找到了一些将格雷码转换为二进制的函数,然后将其转换为十进制很容易。但是,这些函数将输入作为字符串或 int,我不知道将数据值转换为int。
任何帮助将不胜感激。谢谢。