つくったブログ

ぼくがつくったもの。

スイッチを使った1桁7セグLEDのカウントアップ。(arduino)

http://instagram.com/p/nbxIPsLLhW/


スイッチをつけてみたよ。

つなぎかた

ノートに書いてみた。
http://instagram.com/p/nbzOYTrLkk/

スイッチは13番ピンに接続。10kオームも使う。


スケッチ

前回のものを改良した。

//LED site:(http://happy-arduino.blogspot.jp/2012/08/17_27.html)

const int BUTTON = 13;  // プッシュボタンが接続されているピン
int val = 0;           // 入力ピンの状態がこの変数(val)に記憶される
int old_val = 0;       // valの前の値を保存しておく変数
int state = 0;         // LEDの状態(0ならオフ、1ならオン)


void setup(){
  //1~8番ピン デジタル出力へセット
  for (int i=1; i<=8; i++){
    pinMode(i,OUTPUT);
  }
  pinMode(BUTTON, INPUT);  // BUTTONは入力に設定
}

//LEDレイアウトを定義
boolean Num_Array[11][8]={
  {0,0,0,1,0,0,0,1},{1,1,0,1,0,1,1,1},{0,0,1,1,0,0,1,0},{1,0,0,1,0,0,1,0},
  {1,1,0,1,0,1,0,0},{1,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,0,1,0,0,0,1},
  {0,0,0,1,0,0,0,0},{1,0,0,1,0,0,0,0},{1,1,1,0,1,1,1,1}
};
//LED表示関数を定義

void NumPrint(int Number){
  
  for (int w=0; w<=7; w++){
  digitalWrite(w+1,Num_Array[Number][w]);
  }
}

void loop(){
   val = digitalRead(BUTTON); // 入力を読み取りvalに格納
   NumPrint(state);
  //変化があるかどうかチェック
  if((val == HIGH) && (old_val == LOW)) {
    state = (state+1) % 10;
    NumPrint(state);
    delay(300);
  }
  delay(100);
  old_val = val;  // valはもう古くなったので保管しておく
}
  • スイッチが押されたかを13ピンの電圧によって判別。
  • 一回押されるとstateが一加算される。10まで増えると0になる。
  • ボタンが押されるたびに0,1,2,3...と切り替わる。

完成。

ここまできたらなんか作れそうだ。
でも二桁LEDにも挑戦したい。

Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS)

Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ (Make:PROJECTS)