5.Lチカで電気を知る(LEDの接続とプログラミング)

スポンサーリンク
スポンサーリンク

LEDの極性を知る

手元にLEDを取り光にかざしてみてください。
中に金属板が見えると思いますが、この金属板の広いほうをマイナス側、狭いほうがプラス側に接続し、電圧を与えることでLEDは光ります。
おおよそのLEDは5Vでの制御となりますから、ArduinoのピンからのHIGH/LOWでコントロールできます。
LEDの極性

Arduinoに接続する

最も簡単な方法はこのままArduinoのピンヘッダーに刺してしまう方法です。
実際には電流を取りすぎてしまうため、本当の回路では抵抗を付けて電流制限を行いますが、今はとりあえずそのまま刺してしまいましょう。
下の図では、左側のマイナス側をGNDピンへ、右側のプラス側を10番ピンへ刺しています。

arduinoLED

早速プログラミング

この絵から、原理的に考えると、10番ピンにプラス側を指していますから、ここに5V(HIGH)を出力してあげればこのLEDは点灯することになります。
また逆に消す場合には、ここに(10番ピン)0V(LOW)を出力すれば消灯(点かない)ことになります。
早速プログラミングをしてみます。

[c]
#define pin 10 //LEDの接続ピン番号
void setup(){
pinMode(pin,OUTPUT) ; //10番ピンを出力にセット
}
void loop(){
digitalWrite(pin,HIGH) ; //5Vが出力されて点灯
delay(500) ; //500m秒まつ
digitalWrite(pin,LOW) ; //0Vが出力されて消灯
delay(500) ; //500m秒まつ</pre>
<pre>}
[/c]

とたったのこれだけで、LEDは500m秒ごとに点滅を繰り返します。
繰り返すのは、loop関数がずっとループするからですね。

ちょっとだけ専門的なお話を….

今回は実験のためにプラス側を10番ピンに接続してHIGHを出力することで点灯させました。
これは、業界では、HIGHを出力したときにアクティブとなるため、”アクティブHIGH”と呼びます。
また、この反対、LOWを出力したときにアクティブとなる”アクティブLOW”ということも当然あります。

その場合の接続は、10番ピンにマイナス側を刺し、LEDのプラス側を10番ピンと反対側にある5Vのピンに刺します。
※この場合足が短くて届かないと思いますが、こういったときにブレッドボードを利用します。

この接続をした場合、digitalWrite(pin,LOW) を行ったときに10番ピンが0Vになるためにプラス側からマイナス側へ電気が流れて点灯することになります。
※電子回路の世界では、このアクティブLOWで制御することが一般的ですので実際にはこれを利用します。
arduinoLEDブレッドボード

 

電気的な流れを少し図解してみました。

 

hikaru gyaku

hikaru

コメント

  1. ひろし より:

    画像のように10番ピンにマイナス側を刺し、LEDのプラス側を10番ピンと反対側にある5Vのピンに刺した後に以下を処理するとLEDが点滅しました。

    この5Vピンというのは5V固定のピンでしょうか?
    5Vピンの上に3.3Vピンがありこちらも刺してみると同じように点滅はしたのですが、こちらには3.3Vの電圧がかかっているのでしょうか?

    この2つのピンの役割が電圧の違いなのかどうかが疑問に思ったので質問させていただきました。

    ご教授よろしくお願いいします。

    void setup() {
    pinMode(10, OUTPUT);
    }

    void loop() {
    digitalWrite(10, HIGH);
    delay(500);
    digitalWrite(10, LOW);
    delay(500);
    }

    • Yossy より:

      Arduinoのボードのほとんどは3.3Vと5Vのピンがあり、それぞれの電圧が出力されています。
      これは、ボードコンピュータに接続する部品のほとんどが、5Vで駆動するものか、3.3Vで駆動するものか、の2種類があるからです。
      接続する部品が、どちらの電圧で駆動するものかによって使い分けます。
      ほとんどの部品に駆動できる最低電圧がありますので、それを下回っていなければその部品は動作します。
      LEDは駆動できる電圧の範囲が広いため、5Vでも3.3Vでも動作したことになります。

      ※ちなみにArduinoボードでも内部で5Vで動作しているものと3.3Vで動作しているものの2種類が存在します。
      ※このとき気を付けなくてはいけないのは、HIGHのレベルがその電圧であり、また、入力時のHIGHのレベルも同一のものでないといけないのです。
      ※つまり、3.3Vで動作しているArduinoのデジタルピンに5VがHIGHのSerial信号を入れるとCPUを壊しかねません。
      ※このようなときはレベルコンバータを利用しピンの電圧を合わしたりします。
      ※例えば http://akizukidenshi.com/catalog/g/gK-06464/

      • ひろし より:

        なるほど。
        分かりやすく解説していただきありがとうございました!
        話は変わりますが、先日ソフトバンクの孫社長が半導体設計会社のARMを3.3兆円で買収した話がありました。
        昨日、ワールドビジネスサテライトで生出演していましたが、今後IoT時代になり、プラットフォームの基盤を押さえておけば将来優位に立つとおっしゃっていました。

        「アルディーノ IoT」で検索するとWi-Fiを使ったり色々なことができる記事を見るので、色々やってみたいと考えています。

        少しずつ学んでいきたいと思いますので、記事の更新楽しみにしています^^

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