メンズワキガ対策専門ブランドD AGICA【ディーアジカ】

 

■Arduino Lチカを試す

正月休みもブレッドボードで遊んでいる meyon さんであります (^_^;)

 

さて、初めての Arduino Uno を動かしてみしょう。

基本は Lチカとのことなのですが単純に LED を点灯させるだけじゃつまらないので 、ダーリントンドライバが 4回路入ったTD62308BP1G がありますから 4個の LED を順番に点灯させてみることにしました。

 

回路図です。

電源は 12V AC アダプタとそれをレギュレーターで降圧した 5V (*) を使用します。Arduino へも Vin へ 12V を供給します。

(*)「+5V電源回路とLED駆動回路を作る

 


回路図

 

スケッチです。C 言語も初めてなので、出来の悪さはご容赦ください。

int pin[5]={0,6,9,10,11}; // 出力pin 0はダミー
int seq[4]={4,3,2,1};     // 出力する順番

int ptn[][5]={            // 点灯パターンと時間
  {1,0,0,0,100},
  {1,1,0,0,50},
  {0,1,0,0,100},
  {0,1,1,0,50},
  {0,0,1,0,100},
  {0,0,1,1,50},
  {0,0,0,1,100},
  {1,0,0,1,50}
};

 

void setup() {
  pinMode(pin[1], OUTPUT);
  pinMode(pin[2], OUTPUT);
  pinMode(pin[3], OUTPUT);
  pinMode(pin[4], OUTPUT);
}

 

void loop() {
  for (int i=0; i<sizeof(ptn)/sizeof(ptn[0]); i++) {
    digitalWrite(pin[seq[0]],ptn[i][0]^1);
    digitalWrite(pin[seq[1]],ptn[i][1]^1);
    digitalWrite(pin[seq[2]],ptn[i][2]^1);
    digitalWrite(pin[seq[3]],ptn[i][3]^1);
    delay(ptn[i][4]);
  }
}

 

pin[ ] は出力する pin 番号です。最初の「0」はダミーですので、必ず書いておきます。

seq[ ] は出力する順番です。既定は LED4 、LED3 、LED2 、LED1 の順になっています。

ptn[ ][ ] は点灯パターンと時間を指定します。「1」は点灯、「0」は消灯。5番目の数字は点灯時間 (ms) です。既定のパターンは、ひとつの LED を 100ms 点灯し、次の LED を点灯して 50ms 待ってから前の LED を消灯しています。これは、点灯の切り替えを滑らかにするためです。

 

loop() の中で「ptn[i][0]^1」というのがありますが、ドライバが LOW で LED 点灯のため、点灯パターンの「1」と「0」を反転させるために XOR 演算する部分です。論理演算すると、ビットごとの比較になりますから、例えば 4bit ならば下表のようになります。

 

ptn

1 XOR (ptn)
0000 0001 0001
0001 0001 0000

 

じつはこの部分、最初は NOT と考えたのですが、プログラマの息子から「 NOT だと他のビットが 1 になってしまう」とダメ出しをもらいました。つまり、

 

ptn NOT (ptn)
0000 1111
0001 1110

 

ってことですね。難しい… (^_^;)

 

 

Arduino とブレッドボードです。


ブレッドボード

 

ドライバ IC は上から見ると反時計回りに 1 、2 、3 、4 となっていますので、LED を時計回りに点灯させるために seq[ ] を逆順にしています。まぁ順番なんてつなぎ方でどうにでもなるんですけどね。

Arduino の電源はブレッドボードの 12V からとっています。ちなみに、AC アダプタのコネクタを DIP 化したので、電源部分がすっきりできました。

 


コメント
コメントする








   
この記事のトラックバックURL
トラックバック

■calendar

S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
<< August 2019 >>

■search this site.

■recommend

毎日貯まるポイントサイト ECナビ

■recommend

* 楽天ROOM *

■Twitter

■recommend

■recommend

■selected entries

■categories

■archives

■recent comment

■recent trackback

■links

■profile

■others

■mobile

qrcode

■powered

無料ブログ作成サービス JUGEM