永久项目的Arduino Uno的更小和更便宜的替代品


15

我玩了一个Arduino Uno,它带有面包板和组件。很快,我想做一些更永久的事情。

我宁愿选择一个比Arduino Uno更小,更便宜的单元,但是它几乎和Arduino Uno一样容易使用,并且使用起来非常相似。

下一步是Arduino Pro Mini 328-5V / 16MHz吗?尺寸仅是Arduino Uno的1/6。一块10美元的价格也不错。

我了解必须焊接才能使其正常工作。那应该不成问题。

我还需要一个USB串行板来对本机进行编程吗?


2
Nano的下一个较小的328p是Nano
Juraj,

1
对于8位微控制器,ATmega32u4芯片也是一个不错的选择(与Leonardo一样)。编码与UNO / 328p(特别是串行)略有不同,但是您避免使用USB /串行转换器。最终,您可以制造自己的PCB并使用SMD芯片,从而完成一个非常紧凑的项目。
MichaelT

1
带晶体振荡器的Pro Mini,5V 16MHz模块($ 2.18CDN):aliexpress.com/item/…。PL2303HX USB转UART适配器($ 0.70CDN): aliexpress.com/item/…
VE7JRO

Answers:


8

我认为最好的选择是从您的Arduino UNO中移除ATMega328p-pu芯片,并将其整合到最终电路中。芯片仅约1.50美元。

这样,您可以仅将UNO用作程序员,而不必使用部署的最终设备。

我不确定为什么在完成编程后,没有更多关于如何删除ATMega328p-pu芯片并在面包板上使用的正确方法的文档。

我在我的博客上确切解释了如何执行此操作:http : //raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

但是,这里是基础知识。首先,您要取出芯片。完成此操作后,将显示以下内容。(注意:我正在使用UNO的Elegoo克隆)。

删除了atmega328p-pu芯片

接下来,为引脚7供电,并将引脚8连接到GND。

需要一个16MHz的晶体

但是,该芯片目前似乎无法运行您的草图。那是因为您实际上需要一个晶体来以16MHz运行。

UNO板已安装了该芯片,这就是它起作用的原因。你可以在这里看到它:

UNO上的16MHz晶体

最后,您添加了16MHz晶体和几个22pF电容,您的芯片将独立运行(无UNO)。

您将晶体添加到引脚9和10。您可以通过阅读我的博客条目或阅读atmega328数据表来查看所有详细信息。

面包板上的水晶

最后,只需连接其他所有内容

之后,只需将电路的其余部分连接到正确的引脚,即可独立运行ATMega328p-pu。

实际上,这也是一种不错的学习体验。
只需为您的UNO购买替换的atmega328p-pu芯片,即可以非常便宜的价格创建所需的所有项目。


2
您很乐意在其中添加一些电路保护,因为328p本身没有任何保护。否则,这是一个很好的方法。
SnakeDoc

1
@duskwuff,我相信只有在使用DAC时才如此。这只是一个简单的示例,可以使某人着手将芯片作为独立使用。我向您保证使示例中的LED闪烁的代码确实可以运行。同样,当我刚开始时,我创建了我在上面的评论中提到的电路,但我从未连接过AVCC和GND,电路运行了两年。当然,我并不是说那将永远是真的。仅提及芯片实际工作的方式。与往常一样,请查阅数据表以获取确切的规格,尤其是如果您遇到不同的情况。谢谢。
raddevus

1
@raddevus请参见数据表中的表28.8:“ AVCC最小/最大绝对值:1.8V / 5.5V”。不给AVCC供电是不合规格的,可能会造成损坏。引脚22上的GND引脚与ADC无关,必须连接到GND。
duskwuff -inactive-

1
@duskwuff感谢您的启发性讨论。我同意您的说法,并会尽快更改我的文档和电路,以确保始终保持连接状态。仅供参考,我从ATMega328p-pu的开发开始,这本书是由AVR出色的著作:《学习为硬件编写软件》(amzn.to/2PS9OOA)编写的,在最初的电路中,作者Elliott Williams也没有连接这些引脚。我想我受到了这一影响。这本书确实很棒,而且作者知识渊博。再次感谢您,很棒的讨论。
raddevus

1
@reddevus。更确切地说,您在此答案的红色框中表示的晶体是处理USB通信的微控制器而不是ATmega328p-pu芯片所使用的晶体。您可以从Uno原理图中看到ATmega328p-pu芯片实际上使用了一个谐振器:mouser.com/ProductDetail/Murata-Electronics/…–
Kavka,

7

检查STM32F103C8T6开发板,价格约为1.5美元,比Arduino Uno更快/具有更多的内存,并且更小。

它可以与Arduino IDE一起使用,但不支持所有库,因此在使用它之前先检查是否支持所用的库,或者是否可以使用其他库。

更新资料

差异:

                       Arduino Uno       STM32F103C8T6 Mini Dev Board

