Arduino Mega vs Uno

我们're programming a doorbell recognition system and have decided to use the Arduino to handle most of the circuitry. The one thing I' m不确定是Arduino UnoArduino Mega的程序容量 . 我知道Uno只有大约32 KB的闪存,但我们的程序预计会落在一千行代码中(我认为它会超过32 KB的阈值) .

我们没有太多时间来完成项目,所以我们不想花很多时间来弄清楚如何无法处理我们需要的开箱即用的Uno或添加内存 .

EEPROMs添加到Uno会有多困难(而且耗时)?坚持使用Mega会更好吗?

另外,首先使用PC(带有DAQ板或其他东西)或Raspberry Pi而不是Arduino会更容易吗?

我们正在设计的系统用于从指纹扫描仪读取输入并将单个环输出到扬声器 . 我们需要的是系统在物理上紧凑,因此它可以适合在家中更换和实际的门铃系统(希望Arduino可以帮助完成) .

代码被投射到大约一千行的原因是因为我们可以实现移动应用程序通信,锁定/解锁门等等 . 我假设32 KB(来自Uno)是不够的基于我的一些C程序(在千行范围内)的大小通常约为100 KB .

基本上,我们需要它可以扩展到程序可能大于我们的预计大小甚至小于它的程度 . 如果一个人足够,我们不想最终购买多个电路板 .

回答(3)

3 years ago

微控制器中的32 KB是很多程序存储器 . 1000行代码可能会组装到几千字节,并且所有Arduino库可能仍然比您的程序更大 .

如果我记得,我认为任何ATMegas都不支持具有外部程序存储器 . 如果你有一个像大型查找表的东西,你可以得到一个I²C EEPROM并将其加载到那里 .

对于PC / Raspberry Pi来说,计算机上的某种电路板可能比使用Raspberry Pi的Uno或Mega价格高得多,特别是如果你需要模拟输入或PWM .

我会说,现在,坚持使用Uno,但保留你使用的任何引脚 #defines ,这样,如果你的程序ROM耗尽,你可以很容易地将它移植到Mega .

3 years ago

这一切都取决于你的门铃识别方案实际上是什么 . 如果它需要FFT和/或花哨的浮点算术,那么你可能很容易耗尽AVR的SRAM . 如果只有一些美化的有限状态机具有一些不错的实现,如果这耗尽了Uno,我会感到惊讶 .

但最重要的问题是:你在建造什么?一个原型?一个?还是一个系列的飞行员?如果不是一个系列,那么开发人员的时间是最昂贵的 - >首先选择更大的机器 . 如果您正在开发一系列计算硬件成本与开发人员时间 - >瞄准最便宜的控制器,仍然符合您的需求 . 那就是:占据Atmel家族中最大的一个,一旦你有一个正在运行的原型缩小它 . 恕我直言,门铃应该适合ATiny .

3 years ago

Atmel微控制器不支持允许添加ROM和扩展代码量的外部程序总线 . 一些设备支持扩展数据总线,这将允许添加RAM . 我想说这是微控制器和微处理器之间的关键区别之一,尽管分离中可能存在一些模糊性 . 因此,当您耗尽代码或内存时,您将无法找到效率或削减功能 . 选择微控制器时我的建议是先做出决定:

我是否受到成本限制或时间限制?

如果成本受限,那么您选择能够承受的设备并使您的应用程序合适 . 如果受时间限制,请选择您可以使用的最大设备 .

你说你有时间限制而且不确定代码规模 . 如果有任何方法可以证明1000美元的PC IO板是合理的那样 . 听起来有点贵门铃......