Připojení k Arduinu
Pin HDSP-2012 | Název pinu HDSP-2012 | Pin Arduino |
---|
1 | C1 | 12 |
2 | C2 | 11 |
3 | C3 | 10 |
4 | C4 | 9 |
5 | C5 | 8 |
6 | – | – |
7 | Data OUT | – |
8 | Vb | – |
9 | Vcc | +5V |
10 | CLK | 6 |
11 | GND | GND |
12 | Data IN | 7 |
Zdrojový kód pro Arduino
const byte ascii_5x7[] = {
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF2, 0x00, 0x00,// !
0x00, 0xE0, 0x00, 0xE0, 0x00,// "
0x28, 0xFE, 0x28, 0xFE, 0x28,// #
0x24, 0x54, 0xFE, 0x54, 0x48,// $
0xC4, 0xC8, 0x10, 0x26, 0x46,// %
0x6C, 0x92, 0xAA, 0x44, 0x0A,// &
0x00, 0xA0, 0xC0, 0x00, 0x00,// 39
0x00, 0x38, 0x44, 0x82, 0x00,// 40
0x00, 0x82, 0x44, 0x38, 0x00,// 41
0x28, 0x10, 0x7C, 0x10, 0x28,// *
0x10, 0x10, 0x7C, 0x10, 0x10,
0x00, 0x0A, 0x0C, 0x00, 0x00,
0x10, 0x10, 0x10, 0x10, 0x10,
0x00, 0x06, 0x06, 0x00, 0x00,
0x04, 0x08, 0x10, 0x20, 0x40,
0x7C, 0x8A, 0x92, 0xA2, 0x7C,//48 0
0x00, 0x42, 0xFE, 0x02, 0x00,//49 1
0x42, 0x86, 0x8A, 0x92, 0x62,//50 2
0x84, 0x82, 0xA2, 0xD2, 0x8C,
0x18, 0x28, 0x48, 0xFE, 0x08,
0xE4, 0xA2, 0xA2, 0xA2, 0x9C,
0x3C, 0x52, 0x92, 0x92, 0x0C,
0x80, 0x8E, 0x90, 0xA0, 0xC0,
0x6C, 0x92, 0x92, 0x92, 0x6C,
0x60, 0x92, 0x92, 0x94, 0x78,
0x00, 0x6C, 0x6C, 0x00, 0x00,
0x00, 0x6A, 0x6C, 0x00, 0x00,
0x10, 0x28, 0x44, 0x82, 0x00,
0x28, 0x28, 0x28, 0x28, 0x28,
0x00, 0x82, 0x44, 0x28, 0x10,
0x40, 0x80, 0x8A, 0x90, 0x60,
0x4C, 0x92, 0x9E, 0x82, 0x7C,
0x7E, 0x88, 0x88, 0x88, 0x7E,//65 A
0xFE, 0x92, 0x92, 0x92, 0x6C,
0x7C, 0x82, 0x82, 0x82, 0x44,
0xFE, 0x82, 0x82, 0x44, 0x38,
0xFE, 0x92, 0x92, 0x92, 0x82,
0xFE, 0x90, 0x90, 0x90, 0x80,// 70
0x7C, 0x82, 0x92, 0x92, 0x5E,
0xFE, 0x10, 0x10, 0x10, 0xFE,
0x00, 0x82, 0xFE, 0x82, 0x00,
0x04, 0x02, 0x82, 0xFC, 0x80,
0xFE, 0x10, 0x28, 0x44, 0x82,
0xFE, 0x02, 0x02, 0x02, 0x02,
0xFE, 0x40, 0x30, 0x40, 0xFE,
0xFE, 0x20, 0x10, 0x08, 0xFE,
0x7C, 0x82, 0x82, 0x82, 0x7C,
0xFE, 0x90, 0x90, 0x90, 0x60,// P
0x7C, 0x82, 0x8A, 0x84, 0x7A,
0xFE, 0x90, 0x98, 0x94, 0x62,
0x62, 0x92, 0x92, 0x92, 0x8C,
0x80, 0x80, 0xFE, 0x80, 0x80,
0xFC, 0x02, 0x02, 0x02, 0xFC,
0xF8, 0x04, 0x02, 0x04, 0xF8,
0xFC, 0x02, 0x0C, 0x02, 0xFC,
0xC6, 0x28, 0x10, 0x28, 0xC6,
0xE0, 0x10, 0x0E, 0x10, 0xE0,
0x86, 0x8A, 0x92, 0xA2, 0xC2,
0x00, 0xFE, 0x82, 0x82, 0x00,
0x40, 0x20, 0x10, 0x08, 0x04,
0x00, 0x82, 0x82, 0xFE, 0x00,
0x20, 0x40, 0x80, 0x40, 0x20,
0x02, 0x02, 0x02, 0x02, 0x02,
0x00, 0x80, 0x40, 0x20, 0x00,
0x04, 0x2A, 0x2A, 0x2A, 0x1E,
0xFE, 0x12, 0x12, 0x12, 0x0C,
0x1C, 0x22, 0x22, 0x22, 0x22,
0x0C, 0x12, 0x12, 0x12, 0xFE,// 100 d
0x1C, 0x2A, 0x2A, 0x2A, 0x1A,// 101 e
0x00, 0x10, 0x7E, 0x90, 0x40,
0x12, 0x2A, 0x2A, 0x2A, 0x3C,
0xFE, 0x10, 0x10, 0x10, 0x0E,
0x00, 0x00, 0x5E, 0x00, 0x00,
0x04, 0x02, 0x02, 0xBC, 0x00,
0x00, 0xFE, 0x08, 0x14, 0x22,
0x00, 0x82, 0xFE, 0x02, 0x00,
0x3E, 0x20, 0x1C, 0x20, 0x3E,
0x3E, 0x10, 0x20, 0x20, 0x1E,
0x1C, 0x22, 0x22, 0x22, 0x1C,
0x3E, 0x28, 0x28, 0x28, 0x10,
0x10, 0x28, 0x28, 0x28, 0x3E,
0x3E, 0x10, 0x20, 0x20, 0x10,
0x12, 0x2A, 0x2A, 0x2A, 0x24,
0x20, 0x20, 0xFC, 0x22, 0x24,
0x3C, 0x02, 0x02, 0x02, 0x3C,
0x38, 0x04, 0x02, 0x04, 0x38,
0x3C, 0x02, 0x0C, 0x02, 0x3C,// x
0x22, 0x14, 0x08, 0x14, 0x22,// y
0x20, 0x12, 0x0C, 0x10, 0x20,// z
0x22, 0x26, 0x2A, 0x32, 0x22,//123 {
0x00, 0x10, 0x6C, 0x82, 0x82,//124 |
0x00, 0x00, 0xEE, 0x00, 0x00,//125 }
0x82, 0x82, 0x6C, 0x10, 0x00,
0x20, 0x40, 0x40, 0x40, 0x80,
};
int column[] = {12, 11, 10, 9, 8};
int data = 7;
int clock = 6;
int brightness = 3000;
const int cntDisplays = 1;
int txtData[cntDisplays * 4 * 5]; // this is the array that store's what on the displays. 4 digits per display and 5 columns per digit.
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(column[i], OUTPUT);
}
for (int i = 0; i < 5; i++) {
digitalWrite(column[i], LOW);
}
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
digitalWrite(data, LOW);
digitalWrite(clock, HIGH);
}
void loop() {
char PROGMEM scroll[] = "*** HDSP-2012 (Hewlett Packard) DEMO *** MORE DISPLAYS ON CTVRTKY.INFO/SBIRKA-DISPLEJU-LED ";
scrollText(scroll, 30);
}
void writeDigit(int position, int ascii) {
for (int i = 0; i < 5; i++) {
txtData[(cntDisplays * 4 - position) * 5 + i] = ascii_5x7[ascii * 5 + i];
}
}
void scrollText(String txt, long howSlow) {
int leng = txt.length();
for (int u = -cntDisplays * 4; u < leng; u++) {
for (int v = 0; v < cntDisplays * 4; v++) {
if (( (u + v) >= 0 ) && ((u + v) < leng)) {
char oneChar = txt.charAt(u + v);
writeDigit(v + 1, oneChar);
}
else {
writeDigit(v + 1, 32);
}
}
for (long teller = 0; teller < howSlow; teller++) {
draw();
}
}
}
void writeText(String txtShow) {
int tl = txtShow.length();
int spacesNeeded = 4 * cntDisplays - tl;
if (spacesNeeded < 0) {
tl = 4 * cntDisplays;
}
else {
for (int u = 0; u < spacesNeeded; u++) {
txtShow.concat(" ");
}
tl = 4 * cntDisplays;
}
char txtShow_[tl];
for (int vv = 0; vv < tl; vv++) {
char tt = txtShow.charAt(tl - vv - 1);
for (int i = 0; i < 5; i++) {
}
}
}
void draw() {
for (int columnDisp = 0; columnDisp < 5; columnDisp++) {
for (int displayNr = 0; displayNr < cntDisplays; displayNr++) {
for (int digitNr = 0; digitNr < 4; digitNr++) {
for (int diodeNr = 0; diodeNr < 7; diodeNr++) {
digitalWrite(clock, HIGH);
digitalWrite(data, txtData[columnDisp + 5 * (displayNr * 4 + digitNr) ] & (2 << diodeNr));
digitalWrite(clock, LOW);
}
}
}
digitalWrite(column[columnDisp], HIGH);
delayMicroseconds(brightness);
digitalWrite(column[columnDisp], LOW);
}
}
Demo video