回答:
いいえ、コードはMCUを「消耗」させません。一般に、何をしていても、ほぼ同じレベルのアクティビティが実行されます。でもdelay()
それは「アイドリング」だながら、多くの作業を行います。
CPUの動作を少なくするコマンドがあります-IDLEまたはSLEEPモードにしますが、これらはMCUの「摩耗」を減らすのではなく、電力を節約するために使用されます。
もちろん、寿命が限られている特定のものがあり、それらを限られた時間しか使用できません-EEPROMへの書き込みやフラッシュメモリへの書き込みなど-あなたはそれらを常にしたくありません。それ以外は、いや、あなたが何をしていようと、MCUを消耗させません。
そうではありません。まあ、それを20年のように実行すると、徐々に摩耗する可能性があります... 少なくともコードの複雑さには依存しませんが、同じメモリセクションで実行される書き込み操作の数に依存します。さらに、摩耗するとレンガになってしまい、LEDを点滅させるような単純なコードにはなりません。
Arduino(Uno)には3つのメモリパーツがあります。SRAM、FLASH、およびEEPROM。SRAMは、論理トランジスタゲートに似ています。変数を保存することで消耗しません。フラッシュとEEPROMはフローティングゲートで構成されています。新しいデータを書き込むと、徐々に摩耗します。Atemlマイクロコントローラのデータシートから、それは述べています:
フラッシュメモリの耐久性は、少なくとも10,000回の書き込み/消去サイクルです。(8.2章から)
EEPROMには、少なくとも100,000回の書き込み/消去サイクルの耐久性があります。(8.4章から)
ただし、フラッシュメモリはコードを実行するためのスペースです。Arduinoの実行中は書き込み操作は行われません。新しいコードをアップロードするときのみ、フラッシュメモリを書き込みます。そのため、コードを少なくとも10,000回アップロードすると劣化します。
本当に必要な場合は、通常Arduinoがオフになっているときに変数データを保持する目的で、フラッシュメモリを自己再プログラムする特別なコードを作成できます。この種のプログラムを作成すると、FLASHメモリには書き込み耐久性があまりないため、ゆっくりと摩耗します。Arduinoがオフになっていてもデータを保持したい場合は、寿命がずっと長いEEPROMを使用することをお勧めします。
まとめると、コードの実行ではなく、FLASHまたはEEPROMメモリの再書き込みによって消耗します。
...(または一般的に他のマイクロコントローラー)...
他の答えは素晴らしいですが、1つの小さな例外があります。
強誘電体RAM(FRAM)は、フラッシュとEEPROMの不揮発性、SRAMの書き込み可能性、およびDRAMの密度を組み合わせたメモリ形式です。
ただし、FRAMの読み取り操作はFRAMに格納されているデータを破壊し、書き込み操作はFRAM構造自体を破壊します(データは読み取りによって破壊されるため、毎回書き戻す必要があります)。コードがFRAMにある場合、それを実行するとMCUが時間の経過とともに摩耗します。しかし、FRAMの書き込み耐久性が数百億から数十億であることを考えると、デバイスの寿命中にFRAMが原因でMCUが動作不能になることはほとんどありません。
FRAMを使用するMCUの例には、TIのMSP430FRxx lineが含まれます。
おそらくそうではありません... Atmelチップは時間の経過とともに暖かくなる可能性があります(遅延でもこれを防ぐことはできません)が、熱を放出する可能性がある場合、問題は発生しません。しかし、ほとんどの場合、オーバークロックのみが本当に深刻な問題を引き起こす可能性があります。また、Arduinoを完全に閉じたボックスや高温の環境で使用する場合もあります。
それに比べて、多くのコンピューターは電源を切らずに何年も稼働していますが、その意味では、発生した熱を軽減できる限り、Atmel(チップ)は違いはありません。
Atmelsの熱センサーの詳細については、内部温度センサーをご覧ください。
delay
、同じ処理能力を使用したりできます。
delay
、CPUを回転させるだけの場合とは異なり、約1,000倍の電力消費を削減します。もちろん、これにはコストがかかります:)