Arduino

针对与Arduino兼容的开源硬件和软件开发人员的问答

3
将所有引脚用作数字I / O
增加数字引脚的数量 有许多文章解释了如何不仅在各种arduino上使用标准引脚,而且都没有正确解释局限性和问题。 Arduino Uno: 1.您可以使用模拟引脚 Pin 14 = Analog in 0 Pin 15 = Analog in 1 Pin 16 = Analog in 2 Pin 17 = Analog in 3 Pin 18 = Analog in 4 Pin 19 = Analog in 5 digitalWrite(14,HIGH); or digitalWrite(A0,HIGH); 2.您不能同时使用SDA,SCL和A4,A5,因为它们基本相同(18,19)。 3.您也可以使用TX / RX。 “不这样做,您就中断了串行通信……” “切勿使用引脚0和1” …

3
ATMega328P-PU和328P-AU
我打算基于Arduino PRO mini进行自己的arduino设计。我之所以选择此板而不是UNO,主要是因为与USB相比,它比UNO更简单,因为缺少了USB转串口部分。众所周知,MINI使用的是328P的SMD版本的328P-AU,但是由于AU版本对我来说太小,我想改用PU(UNO的芯片)。从数据表来看,唯一的不同是引脚位置的微小变化。一百万美元的问题是:这两个芯片有什么区别吗?如果我尝试仅将相同的设计用于PU模型,它将起作用吗?

3
初学者使用不同蓝牙模块的基本区别是什么?
我是微控制器和电子产品的初学者,尽管不是计算机和编程领域的初学者。 从Arduino开始,我达到了一个真正的兴趣,使我真正有兴趣让我的原型与移动设备或计算机进行通信以发送和接收数据(例如,发送传感器数据或接收命令)。 往外看,我发现有不同的蓝牙模块具有不同的定价点。作为一名初学者,对差异的进一步研究并没有给我太多的启发,我正在努力理解要寻找的东西或如何选择。 我的问题是: 对于初学者来说,不同的蓝牙模块在根本上有什么区别,例如: HC-05 HC-06 HC-07 购买用于Arduino的简单蓝牙模块时应该寻找什么?

1
了解编译/链接/上传过程(因此我不必使用IDE)
我最近开始和arduino UNO玩(没有任何微控制器的经验)。我想使用emacs代替IDE,并且我也想知道IDE的功能,以便能够编写自己的makefile。我发现的教程已经过时,或者作为一系列步骤显示,没有任何解释。如果有人可以向我解释使用gcc-avr和avr-dude的整个编译/链接/上传过程以及IDE如何使用它,我将不胜感激。
10 ide  avrdude 

3
Arduino Mega超时通讯与程序员错误
我有一个Arduino Mega 2560,它工作正常,直到午饭时间才开始出现此错误: avrdude: stk500v2_ReceiveMessage(): timeout avrdude: stk500v2_getsync(): timeout communicating with programmer 我知道这不是我正在运行的代码,因为我试图将其加载到Uno上,并且似乎加载没有问题。我需要使用Mega,因为它具有更多端口。 根据我的阅读,这可能是引导加载程序的问题,并且可能与Arduino的当前版本有关。我对引导程序几乎一无所知。我所知道的是,它用于将代码上传到Arduino(我认为...),因此我担心会在不知不觉中弄乱相关文件。 这些页面是我一直在查看的页面,但是就像我说的那样,我真的不了解让自己乱七八糟地摆弄文件。 Mega2560:超时与编程器通信。 Mega 2560上载超时错误-不确定更改 我尝试完全卸载Mega,然后重新安装。我还下载了旧版本的Arduino(0022),但两个选项似乎都不起作用。 我不知道该怎么办,或者在必要时如何更改“ AVR”文件。

5
我的DS18B20读得很高。如何获得正确的温度?
我正在为我的房屋设计加热控制系统,但是温度传感器的读数比我预期的要高。 我有一个连接到继电器模块,HD47780显示器和Tiny RTC模块的5V Arduino Mini Pro克隆,并连接了DS18B20。 DS18B20由应用于Tiny RTC模块的5v Vcc供电,而不是在DQ线上使用寄生电源(因为我不确定Onewire库是否支持这种工作模式),并且DS18B20数据表称Vcc可能介于3.0v和5.5v。我测量了Mini Pro在5.2v时的稳压功率。 我正在将DS的温度与现有的房间温度调节器(双金属),带有两个传感器的RS台式温度监控器,一个小的“温湿度计”和一个双金属冰箱温度计(在温度的上半部分)进行比较。范围)†。DS的读数总是比其他传感器的读数高1-2度左右,而其他传感器的读数在一定范围内。 †不是实际的,而是类似的内容。 在各种论坛上阅读,我听说这些传感器非常准确,但是会受到附近组件局部加热的影响,因此我将传感器移到20厘米电缆上,并将其放置在与其他电子设备相距甚远的位置。这没什么区别。 然后我读到,如果为其提供过高的Vcc电压,DS可能会自行发热,因此我添加了一个1.7v压降的红色LED并测量了DS上的新电压为3.5v,但是在等待温度再次稳定下来,这没有什么区别。 谁能说出DS为何读得很高,我能做些什么来防止这种情况?


