NSA 1198 (National Semiconductor)

NSAxxxx


Připojení k Arduinu

Pin NSA 1198Název pinu NSA 1198Pin Arduino
1NC
2CATHODE 19 (přes odpor 220ohm)
3C4
4CATHODE 210 (přes odpor 220ohm)
5DPA1
6CATHODE 311 (přes odpor 220ohm)
7A2
8CATHODE 412 (přes odpor 220ohm)
9E6
10CATHODE 5A0 (přes odpor 220ohm)
11D5
12CATHODE 6A2 (přes odpor 220ohm)
13G8
14CATHODE 7A3 (přes odpor 220ohm)
15B3
16CATHODE 8A4 (přes odpor 220ohm)
17F7
18CATHODE 9A5 (přes odpor 220ohm)

Zdrojový kód pro Arduino

Pro správné fungování je nutno změnit v souboru SevSeg.h hodnotu MAXNUMDIGITS na 9 nebo vyšší!

// !!! YOU MUST change in file SevSeg.h #define MAXNUMDIGITS 8 to 9 or higher value!!! ///
#include "SevSeg.h"

SevSeg sevseg;

byte numDigits = 9;
byte digitPins[] = {9, 10, 11, 12, A0, A2, A3, A4, A5};
byte segmentPins[] =  {2, 3, 4, 5, 6, 7, 8, A1};
bool resistorsOnSegments = false;
byte hardwareConfig = COMMON_CATHODE;
bool updateWithDelays = false;
bool leadingZeros = true;

void setup() {
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros);
  sevseg.setBrightness(90);
}

void loop() {
  static unsigned long timer = millis();
  static long deciSeconds = 0;
  static byte deciPoint = 0;
  if (millis() - timer >= 300) {
    timer += 300;
    deciSeconds++;
    deciPoint++;
    if (deciPoint == numDigits) {
      deciPoint = 0;
    }
    if (deciSeconds == pow(10, numDigits)) {
      deciSeconds = 0;
    }
    sevseg.setNumber(deciSeconds, deciPoint);
  }
  sevseg.refreshDisplay();
}

Demo video

Leave a Reply