同じLチカをやるのでも、単線タイプのジャンプワイヤをちゃんと使い、できる限りブレッドボード上を整然と配置してみた。これまではあまりそんなことは考えていなかったからだ。
とりあえず持っているLEDを持っている330Ωの電流制御抵抗の個数の限り配置した。タクトスイッチをつけて、入力を受け付けるようにする。とりあえず、LEDの点滅が右から左へ流れ、タクトスイッチを押すたびに左右の向きが入れ替わる、というふうにしよう。
タクトスイッチの入力にプルダウン抵抗を取り付けるスペースがなくなってしまったので、内蔵プルアップ抵抗を使うことにし、負論理にする。
動かすとこんな感じだ。
スケッチはこんな感じ。
// // smartBreadboard.ino // 出来るだけ美しくブレッドボードを作ってみた。 // 27.07.26(日)0800~ // 佐藤俊夫 // const unsigned int STARTPIN = 2, ENDPIN = 8, INPUTPIN = 9, DELAYTIME = 50; // void setup() { // 330Ωをカソードにそれぞれ入れてデジタル2~8番にLEDを繋いである。 for(int i = STARTPIN; i <= ENDPIN; i++){ pinMode(i, OUTPUT); } // タクトスイッチは9番に繋いでアースし、内蔵プルアップ抵抗を使っている。 pinMode(INPUTPIN, INPUT_PULLUP); } void loop() { static int i = STARTPIN, j = 1; static unsigned long int prevtime = 0; if(prevtime + DELAYTIME < millis()){ digitalWrite(i, LOW); i += j; if(i > ENDPIN) i = STARTPIN; if(i < STARTPIN) i = ENDPIN; digitalWrite(i, HIGH); prevtime = millis(); } if(digitalRead(INPUTPIN) == LOW){ delay(500 ); j *= -1; } }