LED_BUILTIN

標準ライブラリー

LED_BUILTIN

LED_BUILTINはArduino環境における定数で、ほとんどのArduinoボードに内蔵されているLEDに接続されているピンの番号を表します。この内蔵LEDは、多くの場合、Arduinoボード上のデジタルピン13に接続されており、基本的なテストやデバッグに役立ちます。

LED_BUILTIN定数を使用することで、この内蔵LEDを制御するプログラムを書く際に、ピン番号を直接記述する必要がなくなります。

ArduinoUNOにおけるBuiltinされたLED

Arduino UNOの基板上に組み込まれたLEDは、これは一般に「内蔵LED」または「オンボードLED」と呼ばれ、このLEDは、デジタルピン13に接続されており、Arduinoのプログラミングでよく使用される初心者向けの例として利用されます。

特徴と利用目的

  • ピン割り当て: 内蔵LEDは通常、デジタルピン13に接続されています。このピンにHIGH値を出力するとLEDが点灯し、LOWを出力すると消灯します。
  • テストとデバッグ: 内蔵LEDは、プログラムが正しく動作しているかを視覚的に確認するために使用されます。例えば、特定の条件でLEDを点滅させることで、プログラムの実行状態を簡単にモニタリングできます。
  • 教育ツール: Arduinoの初学者が最初に行うプロジェクトとして、「LEDの点滅」があります。このシンプルなプロジェクトは、デジタル出力の概念とプログラムの基本構造を学ぶのに適しています。

サンプルコード

LED_BUILTINを使用しないサンプル

このコードは単純に13番ピンを出力に設定し、そのLEDを1秒ごとに点滅させるプログラムです。

void setup() {
  pinMode(13, OUTPUT); // ピン13を出力として設定
}

void loop() {
  digitalWrite(13, HIGH); // LEDを点灯
  delay(1000); // 1000ミリ秒待つ
  digitalWrite(13, LOW); // LEDを消灯
  delay(1000); // 1000ミリ秒待つ
}

LED_BUILTINを使用して書き直す

上記のプログラムを、LED_BUILTINを使用して書き直します。

void setup()
{  
  // 内蔵LEDピンを出力として設定  
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {  
  digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯  
  delay(1000); // 1秒待つ  
  digitalWrite(LED_BUILTIN, LOW); // LEDを消灯  
  delay(1000); // 1秒待つ
}

注意点

  • ほとんどのArduinoボードでは、内蔵LEDはデジタルピン13に接続されていますが、ボードによっては異なる場合があります。LED_BUILTINを使用することで、ピン番号を気にすることなくコードを書くことができます。
  • LED_BUILTINを使用することで、ボードが変わっても同じコードを再利用することが容易になります。
  • 内蔵LEDは、プログラムが正しく動作しているかを素早く確認するための便利な手段を提供します。
  • 消費電力と制限: 内蔵LEDは少量の電流で駆動するように設計されていますが、外部から大量の電流を供給する際には適切な抵抗を使用してLEDを保護する必要があります。ただし、内蔵LEDには既に適切な抵抗が組み込まれているため、デジタルピン13に直接接続して使用する分には問題ありません。
  • ピンの利用: 内蔵LEDがピン13に接続されているため、他の用途でピン13を使用する場合はLEDが予期せずに点灯または消灯することがあります。このため、他の重要な用途には別のピンを使用することが推奨されます。

13番ピンを入力した場合にオンボードLEDはどうなるのか

Arduino UNOで13番ピンをデジタル入力として設定した場合、そのピンに接続されているオンボードLEDの挙動は少し複雑になります。通常、13番ピンはオンボードLEDに直接接続されており、そのピンがHIGHになるとLEDが点灯し、LOWになると消灯します。ピンを出力として使用している場合はこの挙動が明確ですが、入力として設定した場合の影響は以下の通りです。

Arduino UNOで13番ピンをデジタル入力として設定した場合、そのピンに接続されているオンボードLEDの挙動は少し複雑になります。通常、13番ピンはオンボードLEDに直接接続されており、そのピンがHIGHになるとLEDが点灯し、LOWになると消灯します。ピンを出力として使用している場合はこの挙動が明確ですが、入力として設定した場合の影響は以下の通りです。

13番ピンを入力モードに設定

ピンを入力モードに設定すると、そのピンは外部からの信号を読み取るために使用されるようになります。この状態ではピンの出力機能が無効化され、内部的にピンはハイインピーダンス状態になります。しかし、13番ピンはオンボードLEDとも接続されているため、その影響を受けることになります。

オンボードLEDの挙動

13番ピンが入力モードに設定されている場合、そのピンの電圧レベルがLEDの状態に影響を与えることがあります。具体的には以下のような状況が考えられます。

  1. フローティング状態: ピンが何も接続されていないフローティング状態の場合、ピンの電圧は不定になります。この不定な電圧により、オンボードLEDが予期せずに点灯したり、点滅したりする可能性があります。
  2. プルアップまたはプルダウン: 外部からプルアップまたはプルダウン抵抗を使用してピンの電圧を一定に保持する場合、それに応じてLEDがオフに保たれるか、または常時オンになることがあります。たとえば、プルアップ抵抗を接続すると、ピンは常にHIGH状態に保たれ、LEDが点灯したままになる可能性があります。

ハイインピーダンスとは

「ハイインピーダンス状態」という用語は、電子工学において、特定の回路要素またはピンがほとんどまたは全く電流を引き込まない状態を指します。この状態のピンや端子は、電気的に「切り離されている」または「浮いている」と見なされます。

この用語は主に三状態(トライステート)ロジックや入力ピンに関連して使用されます。

ハイインピーダンスの概念

  • インピーダンス
    電子回路において、インピーダンスは電流の流れに対する抵抗のようなものです。インピーダンスが高いと、電流の流れに対する抵抗が大きくなります。
  • ハイインピーダンス
    ピンがハイインピーダンス状態にある場合、そのピンは他の回路要素にほとんどまたは全く影響を与えず、外部からの電流の流入もほとんど受けません。この状態のピンは、回路内で他の信号に影響を与えることなく安全に存在できます。

ハイインピーダンス状態の利点

  • 衝突回避
    マイクロプロセッサやマイクロコントローラにおいて、複数のデバイスが同じ通信ライン(例えば、バス)に接続されている場合、ハイインピーダンス状態を利用して、アクティブでないデバイスが通信ラインに干渉するのを防ぎます。
  • 省エネ
    ハイインピーダンス状態のピンは電流を引き込まないため、消費電力を低減させることができます。
  • 入力モード
    マイクロコントローラのピンが入力として機能している時、それをハイインピーダンス状態に設定することで、外部からの信号を正確に読み取ることができます。これにより、外部の信号状態によってピンの状態が決まります。

Arduinoでのハイインピーダンス状態

Arduino(例えばArduino UNOのATmega328P)において、デジタルピンを入力モードに設定すると、そのピンはハイインピーダンス状態になります。これは、pinMode(pin, INPUT); というコード行を使用して設定されます。ピンが入力モードに設定されると、ピンは外部からの電圧レベルを検出するために使用されますが、ピン自体は回路にほとんど影響を与えません。これにより、センサーからのデリケートな信号を受け取る際に有用です。

タイトルとURLをコピーしました