2020/02/24

Arduino 74HC595A_shiftOut_Pin 接続

Arduino 74HC595A_shiftOut_Pin 接続

 
/*
   shiftOut のテストと赤色7セグメントLED表示器のテスト
   https://github.com/kankanla/arduino/blob/master/sketch_feb23a.ino
*/

uint8_t resetPin  = A0;  //P10 SRCLR/RESET (常にH可)
uint8_t clockPin  = A1;  //P11 SRCLK/SHIFT CLOCK(クロックを出力するピン)
uint8_t latchPin  = A2;  //P12 RCLK/LATCH CLOCK(LOW->HIGH で更新)
uint8_t oePin     = A3;  //P13 OE/OUTPUT ENABLE (出力有効/無効,常にH可)
uint8_t dataPin   = A4;  //P14 SER/A (ビットを出力するピン)

void setup() {
  Serial.begin(9600);
  pinMode(resetPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(oePin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  Number();
}

void Number() {
  /*
    赤色7セグメントLED表示器LTS-547BJR-01J
     0から9までの数字のバタン
     ピンの配置
        A
       F B
        G
       E C
        D  dp
  */
  byte n2[] = {
    0b00111111,   //0
    0b00000110,   //1
    0b01011011,   //2
    0b01001111,   //3
    0b01100110,   //4
    0b01101101,   //5
    0b01111101,   //6
    0b00100111,   //7
    0b01111111,   //8
    0b01101111    //9
  };

  byte n[] = {
    0b00000001,   //A
    0b00000010,   //B
    0b00000100,   //C
    0b00001000,   //D
    0b00010000,   //E
    0b00100000,   //F
    0b01000000,   //G
    0b10000000,   //dp
  };

  digitalWrite(resetPin, 1);
  for (uint8_t i = 0; i < sizeof(n); i++) {
    Serial.println(n[i], DEC);
    Serial.println(i);
    shiftOut(dataPin, clockPin, MSBFIRST, n[i]);
    digitalWrite(latchPin, 0);
    digitalWrite(latchPin, 1);
    delay(200);
  }
}



end

0 件のコメント:

コメントを投稿