Připojení k Arduinu
| Pin HDSP-6415 | Název pinu HDSP-6415 | Pin Arduino |
|---|---|---|
| 1 | NC | – |
| 2 | CATHODE 1 | 9 (přes odpor 220ohm) |
| 3 | D | 5 |
| 4 | CATHODE 4 | 12 (přes odpor 220ohm) |
| 5 | E | 6 |
| 6 | Dp | A0 |
| 7 | CATHODE 6 | A2 (přes odpor 220ohm) |
| 8 | C | 4 |
| 9 | CATHODE 8 | A4 (přes odpor 220ohm) |
| 10 | CATHODE 7 | A3 (přes odpor 220ohm) |
| 11 | NC | 5 |
| 12 | A | 2 |
| 13 | CATHODE 5 | A1 (přes odpor 220ohm) |
| 14 | B | 3 |
| 15 | G | 8 |
| 16 | CATHODE 3 | 11 (přes odpor 220ohm) |
| 17 | F | 7 |
| 18 | CATHODE 1 | A5 (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 8 nebo vyšší!
#include "SevSeg.h"
SevSeg sevseg;
byte numDigits = 8;
byte digitPins[] = {9, 10, 11, 12, A1, A2, A3, A4};
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, A0};
bool resistorsOnSegments = false;
byte hardwareConfig = COMMON_CATHODE;
bool updateWithDelays = true;
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 int deciSeconds = 0;
static byte deciPoint = 0;
if (millis() - timer >= 100) {
timer += 100;
deciSeconds++;
deciPoint++;
if (deciPoint == numDigits) {
deciPoint = 0;
}
if (deciSeconds == pow(10, numDigits)) {
deciSeconds = 0;
}
sevseg.setNumber(deciSeconds, deciPoint);
}
sevseg.refreshDisplay();
}