MicroController            Atmega328P           Cortex M3
MIPS/MHz                        1                   1.25
Operating Voltage [V]           5                   3.3, most pins 5V tolerant
Input Voltage   [V]            7-12               USB only
Input Voltage (limit) [V]      6-20                (USB)
Digital I/O Pins               16                   37
From them:PWM Digital I/O Pins  6                   12
Analog Input Pins               6                   10
DC Current per I/O Pin [mA]    20                    ?
DC Current for 3.3V Pin [mA]   50                    ?
Flash [KB}                     32                   64
SRAM [KB]                       2                   20
EEPROM [KB]                     1                    -
Clock Speed [MHz]              16                   72

I2C                             1                    2
SPI                             1                    2 (18 MBit/s)
UART                            1                    3
CAN                             0                    1
USB                             0          USB 2.0 FS 12 MBit        
DMA                             0          7 channels (ATsP, SPI, I2C, USART)
RTC                             0                    1
CRC                             0                    1
Unique ID                       0                    1

Programmed by                  USB                 SWD Debug (around $5)

IDE                         Arduino IDE         Arduino IDE, CubeMX, ...
Libraries                      Many               Limited

Dimensions  [mm]            68.6 x 53.4           53 x 22
Weight       [g]               25                    ?
Price (cheapest)  [$]         2.50                 1.50

注意:如前所述,尽管规格大多更好,但并非所有库都受支持。另外,还需要购买一名程序员(仅一次,花费约5美元)。


1
如果您获得了Maple Mini克隆(相同的uC,几乎相同的硬件,但已经加载了引导程序)
可以避免招募程序员

1
@ frarugi87或者您可以使用内置的UART引导加载程序(通过将BOOT0设置为高来激活)进行初始编程。
duskwuff -inactive-

STM32F103C8T6非常重要。但是它仍然只有3.3v。这并不是Uno的替代品。尝试将其连接到5v字符LCD,如果它可以正常工作,则会出现问题。(LCD)
鲁迪

6

对于我的产品,我来自Arduino Uno

Arduino Uno R3

Arduino Pro Mini

Arduino Pro迷你版

是的,您将需要一根 FTDI电缆来进行编程和到PC的串行coms,但是如果您不需要一直使用coms,则只需一根电缆即可将程序上传到每个设备。他们也可以找到很便宜。

但是我注意到Arduino Pro Mini现在已经退休了,因此可能很难采购(它仍然可以在AliExpress上使用)。因此,出于这个原因,我建议您改为尝试Arduino Nano

Arduino纳米

这具有板载USB的附加优势,这意味着您不再需要FTDI电缆来进行编程或coms。

这3个板的处理器ATMega328P没有本地USB,这意味着该板还需要包括FTDI电缆中使用的FTDI FT232RL IC。拥有此IC可能会增加底线成本。

对于每台设备便宜几美元的价格,您可以使用具有本地USB coms的微控制器(例如ATMega32U4)(因此可以节省FTDI IC)。这样的产品之一就是Arduino Micro

Arduino的微

提到的所有这些开发板都是Arduino生态系统内的本机(除已淘汰的Pro Mini之外),应该可以轻松地在网上或在您当地的电子商店进行采购。您的Arduino Uno程序适用于所有这些替代方案-您只需要在Arduino IDE中更换板子即可:

Arduino开发板选择

我还要提到一个板-DigiSpark

Digispark

它仅适用于较小的程序,其某些功能受到限制,不是正式的Arduino开发板。话虽如此,Arduino有很多支持 -而且价格便宜!


4

如果您想坚持使用Arduino及其工具链,可以只订购裸露的ATmega 328p(位于Arduino Uno核心的微控制器)并单独使用!

它们的成本相当低($ 1.50- $ 3.00范围),而且适合面包板。对于更持久的解决方案,您可以将它们焊接到原型板(穿孔板)中,甚至在设计达到该水平时甚至可以焊接到定制设计的电路板上。

这是Arduino人士的绝妙指南,内容是仅使用ATmega 328p等原始组件在面包板上设置Arduino。该设计使用一个外部16MHz时钟晶体,就像Arduino Uno一样。

如果您可以在328p板上使用内部8MHz时钟,可以取消大多数额外的组件,然后像本指南中一样运行原始芯片(使用Arduino Lilypad Bootloader而不是默认的Arduino bootloader)。这将节省更多的钱!

无论哪种方式,您都需要一个AVR编程器单元,因为328p中没有内置USB端口。这将是该设置最昂贵的部分,但是好消息是您只需要一个,它就可以对您需要的任何328p进行编程。它们还可以用于对能够通过串行Tx / Rx引脚进行编程的非标准芯片进行编程,例如ESP芯片(您只需手动接线即可)。如果您认真对待这些类型的微控制器,那么拥有其中之一非常有用。

ATmega 328p微控制器芯片

ATMega Pin贴纸

冲浪板

AVR程序员


