<!--親の顔より見た光景-->

日々の発見を残していきます。

ドットマトリクスLED

スイッチ(トグル化)を押すと光る、ただ眩しいだけのgm回路が出来た。
f:id:akagi13213:20171022190242j:plain

・ドットマトリクス
青色ドットマトリクスLED 8x8ドット MOA20UB018GJ
青色ドットマトリクスLED 8x8ドット MOA20UB018GJ: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販

・ピン番号
f:id:akagi13213:20171022225325j:plain

アノードはArduinoの出力ピン、カソードはグランドに直結。
カソードを出力ピンに繋いでON・OFFすれば行列指定できるけど、マイコンのピン数が足りない。

チャタリング対策はディレイ方式。

【segment_7.ino】

#define switch_pin  10
#define OFF  0
#define ON   1
int switch_status = OFF;

void setup() {
  pinMode( 10, INPUT );
  for ( int i = 2; i <= 9; i++ ) {
    pinMode( i, OUTPUT ); 
    digitalWrite( i, LOW );
  }
}

void loop() {
  int flush_status = LOW;
  if ( getSwitchStatus() == ON ) {
    flush_status = HIGH;
  }
  else {
    flush_status = LOW;
  }
  for ( int i = 2; i <= 9; i++ ) {
    digitalWrite( i, flush_status );
  }
}

int getSwitchStatus()
{
  // スイッチが押されるまで待機
  while ( digitalRead( switch_pin ) != HIGH );
  // チャタリング防止
  delay( 100 );
  // スイッチが離されるまで待機
  while ( digitalRead( switch_pin ) != LOW );
  // チャタリング防止
  delay( 100 );
  
  if ( switch_status == OFF ) {
    switch_status = ON;
    return ON;
  }
  else {
    switch_status = OFF;
    return OFF;
  }
}


マトリクスLEDの絶対最大定格に、連続で流す場合最大は10mAとあるが20mA流してる。
いつか壊れちゃう!