Informace k displeji: https://www.sbprojects.net/knowledge/footprints/sda5708/index.php
Připojení k Arduinu
Pin SDA5708-24D | Název pinu SDA5708-24D | Pin Arduino |
---|---|---|
1 | Vcc | 5V |
2 | LOAD | D2 |
3 | DATA | D3 |
4 | SDCLK | D4 |
5 | RESET | D5 |
6 | GND | GND |
Zdrojový kód pro Arduino
// original sketch niq_ro: http://arduinotehniq.blogspot.com/ #include "font.h" int wait = 0; const int LOAD = 2; const int DATA = 3; const int SDCLK = 4; const int RESET = 5; char msg[] = " SDA-5708 DEMO"; void setup() { pinMode(DATA, OUTPUT); pinMode(LOAD, OUTPUT); pinMode(SDCLK, OUTPUT); pinMode(RESET, OUTPUT); init_SDA5708(); brightness_SDA5708(0); //(0 = MAX, 7 = OFF) } void loop() { for (byte i = 0; i < (sizeof(msg) / sizeof(char)); i++) { for (byte j = 0; j < 8; j++) { if (i + j < (sizeof(msg) / sizeof(char))) { digit_to_SDA5708(msg[i + j], j ); } else { digit_to_SDA5708(" ", j ); } } delay(300); } } void init_SDA5708(void) { digitalWrite(LOAD, HIGH); digitalWrite(RESET, LOW); digitalWrite(RESET, HIGH); } void digit_to_SDA5708(uint8_t sign, uint8_t digit) { uint8_t i; if ((sign < 0x20) || (sign > 0x7b)) sign = 0x20; if (digit > 7) digit = 0; send_byte_to_SDA5708(0b10100000 | digit); for (i = 0; i < 7; i++) { send_byte_to_SDA5708(pgm_read_byte(&font[(sign - 0x20) * 7 + i]) / 8); } } void send_byte_to_SDA5708(uint8_t byte) { uint8_t x; digitalWrite(LOAD, LOW); for (x = 0; x <= 7; x++) { if ((byte >> x) & 1) { digitalWrite(DATA, HIGH); } else { digitalWrite(DATA, LOW); } digitalWrite(SDCLK, HIGH); digitalWrite(SDCLK, LOW); } digitalWrite(LOAD, HIGH); } void brightness_SDA5708(uint8_t val) { send_byte_to_SDA5708(0b11100000 | (val & 0b00000111)); }