Arduino

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

2
拨打模拟电话?
我们如何才能使Arduino开发板与旧的模拟电话互动并拨打电话? 我猜想这涉及到使用一些特定的电缆将电路板连接到电话(如何称呼它?) 另外,我认为这将要求我们使用电话低级拨号协议(以便与电话进行实际交互并发送命令)。我在哪里可以读到它? 是否有理由担心数字/串行板和类似设备之间的对话? 顺便说一句,我读过模拟电话的电压相对较高,很容易损坏电路板。我很想获得与将Arduino连接到模拟电话有关的诸如此类的任何信息,以便了解此类问题以及需要关注和探索的内容。 非常感谢!

11
GROVE系统使用哪种类型的连接器?
什么类型的连接器确实GROVE使用? 我对一些旧传感器的接线很感兴趣,以便它们与GROVE兼容,因此我首先需要确定连接器,以便购买外壳和引脚进行压接。它看起来像是某种类型的JST连接器,但是有许多不同的尺寸,每个尺寸的间距都不兼容,许多零售商经常错误地宣传它们。不幸的是,我在Seeedstudio网站上找不到该连接器的任何文档。
12 sensors  pins  wires 

2
无需计算机即可将Arduino作为ISP
有没有人看到或知道一种将固件作为数据预加载(使用计算机或任何其他方式)到设置为作为isp的arduino上,然后使用该arduino将isp接口插入另一个并上传固件的方法。 明确地说-我正在寻找一种方法,使arduino草图的上传成为可能,而无需直接连接到功能完善的计算机。 理想情况下,涉及的步骤是: 编写新的草图/固件 编译固件 将复制固件作为数据写入Arduino A(将Arduino A设置为可作为ISP使用) 从计算机上卸下Arduino A 在单独的位置使用ISP标头将Arduino A连接到Arduino B 使用某种方法(可能是按钮)触发Arduino A将预加载的固件上传到ArduinoB。 我假设从理论上讲它可以工作,因为上传固件只是跨SPI接口的字节交换,但我不确定现实。 我正在考虑的方案是,如果我将arduino(永久地)安装在远离计算机(我没有笔记本电脑,也不想买一台笔记本电脑)的地方,那么重新编程将很麻烦它。 我考虑过的另一种方法是使用DIL封装的ATMEGA,然后可以从板上卸下该板,并在计算机上进行编程,然后返回板上。但是,我宁愿不要冒险弯曲引脚和不必卸下引脚的麻烦。芯片每次我想重新编程。

3
串行数据显示异常
我有一个简单的草图,可以在序列号上打印出“ Hello World”,但是却出现了一堆乱码。 void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World"); delay(1000); } 为什么不按代码说明打印“ Hello World”?
12 serial 

2
我得到了一个错误的ATmega328-PU。我该如何解决?
过去的某个时候,我使用Arduino IDE 在新一批的四个ATmega328-PU上刻录引导程序(注意328之后没有P-这是MCU的非微功耗版本,价格稍便宜,不要与ATmega328P-混淆)PU带有P),并且对来自avrdude的以下消息感到惊讶: avrdude: Device signature = 0x1e950F avrdude: Expected signature for ATMEGA328 is 1E 95 14 Double check chip, or use -F to override this check. 这意味着avrdude认为该芯片不是其标签上所说的。然后,我将Arduino IDE上的芯片类型更改为ATmega328P-PU,而avrdude毫无抱怨地烧掉了引导加载程序。这意味着该芯片被标记为一个MCU,而在内部它被标记为另一个,略有不同。 我想知道的是: 此事件有多罕见?有没有人有过类似的经历?(原始问题,题外) 有可能解决这个问题吗?如何修复签名,以便avrdude正确识别芯片? 这是EE.SE的交叉文章。我在这里发布了这个问题,但是并没有引起太多关注,所以我想看看我们社区中是否有人有类似的经历。
12 atmega328 