1
ESP8266的红色和蓝色LED均保持亮起
我已经将ESP8266连接到Arduino UNO。在遇到大麻烦之后,我成功地运行了一些AT命令。我还测试了AP模式。 然后,我在与Arduino进行软件串行通信时遇到了一些麻烦,因此决定将波特率更改为9600(以前是115200)。 我用AT+IPR=9600命令来改变它。 之后,蓝色的esp指示灯保持点亮,不再接受AT命令,但是将少量乱码输出到串行监视器,几乎没有ascii文本,如下所示: ets Jan 8 2013,rst cause:4, boot mode:(3,6) wdt reset load 0x40100000, len 1396, room 16 tail 4 chksum 0x89 load 0x3ffe8000, len 776, room 4 tail 4 chksum 0xe8 load 0x3ffe8308, len 540, room 4 tail 8 chksum 0xc0 csum 0xc0 2nd boot version : …


3
LCD上D0-D3的意义是什么?
在Arduino的LiquidCrystal库有4个构造带不同的参数: LiquidCrystal(rs, enable, d4, d5, d6, d7) LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) 针对构造函数参数声明了以下注释: d0,d1,d2和d3是可选的。如果省略,将仅使用四条数据线(d4,d5,d6,d7)控制LCD。 什么是点d0-d3如果不需要他们?他们会减少响应时间吗?
10 lcd 

4
为什么我的实时时钟从PC收到错误的时间?
我希望我的实时时钟将其时间设置为PC上的时间。但是,当我运行以下草图时,实时时钟报告的时间比我的PC所说的时间早32-33秒。 #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled // uncomment it & upload to set the time, date and start run …

4
Arduino之间的所有区别:Pro Mini和Pro Micro
我想知道这两块板之间的区别:Arduino Pro Mini和Arduino Pro Micro。 即使我已经阅读了此文章以及与此相关的文章,仍然不够清楚。我一直使用Arduino Uno或Leonardo,但我害怕使用这些紧凑的小型化板。 到目前为止,我已经看到了这些差异: Micro不需要单独的FTDI,而Mini则需要 由于USB设备(键盘/鼠标)的仿真,Micro花费了更多的时间来启动(更像是Leonardo,而不是Uno) 它们都有5 V和3.3 V版本 Mini拥有2个数字IO和2个模拟输入(1个PWM) 引脚排列相同(为Pro Mini设计的屏蔽罩在Pro Micro上也可以) Micro更贵(如果您还没有FTDI电缆)。 因此,我最关心的是启动时间(因为它会使调试变得更困难),但除此之外。.如果我不需要再增加2个数字IO和2个模拟输入,那么为什么要购买一个呢?其他? 还有更多问题:我可以在Micro内部使用Mini boot loader来避免启动时间(如果不需要键盘/鼠标仿真)吗? 功耗是否相同?我可以使用同一块电池吗? 抱歉,这是一个愚蠢的问题,但我有点困惑。

1
使用python和firmata从Arduino端口动态更新Tkinter Widget比例
我在尝试获取Arduino数字端口值并将这些值设置为Python Tkinter Widget Scale时遇到麻烦。 我正在将Python和Arduino与Firmata一起使用。我可以使用python代码访问arduino板。例如在标签小部件中,我可以像以下代码一样实时获取并设置Arduino模拟端口值到标签,而没有任何问题: import Tkinter import pyfirmata def onStartButtonPress(): while True: if flag.get(): analogReadLabel.config(text=str(a0.read())) analogReadLabel.update_idletasks() top.update() else: break board.exit() top.destroy() def onExitButtonPress(): flag.set(False) port = 'COM7' board = pyfirmata.Arduino(port) it = pyfirmata.util.Iterator(board) it.start() a0 = board.get_pin('a:0:i') top = Tkinter.Tk() top.title("Reading Analog pins") descriptionLabel = Tkinter.Label(top, text="Potentiometer input:- ") …


1
ESP8266是否能以某种方式记住wifi访问数据?
今天,我对ESP8266进行了一些修补,尝试了OTA并编写了一个Web服务器。为了发现错误,我将草图简化为以下几行: #include <ESP8266WebServer.h> ESP8266WebServer server(80); void setup() { Serial.begin(115200); server.on("/", []() { Serial.println("Sending response..."); server.send(200, "text/plain", "Hi there!"); }); server.begin(); } void loop() { server.handleClient(); } 请注意,没有代码可连接到Wifi网络。但是,每次启动时,该芯片仍会连接到受WPA2保护的本地网络。我可以ping芯片,我的浏览器可以显示“嗨!” 通过http消息,串行消息被打印。 这怎么可能?ESP8266是否以某种方式保留了Wifi信息,也许是由于某些旧的OTA数据并未完全覆盖? 我正在使用platformio。这是我的整个platformio.ini: [env:d1_mini] platform = espressif8266 board = d1_mini framework = arduino 我在这里发布了编译和上传日志:https : //pastebin.com/BtGrFZiu
10 esp8266  wifi 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.