出来る限り美しく

投稿日:

 同じLチカをやるのでも、単線タイプのジャンプワイヤをちゃんと使い、できる限りブレッドボード上を整然と配置してみた。これまではあまりそんなことは考えていなかったからだ。

 とりあえず持っているLEDを持っている330Ωの電流制御抵抗の個数の限り配置した。タクトスイッチをつけて、入力を受け付けるようにする。とりあえず、LEDの点滅が右から左へ流れ、タクトスイッチを押すたびに左右の向きが入れ替わる、というふうにしよう。

IMG_3153

 タクトスイッチの入力にプルダウン抵抗を取り付けるスペースがなくなってしまったので、内蔵プルアップ抵抗を使うことにし、負論理にする。

 動かすとこんな感じだ。

 スケッチはこんな感じ。

//
//  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;
  }
}

投稿者: 佐藤俊夫

 50代後半の爺。技術者。元陸上自衛官。2等陸佐で定年退官。ITストラテジストテクニカルエンジニア(システム管理)基本情報技術者

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください