1-3.Arduinoで7SegLEDを連続で光らせよう(準備①)

 

今回も応用編です。

Arduinoで7セグLEDの点灯を制御してみたいと思います。

 

 

その前に、7セグLEDを理解せねばなりません。

それも、複数桁のセグLEDを制御する前に、

まずは1桁セグの制御を理解しましょう。

 

 

1桁の7セグの場合

7セグは一つのCom(GND側)と8つのコントロール端子できています。

 


Com側はGND、コントロール側はデジタルピンに設定します。

 

中身はLED(ダイオード)ですので、逆に接続すると電気が流れません。

というわけで、

今回はHIGHにすることで、光らせます。

 

◆回路

回路は、基本的には前回と一緒です。

↓の写真をみて、頑張って接続してください。

 

①デジタルピン6-13は、180Ωの抵抗に接続しています。

②抵抗の先の片方はLEDを経由してGND

③抵抗の先のもう一方は、線を経由して7セグLEDのA-GとDot端子に接続しています。

④LEDの先と、7セグLEDのGNDを、ArduinoのGNDに接続しています。

 

※Pinが隣接するところは、念のため熱収縮チューブでガードしてます。

  (本当は収縮させるべきだろうけど、はめてるだけ)

 

 

◆スケッチ(コード)

※今回からコードは最後に書くことにしました。

 デジタル出力は、前回と同様の方法です。

 後で、コードを書き込んでみてね

 

 

それでは、Arduinoに書き込んで動かしてみましょう。

AからG、そしてDot端子をHIGHにしていくと、

こんな感じで光りますね。

 

※3ステップ目

※4ステップ目

※5ステップ目

 

この、LEDの光らせる組み合わせで、

数字として認識できるというわけです。

 

次回は、実際に1から0まで制御してみましょう。

1コード1日記にするため、この日記はここまでとします。

 

 

晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ

雑談

 

一般的に、7セグといいますが、

最近は斜線を設けたり、丸みを帯びた形にしているものもあります。

 

今回の7セグも、ドットがあるので実際のところ8セグメントなんですよね。

 

1桁のセグは制御に8Pinかかります。

複数セグはどうするのでしょうか?

PIN数が足りなくなる?

 

そんなことはありません。

ただ、ちょっと制御が大変になってきますね。

それはまた追々説明します。

晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ晴れ

 

 

それでは、巻末に移動させたコード(スケッチ)です。

宇宙人しっぽ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人あたま

/*
 * Author: SAI
 */

/* *** Define 定義 *** */
//      A
//     ----
//  F | G  |B
//     ----
//  E |    |C
//     ----    . Dot
//      D


const int ASeg = 13;
const int BSeg = 12;
const int CSeg = 11;
const int DSeg = 10;
const int ESeg = 9;
const int FSeg = 8;
const int GSeg = 7;
const int DotSeg = 6;

const int LED_ON = HIGH;
const int LED_OFF = LOW;


/* initial setting 初期設定 */
 void setup() {
  /* IO output setting  IO出力設定 7Seg用端子を出力 */
  pinMode(ASeg, OUTPUT);  
  pinMode(BSeg, OUTPUT); 
  pinMode(CSeg, OUTPUT);
  pinMode(DSeg, OUTPUT);
  pinMode(ESeg, OUTPUT);
  pinMode(FSeg, OUTPUT);
  pinMode(GSeg, OUTPUT);
  pinMode(DotSeg, OUTPUT); 
}

/* Mail loop 通常処理(繰り返し) */
void loop() {
  /* 0.5msec sequence ON 0.5秒ごと、各PINを点灯流れる点灯 */
  digitalWrite(ASeg, LED_ON);    // LED ON 
  delay(500);
  digitalWrite(BSeg, LED_ON);    // LED ON 
  delay(500);
  digitalWrite(CSeg, LED_ON);   // LED ON
  delay(500);
  digitalWrite(DSeg, LED_ON);   // LED ON
  delay(500);
  digitalWrite(ESeg, LED_ON);   // LED ON
  delay(500);
  digitalWrite(FSeg, LED_ON);   // LED ON 
  delay(500);
  digitalWrite(GSeg, LED_ON);   // LED ON 
  delay(500);
  digitalWrite(DotSeg, LED_ON);   // LED ON 
  delay(500);


  /* 0.5msec sequence OFF 0.5秒ごと流れる消灯 */
  digitalWrite(ASeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(BSeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(CSeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(DSeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(ESeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(FSeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(GSeg, LED_OFF);    // LED OFF 
  delay(500);
  digitalWrite(DotSeg, LED_OFF);    // LED OFF 
  delay(500);
}

宇宙人しっぽ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人からだ宇宙人あたま

 

フォローしてね…