LEDの明るさをコントロール

 

f:id:yas65:20140704212309j:plain

今日はただLEDを点灯させるだけでなく、明るさを変えることに挑戦。

PWM(パルス幅変調)という仕組みを使う。

パルス幅変調はオンとオフの点滅間隔の比を変えることによって、LEDの明るさを調節する。点滅間隔の変更はdelay()を使ってソフトウェア的にも実現できるが、その間処理が止まってしまい、他のことができない。そこでArduinoにはPWM専用のピンが3つ用意されていて、analogWrite()という命令で操作できる。

 

こんな感じで配線。抵抗を入れて流れる電流の大きさをLEDに合わせてコントロールする(らしい)。今日は330Ωの抵抗を使った。

 

 f:id:yas65:20140704214602p:plain

 

下記のプログラムをArduinoに書き込み

const int LED = 9;
int i = 0;

void setup(){

  pinMode(LED, OUTPUT);
}

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

転送すると、、、

 

 

 

 

 点いた!

LEDを点灯

f:id:yas65:20140703222116j:plain

 

引き出しに眠っていたArduinoを発見したので、とりあえずLEDを点滅させてみた。

LEDの足の長い方を13ピンに入れ、短い方をGNDに接続する。

IDEを立ち上げ、下記ソースを入力

const int LED = 13;

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

void loop()
{
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}

 USBケーブルを挿して、いざ書き込み。

 

 

 

 

点いた!

f:id:yas65:20140703223333j:plain

ツール > マイコンボート、シリアルポートの選択を間違うとダメみたい。

 せっかく買ったことを思い出したので、いろいろいじってみます。

 

 

Arduinoエントリーキット

Arduinoエントリーキット

 
Arduinoをはじめよう 第2版 (Make:PROJECTS)

Arduinoをはじめよう 第2版 (Make:PROJECTS)