Arduino Uno R3でLEDを点滅(Lチカ)させてみた
@elchika 2019年10月01日に作成

elchika運営です!
この度、「電子工作のナレッジ共有コミュニティ elchika」がオープンいたしました🎉 👏

記念すべき1件目の投稿はやっぱりこれだよね!ということで、
サイト名の由来でもあるLチカを実際にやってみようと思います。

使用したもの

今回使ったものは以下の通りです。

使用した部品

Arduino Uno R3

Arduino Uno R3

人気のマイコンボード、Arduinoシリーズの初心者向けボードです。

ブレッドボード

サイズなど特に制限はありません。

LED

今回は赤色のLEDを使用しました。お好きなものを使用してください。
データシートなどで順電圧VFV_Fの標準値(typ)を調べられるようなLEDだと便利かもしれません。

抵抗器

抵抗器はLEDに電流が流れすぎないようにするために回路に組み込みます(電流抑制抵抗)。
今回は270Ω270\Omega(赤紫茶金)のものを使用しました。
抵抗器の抵抗値はカラーコードによって識別できます。

270Ω抵抗

必要な抵抗値の算出ですが、キルヒホッフの第2法則を使うと適切な値が求められます。
「電気回路の任意の閉路について、電位差の総和は0である」といった内容の法則です。

キルヒホッフの第2法則
電気回路の任意の閉路について、電位差の総和は0である。
i=1NVi=0\displaystyle\sum_{i=1}^{N} V_i = 0

簡単に言うと、中学校で習う回路の電圧は経路の和になるやつを一般化したものです。
同様に中学校で習うオームの法則も多用するので復習しておきましょう💡

オームの法則
V=RIV = RI

電源の電圧をEE、赤色LEDに印加したい順電圧をVFV_F、直列回路に流したい順電流をIFI_F、求めたい抵抗値をRRとすると、キルヒホッフの第2法則より次式が成り立ちます。

EVFRIF=0E - V_F - RI_F = 0

R=EVFIFR = \displaystyle\frac {E - V_F} {I_F}

Arduinoの動作電圧は5V5Vです。
データシートの標準値などを参考にし、LEDにかける順電圧を1.9V1.9V、順電流は20mA20mAとすると、

R=155[Ω]R = 155 [\Omega]

となります。この抵抗値を上回るようにして、過大な電流が流れないようにします。
270Ω270\Omegaの抵抗器を用いた場合は、流れる電流は約11mA11mAになります⚡️
LEDは微小な電流でも発光するので、1kΩ1k\Omega程度の抵抗器を用いても発光するものも多いと思います。

Lチカ回路を作成する

さて、ここからは回路を作成していきます。
今回はArduino Unoのデジタル13番ピンを出力に使うことを想定して設計します。
回路図は次のようになります。

Arduino UnoでLチカするための回路図

ちなみに、Frizingを使うと上図のような回路図を簡単に描くことができるのでオススメです👍

LEDの極性について

Lチカ回路を作成する際に気を付けたいのが、LEDの極性です。

LED

線の長いほうがアノード(+極)、短いほうがカソード(-極)です。
ダイオードの特性として、順方向に一定以上の電圧を印加したときに急激に電流が流れる性質があります。

逆方向に電圧を印加したときには電流はほとんど流れません。
しかし、ある一定以上の電圧を逆方向に印加すると素子を破壊してしまうので注意しましょう。筆者はこれで一度指を火傷してしまいました。
データシートにはVRV_RやReverse Voltageといった項目にこの逆電圧の上限値が記載されています。

スケッチをArduinoに書き込む

Arduino IDEを使うと、Arduino互換のマイコンボードに簡単にプログラムを書き込むことができます。
Arduinoに書き込むプログラムのことをスケッチといい、C言語ライクなArduino言語を使って動作を記述していきます。
インストール方法については割愛しますが、インストーラーの指示に従えば迷わずにインストールできるはずです。

1秒ごとにLEDを点滅させるスケッチを作成しましょう。
setup関数でどのピンを出力にするかなどの初期設定を行い、loop関数に繰り返し行う操作を記述していきます。
この二つの関数はArduinoでスケッチを書くときには(どちらかの処理が不要だとしても)必須になります。

pinMode(pin, mode)関数は、引数で指定したピンの動作を入力か出力に設定します。
digitalWrite(pin, value)関数は、引数で指定したピンにHIGH(5V5V)またはLOW(0V0V)を出力します。
delay(ms)関数は、指定したミリ秒の時間だけプログラムを停止します。

Lチカのスケッチ

#define LED_PIN 13 void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { digitalWrite(LED_PIN, HIGH); delay(1000); digitalWrite(LED_PIN, LOW); delay(1000); }

Arduino本体へスケッチを書き込むときはUSBケーブルでPCと接続し、Arduino IDEの[ツール]タブからArduinoを接続しているシリアルポートを選択する必要があります。
その後、左上の→ボタンを押すと、スケッチがArduinoへ書き込まれます。

IDEの下部に「ボードへの書き込みが完了しました。」と表示されたら成功です!

Lチカできた!

スケッチを書き込むとloop関数に記述した操作がひたすら繰り返されるようになります。
LEDがチカチカ点滅しているはずです!光っていない場合は回路やスケッチを見直してみましょう🤔

Lチカ!

Lチカ!

わあああああ✨

まとめ

今回はスタンダードなLチカ回路を作りました。

ただのLチカでもスイッチをつけたり、複数のLEDを制御したり、アイデア次第でいろんなチカらせ方ができます💡

あなたもelchikaで電子工作を始めてみませんか?

参考書籍

  • Massimo Banzi、Michael Shiloh 著、船田 巧 訳『Arduinoをはじめよう 第3版』オライリー・ジャパン,2015年
1
8
2
elchika さんが 2019/10/01 に 編集 をしました。 (メッセージ: 初版)
ログインしてコメントを投稿する

elchikaの記事投稿では
Markdown記法を採用しています。

Markdown記法については
コチラをご確認ください

elchikaの記事投稿では
Markdown記法を採用しています。

Markdown記法については
コチラをご確認ください