meideru blog

家電メーカーで働いているmeideruのブログです。主に技術系・ガジェット系の話を書いています。

ArduinoでLEDを点灯させてみた

 

今までずっとプログラミング的なことしかやってきませんでした。期間的に言えば、高校受験が終わった中学3年から今(大学2年と大学3年の間の春休み)までずっとプログラミングをやってきました。一応、オセロとかを作りました。コンソール画面で動く非常に簡易的なものでしたが、ミニマックス法を用いたオセロのプログラムです。

しかし、電子工学(電子工作?)的なことは全くやってきませんでした。

電子回路の講義で初歩的なバイポーラトランジスタの増幅回路なども習いましたが、もう全然覚えていません。やはりアウトプットしていない(実際に何か作ったりしていない)から身についていないのだと思います。今は電子工学系の学部に通っているので、これは相当まずい状態です・・・。

なので、今年こそはやろうと思っています。プログラミングができて電子回路もできれば最強じゃないですか!笑

今年は電子工学的なことも勉強して飛躍の年にしようと思っています!

目次

まずはArduinoを使おうと思います

まずは、プログラミングを用いて電子工作を始めようと思います。言うならば、「プログラミング」を電子工作(電子工学)への架け橋にするということです!

プログラミングで電子工作を始めるのであれば、マイコンは必須です。

マイコンの入門としてPICなども考えたんですが、簡易的なArduinoから始めようと思います。

LEDの点灯をやってみます

まずはLEDの点灯からやりたいと思います。通称Lチカです!(LEDチカチカ点灯の略)

どのマイコンでもLチカが基本です。なぜ基本かというと、簡単だからでしょうね。複雑な作業ではないからです。

いざ実践

使用するもの

使用するものは以下のものです。

@使用するもの
ArduinoでLED点灯を行うために用意するもの

【使用するもの】

  • Arduino UNO
  • ブレッドボード
  • ジャンパ線(2本)
  • 9V電池
  • バッテリースナップ
  • 抵抗(100Ω)
  • LED(3mm)

これらは全てスイッチサイエンスで揃えました。秋葉原近郊に住んでいたらラジオ会館とかで揃えるんですけどね・・・。残念ながら近郊には住んでいないので・・・orz

接続方法

接続方法は以下のようにしました。

@接続方法
接続方法

ジャンパ線は9番とGNDに接続しました。

注意しなければいけないのは、「接続する極性を間違えないこと」と「抵抗を挟むこと」です。

LEDにはアノードとカソードという極性があって、アノードがプラスでカソードがマイナスに該当します。

抵抗を挟んだ理由は、LEDが故障しないようにするためです。LEDに電流が流れすぎると壊れてしまいます。この実験では100Ωの抵抗を挟んでいます。

書き込むプログラム

まずは単純に光らせてみようと思います。

void setup()
{
 analogWrite(9, 255);
}
void loop(){}

これで書き込めば完了です。

結果

@光りました!
LEDが光りました

感動!!!

こんなにも当たり前のことが感動するなんて・・・w

今度はLEDを点滅させてみます

さっきのは単純に光らせるだけでしたが、今度は点滅させてみようと思います。

void setup(){}
void loop()
{
 analogWrite(9, 255);
 delay(1000);
 analogWrite(9, 0);
 delay(1000);
}

delay(1000)は1秒待機という意味です。

結果の画像はアップしませんが、上のプログラムを書き込むと1秒ごとにON→OFF→ON→OFFを繰り返します。

最後にLEDをホタルの光のように明暗制御してみます

最後に、ホタルの光のようにLEDがゆっくりと明るくなりゆっくりと暗くなる感じで光らせてみようと思います。

void setup(){}
void loop()
{
 for(int i = 0; i <= 255; i++)
 {
   analogWrite(9, i);
   delay(10);
 }
 for(int i = 255; i >= 0; i--)
 {
   analogWrite(9, i);
   delay(10);
 }
}

for文を用いて0.01秒ごとにLEDの明るさを切り替えるプログラムです。

上のプログラムを書き込むとホタルの光のようにLEDがゆっくりと点滅します。

 

とりあえず、こんな実験をしました!

 

ノシ

PS
結果は画像ではなく動画の方がわかりやすいですよね。なので、近いうちにYoutubeのチャンネルを作りたいと思います。

 - 技術系