突然断开Arduino电源安全吗?[关闭]


12

如果我有Arduino,可以在不破坏电源的情况下突然打开和关闭电源吗?如果我要设计一个带有开/关开关的产品,我是否需要在关闭电源之前加入一个延时,以便微控制器可以进行某种干净的关闭?还是仅将SPST开关连接到Arduino的电源线就可以了吗?

(通过设计产品,我的意思是在带有其他组件的定制板上独立使用带有Arduino代码的ATmega。)

编辑:通过Arduino,我只是想刷新Arduino引导加载程序,以便可以在Arduino而不是AVR中进行编程。我要使用的芯片是Atmel atmega328P,我不需要使用任何EEPROM。


3
请注意,“ Arduino”是一个品牌名称,因此它的首字母为“ A”。资金很重要。
晶体管

3
也许如果它实际上是“ Arduino”,但问题实际上是关于定制板上的ATmega,它更像是“ arduino”。至于实际的话题,除了ATmega之外,还应该考虑可能具有状态的任何其他组件,尤其是外部存储器-例如,如果有一张SD卡需要大量考虑和关注。最后,某些电源在打开/关闭时会发生令人讨厌的事情。
克里斯·斯特拉顿

1
我们是否可以假设您也不使用SD卡?
UKMonkey

这是您的产品。如果电源关闭,您是否需要保存一些东西?该问题的答案回答了您的问题。
StainlessSteelRat

Answers:


18

是的,突然关闭Arduino是安全的。

好吧,主要是安全的。

各种Arduino中使用的处理器具有三种类型的内存:

  1. Flash-程序存储的位置。您的程序可以从此处读取内容,但不能编写。

  2. RAM-程序在运行时保留程序变量的位置。当您关闭Arduino时,此处的数据消失。您的程序在这里不断读写。

  3. EEPROM-您的程序可以在其中存储东西的地方,它将在下次运行时需要。通常,这些东西很少更改,但是在程序运行时需要它。像传感器的校准数据。

大多数程序仅使用闪存和RAM。您可以随时使用这些程序打开和关闭Arduino。

如果您的程序写入EEPROM,则在写入EEPROM时关闭电源可能会损坏那里的数据。

如何影响程序取决于数据是什么。

如果它破坏了传感器的校准数据,则无论传感器检测到什么,都会得到错误的测量结果。

如果用EEPROM数据写入校验和,则可以检测到损坏,并且程序可以关闭而不是使用错误的数据。

您当然会知道您的程序是否写入EEPROM-您必须加载单独的库并使用特殊命令来读写EEPROM区域。

危险实际上仅在您写入EEPROM的那一瞬间。由于这种情况很少发生(通常仅在受控条件下发生),因此很少会破坏EEPROM数据。


摘要:

除非您正在使用EEPROM,否则您可以随意打开和关闭Arduino,没有任何危险-即使那样,您在大多数时间都不会使用它。


8
“闪存-程序存储的位置。您的程序可以从此处读取内容,但不能编写。” -许多AVR芯片(肯定包含328P)可以对闪存进行自我编程。实际上,这就是Arduino编程周期的工作方式。在328P上运行的引导程序将对328P本身进行编程。OP不太可能那样做,但是可能。
marcelm

2
另外,如果您使用带有额外硬件的Arduino(例如传感器),则不妨添加一个电容器,并花费一个portpin来测量外部电源,这样,如果消失了,您就可以安全地保存到eeprom中。想。在ATmega上,EEPROM写周期通常为3.4 ms。因此,如果您的电容器可以使处理器保持5 ms的生命,并且在每次eeprom写入操作之前检查外部电源,就可以保证安全。
vsz

10

是的,您可以快速关闭电源而不会损坏电源。

我看到延迟电路断电的唯一原因是出于外围设备的安全或功能原因。

例如关闭电源,需要将数据保存到非易失性存储器中。或在断电时,需要确保断电时机械装置处于安全位置。

这将需要监视电源并具有足够的保持能力来运行处理器以及需要执行的功能。


6

术语Arduino是指具有各种不同芯片的微控制器板的广泛范围,因此功耗的影响也各不相同。因此,我建议您输入所用ATmega芯片的确切部件号。但是,对于像ATmega328这样的芯片,一般而言,以下条件适用。

是的,您可以断开Arduino的电源而不会损坏或损坏任何东西,但请记住以下几点:

  • 如果您的代码使用EEPROM,则当设备正在刷新数据并断开电源时,闪存可能会损坏或数据可能无法正确存储。

  • 除了EEPROM以外,突然断电会造成危害的唯一方法是与Arduino一起使用的设备(例如SD卡)。

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.