2016年

4月

04日

Arduino マルチファンクションシールド ダイナミック 点灯のスケッチ

Arduino マルチファンクションシールドを使ったシフトレジスタとダイナミック点灯のプログラミングの続き。

 

「ラボワーク」ホチキス先生の「プログラマーと呼ばれたい」)に参加して学んだことをブログにてまとめています。

Arduinoスケッチ

//数字 C0,F9,A4,B0,99,92,82,F8,80,90,7F

byte myNum0 = 0xC0;
byte myNum1 = 0xF9;
byte myNum2 = 0xA4;
byte myNum3 = 0xB0;
byte myNum4 = 0x99;
byte myNum5 = 0x92;
byte myNum6 = 0x82;
byte myNum7 = 0xF8;
byte myNum8 = 0x80;
byte myNum9 = 0x90;
byte myNumD = 0x7F;

//LED チューブの選択 F1,F2,F4,F8 左から 1,2,3,4番目のチューブ
byte myTube1 = 0xF1;
byte myTube2 = 0xF2;
byte myTube3 = 0xF4;
byte myTube4 = 0xF8;

void setup() {
  // put your setup code here, to run once:
  pinMode(4,OUTPUT);// multifunction board pin 4(LATCH)Digispark pin 0
  pinMode(7,OUTPUT);// multifunction board pin 7(CLOK)Digispark pin 1
  pinMode(8,OUTPUT);// multifunction board pin 8(DATA)Digispark pin 2
}

void loop() {
  // put your main code here, to run repeatedly:
  ledseg(myNum1,myTube1);
  ledseg(myNum2,myTube2);
  ledseg(myNum3,myTube3);
  ledseg(myNum4,myTube4);
}

void ledseg(byte myByteData1,byte myByteData2){
  digitalWrite(4,LOW); //LATCHをLOWにして外す

  shiftOut(8,7,MSBFIRST,myByteData1);
  shiftOut(8,7,MSBFIRST,myByteData2);

  digitalWrite(4,HIGH); //LATCHをHIGHにしてラッチする
}

 

目 次