我正在尝试学习如何评估值是增加还是减少.在这种情况下,我使用的是从0到14映射的电位计.基本上我需要它来查看当前值,如果当前值增加打印一件事,如果值正在减少打印别的东西.
这是我到目前为止所知道的,我知道它不对,但它是一个开始.
思考?
谢谢.
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0); // read the input on analog pin 0:
val = map(val, 0, 1023, 0, 14); // map the vlaues to new values
Serial.println(val); // print those values
delay(1); // delay by a second.
// sudo code
if (val++) {
Serial.println("up");
} else if (val--){
Serial.print("down");
}else{
// do nothing
}
}// end loop
Run Code Online (Sandbox Code Playgroud) 蓝色LED指示灯在给模块加电后闪烁,红色指示灯保持亮起,我甚至可以通过wifi连接到它.但我不能编程.我尝试了Arduino IDE,不同的固件闪存(如NodeMCU,XTCOM).我正在使用Arduino Mega.
这是我的初始设置:
VCC - 3.3 V on Arduino
RST - nothing
CH_PD - 3.3 V on Arduino
TX - RX on Arduino (TX is transmitting data to RX, so I don't need a voltage divider, right?)
RX - voltage divider (R1 = 10K, R2 = 20K) - TX on Arduino
GPIO0 - GND on Arduino
GPIO2 - nothing
GND - GND on Arduino
Run Code Online (Sandbox Code Playgroud)
然后我尝试从Arduino IDE上传草图并得到以下错误:
warning: espcomm_sync failed
error: espcomm_open failed
Run Code Online (Sandbox Code Playgroud)
尝试不同的IDE,程序员,串口后我尝试了固件闪存,至少看看我是否可以与它通信.例如,NodeMCU只显示"等待MAC",GPIO0接地,没有.
我也尝试将TX连接到TX,将RX连接到RX但是得到了相同的结果.尝试通过分压器连接RX.
通过这种设置,蓝色LED不断开启.我记得在某处因为电源不足而可能会发生这种情况,所以我也尝试连接两个没有分压器的引脚(上电后蓝色LED仍然闪烁,所以希望我没有烧掉它们).我还尝试将GPIO0连接到3.3V,而不是将它连接到任何东西,将RST连接到3.3V,同时将GPIO2连接到地.在Mega上有4组TX和RX引脚,所以我尝试了TX/RX0,1,2和3.
仍然不知道发生了什么:(
我是arduino的新手,我偶然发现了一个问题.我想通过我的esp8266发送数据到我的php页面.但我不知道如何使用此GET请求加入我的数据.
这是我的代码:
String card = "2-3d-fg-d6-12-68-32-3f-35-45-42-53-2a-3";
char *hello = "GET /insert.php?card="+card+"&error=1 HTTP/1.1\r\nHost: testsite.com\r\n\r\n";
wifi.send((const uint8_t*)hello, strlen(hello));
Run Code Online (Sandbox Code Playgroud)
这就是我在arduino控制台中得到的:
错误:初始化时无法将'StringSumHelper'转换为'char*',无法在初始化时将'StringSumHelper'转换为'char*'
TL; DR:不应以root用户身份运行GUI应用程序,请设置常规用户这样做。
我正在尝试从Docker内部运行arduino IDE(下载,而不是软件包)。我编写了Dockerfile如下:
FROM ubuntu:14.04
MAINTAINER Mael Auzias <docker@mael.auzias.net>
ENV HOME /home/arduino
ENV USER arduino
RUN apt-get update && apt-get install -y \
libx11-6 libxext-dev libxrender-dev libxtst-dev \
--no-install-recommends \
&& useradd --create-home --home-dir $HOME $USER \
&& chown -R $USER:$USER $HOME
ADD arduino-1.6.6-linux64.tar.xz $HOME
WORKDIR $HOME/arduino-1.6.6
USER $USER
ENTRYPOINT ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)
我花了一些时间来了解Jessica Frazelle通常如何启动她的图形容器来正确地使用以下命令启动我的图形容器:
$docker run --name arduino --rm -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix 25af73b6cb3c ./arduino
No protocol specified
Picked up JAVA_TOOL_OPTIONS:
No protocol …Run Code Online (Sandbox Code Playgroud) 我已经搜索了这个问题的解决方案很长一段时间没有运气.
我希望NodeMCU能够寻找一个开放的wifi网络并连接到它.只要连接可用,就使用该连接 - 当连接断开时,开始寻找新的开放网络.
我住在芬兰,几乎每个角落都有免费的开放式WiFi.我打算创建可穿戴/移动的东西,可用时使用WiFi.
我也只是从编程开始,用C语言编写基础知识并使用Arduino IDE,所以这里没有Lua语言经验.
我知道WiFi.scanNetworks()可以区分安全和不安全的SSID,但我还没有发现如何在Arduino IDE中使用它对我有利.
我有一个小的Arduino编程,只是在第一次循环后停止.我可能会忽略一些事情......但我对发生的事情一无所知.
这是代码
int led = 13;
//int led = 10;
unsigned long windtime = 1000 * 2; // 2 seconds
unsigned long pausetime = 1000 * 60; // 1 minute
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
Serial.print("Wind");
digitalWrite(led, HIGH);
delay(windtime);
Serial.print("Pause");
digitalWrite(led, LOW);
delay(pausetime);
}
Run Code Online (Sandbox Code Playgroud)
我只使用Serial作为调试回声.
任何的想法?
我目前正在使用Arduino 1.0.6 IDE开发一个项目,它似乎不接受C++ 11 std :: array.是否可以更改编译器标志以使其工作?
是否可以将ESP8266与Arduino封装一起使用map?
这是我的代码:
#include <map>
typedef std::map<int, int> Items;
void setup() {
Items items;
items[2]=5;
//items.emplace(4,5);
}
void loop() {
}
Run Code Online (Sandbox Code Playgroud)
这是编译/链接错误:
Arduino: 1.6.5 (Windows 8.1), Board: "Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS)"
sketch_oct31a.cpp.o: In function `loop':
C:\Program Files (x86)\Arduino/sketch_oct31a.ino:11: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'
sketch_oct31a.cpp.o: In function `_M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<int&&>, std::tuple<> >':
c:\users\user\appdata\roaming\arduino15\packages\esp8266\tools\xtensa-lx106- elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106- elf\include\c++\4.8.2\bits/stl_tree.h:1673: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'
sketch_oct31a.cpp.o: In function `std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
Serial.print("x:");
Serial.print(x);
Serial.print(" y: ");
Serial.println(y);
Run Code Online (Sandbox Code Playgroud)
并且工作正常。有一个输出示例:
x:41 y: 31
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一种方法可以将四个句子写成这样:
Serial.println("x:"+x+" y:"+y);
Run Code Online (Sandbox Code Playgroud)
返回错误:
invalid operands of types 'const char*' and 'const char [4]' to binary 'operator+'
Run Code Online (Sandbox Code Playgroud)
任何的想法?。提前致谢。
我一直尝试在 Ubuntu 18 中使用 VS Code 的 Arduino 扩展,但是当我执行初始化命令时,收到错误“找不到 Arduino IDE。请在用户设置中指定 arduino.path”。因此,我写下了执行命令“whereis arduino”时出现的每条路径,我还尝试将框留空(理论上这会使 VS Code 搜索 IDE)并重新安装 Arduino IDE 和 VS Code 几次,没有任何结果。有人知道这个问题的可能解决方法吗?