LoginSignup
7
0

More than 5 years have passed since last update.

Lチカで雑なクリスマスツリーを作る(むなしい)

Last updated at Posted at 2017-12-10

組み込みプログラミングの入門機として人気のあるArduino。
とりあえずLEDを接続してLチカを行った事のある人は多いのではないでしょうか。

12月になり、そろそろクリスマスが近いのでこのLチカを応用して雑なクリスマスツリーを作ります。

用意した道具

_DSC3415.JPG
* ブレッドボード
* ジャンパケーブル
* 赤色LED(写真に掲載がありませんがRGBLEDも用意しました)
* Arduinoの互換機
* 画用紙
* ノリ
* ハサミ

Lチカの復習

ArduinoはデフォルトでBlinkというサンプルプログラムが書き込まれていることが多いです。
Blinkは13番Pinを点灯させるプログラムなのでLEDに13番Pinとグランドを接続します。

本当は回路の中に抵抗を挟み、LEDのデータシートに合わせた順方向電流(通常20mA~30mA程度)に調整した方が良いのですが
今回はめんどくさいのとクリスマスまで寿命が持てばいいので無視します。_DSC3416.JPG

Arduinoのピン

画像6.jpg
LEDを点灯させるだけであれば番号のついているPINであればどこでも使用できるのですが
LEDの発光を調整したい場合は電圧を調整できるPWMピンに接続する必要があります。

今回はRGB表示ができるLEDの電圧を制御したかったので9、10、11番のピンをRGBLED用に使用します。

接続

IMG_20171210_171236.jpg
写真では左側のグランドが未接続です。

Arduinoのプログラム

int interval[5];
int mode[5]={0};
int count = 0;

void setup() {
  // simple blink
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);

  // pwm blink
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);

  randomSeed(analogRead(0));
  for(int i=0;i<5;i++){
    interval[i] = random(100);
  }
}

void loop() {
  long max = 255;
  if(!(count%10)){
    analogWrite(9,random(255)); // Green
    analogWrite(10,random(255)); //Blue
    analogWrite(11,random(255)); //Red
  }

  for(int i=0;i<5;i++){
    if(!(count%interval[i])){
      digitalWrite(i+2, mode[i]);
      mode[i] = !mode[i];
    }
  }
  count ++;
  delay(100);   
}

赤色LEDは初期化時に周期を決定して点灯し、RGBLEDは1秒に一度色が変わる仕組みにしました。
動画では白飛びしていてRGBLEDの色が良くわかりませんが・・。
ezgif-4-6ad2ab6524.gif

露出部分を絶縁する

カプトンテープが見つからなかったので今回やりませんでした。
絶縁されていないので人がいないところでは動作させません。

クリスマスツリーにする

緑色の紙を手に入れる。
クリスマスツリー状にして貼り付ける。
ezgif-4-9815ec9151.gif
とてもむなしい・・・

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0