1
如果您已经安装了引导加载程序命令你ATMEGA328P-PU:ebay.ca/itm/...,然后PL2303HX USB转UART适配器($ 0.70CDN)将努力上传“代码”:aliexpress.com/item/...
VE7JRO

我总是感到奇怪,Arduino使用特殊的引导加载程序进行编程,而不是使用内置的编程接口。
user253751 '18

@immibis不确定您的确切意思,但是arduino引导加载程序做了很多事情,使得使用arduino(和Atmel芯片)的工作变得容易得多,包括重置引脚,切换到外部时钟,移交代码,否则,您基本上需要编写自己的...这将浪费时间,因为在大多数情况下,库存的Arduino Bootloader可以完成您想要的一切。
SnakeDoc

1
@immibis我认为拥有串行端口接口比从PC编程器接口要容易得多。而且,尤其是在刚开始时,我认为(个人观点)他们希望在板上集成一个完整的系统,并且将编程器集成到PCB上比编写串行引导加载程序要困难得多。考虑到第一个arduino板有一个串行端口(Arduino RS232),所以只需要一个程序员就可以对它们进行编程(它们在学校使用)
frarugi87

1
@ frarugi87可能是正确的,但是对于真正的初学者来说,插入USB电缆并使用Arduino IDE上传“草图”几乎是很容易的。我认为他们采取了正确的措施,使它具有超级可访问性,特别是对于那些零单片机经验的人。
SnakeDoc

4

我喜欢Nano和Pro Mini。我喜欢在带有其他模块的试验板上使用它。如果涉及更多的电路,我发现它比使用Uno更为方便。有更快的处理器,但是对于许多项目而言,16Mhz 328绰绰有余。和Uno一样,这两个都是5伏供电的部件。有时,您需要连接的设备在3.3伏处理器上无法正常工作。

Pro Mini和Nano可以轻松焊接到间距为0.1英寸的“ Veroboard”(或同等产品)中如果您不介意购买克隆的零件,则Nano和Pro Mini的成本仅为数美元。从Aliexpress购买零件,甚至是Ebay,只要您耐心等待交货,就可以为您节省很多。

我现在最常使用的模块是ESP8266。这是一个功能强大的WiFi平台,仅需花费几美元,并且具有相当成熟的Arduino框架。我经常将它用作设计中的唯一处理器。我什至以它为数据记录器的基础,并完全忽略了WiFi功能。由18650锂电池供电的20x4字符LCD,电流/电压测量芯片(INA219)和SD存储卡。

有很多好的便宜的选择。


3
您可能要指出,ESP12模块没有0.1英寸的引脚间距,这有点麻烦。虽然有便宜的分线板,但是它们很宽,很难与无焊面包板一起使用。除此之外,它们'相当方便。只需花费比裸ESP12模块多约1美元,即可获得Wemos D1 mini(克隆),它与Arduino Pro Mini或Nano一样容易使用
。– Llaves

我在哪里说过使用ESP-12?我没有详细介绍ESP8266,因为这实际上不是问题的重点。我认为这值得一提,因为很多人对此并不熟悉。我完全支持使用Wemos D1 mini平台的人们。与ESP01,ESP12等不同,它是一种随时可用的解决方案。USB转串行和板载稳压器有很大的不同。但是我仍然觉得Nano或Pro Mini是问这个问题的人的最合适答案。
鲁迪

与ESP系统相比,2019年很难考虑使用任何基于atmega的系统,因此您可能会提到,ESP8266只需2美元,即可获得40MHZ处理器,完整的开发板​​(而非芯片),wifi和基于USB的编程功能,以及无需任何额外电缆即可进行监控。还要提到ESP32系统,价格较贵,在$ 7到$ 10,但包含两个CPU,完整的RTOS,多个MB的闪存,为WIFI添加BT以及本机USB支持。包括与Arduino的兼容性,甚至在运行提供的RTOS时,它们都包含Arduino库。
Brian Bulkowski

ESP8266具有160MHz处理器。这是一个不错的选择,但确实有局限性。它只有一个A / D转换器和一个坏的转换器。数字IO引脚也有古怪之处。默认情况下,上拉电阻在大多数情况下是打开的。三个IO引脚设置工作模式,必须特别小心。ESP8266还需要一个体面的电源。ESP8266的后台运行着许多代码,您的代码必须与之共存。我真的很喜欢ESP9266,但它不是很棒的通用微控制器。ESP32更好,但也有问题。
鲁迪(Rudy)

2

Arduino Pro Micro克隆非常便宜,对它们进行编程所需的只是一条普通的Micro USB电缆。您可能必须焊接接头才能做任何有用的事情。它们提供3.3V / 8MHz和5V / 16Mhz版本。

临微


ProMicro具有3.3v处理器。这可能是某些设计的问题。这并不是Uno的替代品。但这是一个有趣的部分。
鲁迪

1
不,就像Pro Mini一样,有5V / 16MHz和3.3V / 8MHz版本。
AndreKR

抱歉,我的错。
鲁迪
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.