4
为什么草图要占用这么多空间和内存?
当我为Yún编译此草图时: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } 我得到: Sketch使用了5,098字节(17%)的程序存储空间。 最大为28,672字节。全局变量使用153字节(5%)的动态内存,剩余2407字节用于局部变量。最大为2560字节。 即使当我编译BareMinimum草图时: void setup() { // setup } void loop() { // loop } 我得到: Sketch使用4,548字节(15%)的程序存储空间。 最大为28,672字节。全局变量使用151字节(5%)的动态内存,剩余2409字节用于局部变量。最大为2560字节。 为什么最少的草图要占用分配的程序存储空间的15%?为什么一个非常简单的草图会占据程序存储空间的17%?根据Arduino网站: 通过在程序中包含很多字符串,可以轻松使用所有内容。例如,这样的声明:char message[] = "I support the Cape Wind project.";将33个字节放入SRAM(每个字符占用一个字节,加上'\ 0'终止符)。 但是,在这些草图中都没有声明任何字符串。 似乎它们可能会导入或使用我未指定的其他库/类。也许它会导入系统默认库?或者是别的什么?

3
如何在Arduino上使用I2C设备?
我有一些有用的I2C组件,例如16位端口扩展器(MCP23017),我想在各种项目中使用它。 我需要做什么才能使它们与Arduino一起使用?它可以与任何Arduino一起使用,还是需要特定的板子或屏蔽板?
12 i2c 


6
Arduino中一次性执行的代码
问题:如果我希望每次Arduino启动仅执行一次代码,该将代码放在哪里? 背景:我倾向于使用Arduino执行应该在每个电源周期执行一次的任务。(例如,我的机器人每次打开时都只能向前行驶一次 -超过此次数,它就有可能从桌子上掉下来。) 标准的Arduino IDE“模板”由loop()和setup()函数组成。该setup代码在每个电源循环中运行一次,并且loop每次结束时都会重新启动。 我看到两种编码“ 1次任务”的方法: 方法1:“循环一次” void setup() { //do setup stuff } void loop() { //do task while(1) ; //Repeat forever, preventing function from re-starting } 方法2:“仅安装” void setup() { //do setup stuff //do task } void loop() { //do nothing } 问题的更详细形式: 从硬件/软件的角度来看,这些方法之一是否“更好”?(例如,有关该setup功能的任何“特殊”之处,例如它只能运行这么长时间?) 而且,如果从硬件/软件角度来看它们相同,那么是否存在“最佳实践”或标准的代码编写方式? Arduino社区中的这些情况?

3
我如何确定我的电路板是否即将到期?
我有一个uno,我已经使用了三年了。我将在一个相当关键的项目中再次使用它,其中董事会方面的失败可能是相当昂贵和危险的。因此,我想确保董事会不会快要寿终正寝或即将失败。有没有可靠的方法可以确定电路板在不发生故障或性能下降的情况下能够运行多长时间?

2
在Arduino上安装其他固件
是否可以在Arduino上升级固件,以便它可以做更多事情,例如改变欠压/过压,以提供更多的处理能力。为此,您很有可能必须重新刷新芯片本身,那么将如何实现呢?


3
当使用Arduino Uno作为ISP时,“赞!无效的设备签名”表示连接错误,配置错误或avrdude版本错误?
我正在使用Arduino UNO在Windows 7上使用Arduino IDE目录中的avrdude将预编译的十六进制图像编程为ATTINY45。Uno从示例目录中加载了ISP草图,并且该草图有效-心跳LED脉搏很好。 在硬件方面,我有这个设置,除了ATTINY是表面安装的,焊接到冲浪板上,其所有引脚都通过电压表验证焊接。我使用了一个顶针固定条,用手将其固定到冲浪板上,以将信号从Uno传送到ATTINY。 以下是命令行,它们是我从IDE的调试输出中获得的: REM set the fuse for 8MHz, so the ISP programmer can work C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m REM load the program C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i REM set fuse for 1MHz, as …

2
用太阳能电池板为Arduino供电
显然,Arduino可以由太阳能电池板供电。 最佳配置是什么? 您可以同时充电和放电吗? LiPO是最好的电池缓存技术,还是现场部署更耐用? 最经济,最可靠的方法是什么?
12 power  solar 

3
Optiboot引导加载程序有哪些替代方案?
几乎所有现代Arduino板都使用Optiboot引导程序。与以前使用的ATmegaboot相比,Flash较小(大约1.5KB),上传速度更快(115.2k和57.6k),并且启动草图更快(重置后等待的延迟更短)。 是否有Optiboot引导加载程序的替代方案?具体来说,是否有更小的(用Flash术语表示)引导加载程序?他们有什么区别?
12 bootloader 

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.