Deze tutorial biedt een complete gids voor het aansturen van LED-panelen met de SM1628 of SM1628B driver via een Arduino Uno. De handleiding is opgebouwd uit vijf kernstappen:
- Hardwarematige aansluiting: Instructies voor het verbinden van de DATA, Clock en Strobe pinnen met 1 kΩ weerstanden en het gebruik van een externe 5V-voeding.
- Initiële tests: Het gebruik van de
PanelDemo sketch om de basisfunctionaliteit te verifiëren.
- Paneelmapping: Een methode om met de
ManualMap sketch de specifieke segment- en kolomconfiguratie van een paneel te bepalen, aangezien deze per paneel kan verschillen.
- Technische werking: Uitleg over de driver-commando's (zoals modusselectie en helderheid) en de organisatie van het display-RAM.
- Besturing en effecten: Het implementeren van cijfers, tellers en visuele patronen via de
PanelShowcase sketch.
Daarnaast worden de benodigde componenten opgesomd en wordt er een optionele uitbreiding beschreven waarbij de driver wordt gebruikt om een Snake-spel te bouwen met een joystick en buzzer.
SM1628 en SM1628B — Arduino Driver Tutorial
SM1628 of SM1628B?
Beide varianten maken gebruik van dezelfde programmeerbenadering. De drie-draads interface, de displaycommando's en de RAM-layout van 14 bytes zijn identiek voor beide versies. Er is daarom geen aparte sketch of variantenselector nodig.
De belangrijkste hardwareverschillen zitten in de oscillator-aansluiting en de verbeterde bescherming van de B-variant. Let op: dezelfde driver betekent niet automatisch dezelfde bedrading van het paneel. Identificeer altijd eerst je connector en breng je display in kaart voordat je de referentietabel overneemt. Een verandering in de IC-suffix vereist geen nieuwe kaart, maar een ander paneel wel.
Overzicht van de tutorial
| Stap | Wat je leert | Resultaat |
| Introductie | SM1628 en SM1628B | Inzicht in variant-afhankelijkheden |
| 1. Aansluiten | Voeding, GND, DATA, CLK en STB | Paneel is verbonden met de Uno |
| 2. Eerste test | Uploaden van een voorbeeld en resultaat controleren | Cijfers tellen op de displayposities |
| 3. Mapping | Kolommen en individuele bits selecteren | Eigen digit-, segment- en symboolkaart |
| 4. Geheugen & Commando's | Native vs swapped bedrading, frameconstructie en verzending | Keuze van de juiste bytes |
| 5. Cijfers & Effecten | Tellen, carry-over, patronen en timing | Uitvoeren van display-demonstraties |
Let op: De referentiekaart in deze tutorial is gebaseerd op een DVD-paneel met zeven numerieke cijfers en drie symboolgroepen. Dit is een voorbeeld en geen universele configuratie.
1. Het paneel aansluiten
Voor een referentiepaneel van +5V sluit je de volgende verbindingen aan (zorg dat de stroom uitgeschakeld is):
| Arduino Uno / Voeding | Paneelverbinding | Opmerking |
| D7 (via 1 kΩ weerstand) | DATA (DA of D) | Signaalweerstand |
| D8 (via 1 kΩ weerstand) | Clock (CLK of C) | Signaalweerstand |
| D9 (via 1 kΩ weerstand) | Strobe (STB of S) | Signaalweerstand |
| GND | Panel GND en voeding GND | Gemeenschappelijke aarde |
| Geschikte +5V voeding | Panel +5V input | Externe voeding |
| Niet aangesloten | Infrared signal (IR of R) | Ongebruikt |
Belangrijke richtlijnen:
- Volg de labels op het paneel, niet de posities van de connectoren of de kleuren van de draden.
- Controleer altijd eerst de voedingsvereisten van een onbekend paneel.
- Een aparte voeding moet een gemeenschappelijke aarde (GND) delen met de Uno; verbind nooit twee onafhankelijke +5V-bronnen met elkaar.
- De 1 kΩ weerstanden zijn gebruikt in dit specifieke ontwerp en zijn geen universele level-converters.
In dit ontwerp wordt een externe +5V DC-voeding gebruikt met een condensator van 470 µF over de rails (positief naar +5V en negatief naar GND). De condensator is gespecificeerd op 35V; dit bepaalt niet de voedingsspanning.
Begin de tests met enkel het display aangesloten. De PanelDemo configureert D0–D13 als outputs; ManualMap herstelt D0 voor seriële input. Laat knoppen en andere randapparatuur losgekoppeld van de aangestuurde pinnen tijdens deze tests.
2. Cijfers uploaden en weergeven
Gebruik een Arduino Uno / ATmega328P op 16 MHz en de Arduino IDE. Er is geen externe Arduino-bibliotheek nodig. Download de repository en zorg dat de header-bestanden van elke sketch in dezelfde map staan als het .ino bestand.
Voor het referentiepaneel: open firmware/PanelDemo/PanelDemo.ino, selecteer de Uno en de juiste poort, en upload de code. Elk numeriek vakje telt van 0–9, beginnend aan de linkerkant. Elk cijfer is ongeveer 100 ms zichtbaar. Na de zeven posities wordt het display gewist en begint het proces opnieuw. Symboolgroepen blijven uit.
Mocht je een ander paneel hebben, gebruik dan eerst de diagnostiek in stap 3 voordat je het numerieke voorbeeld aanpast.
3. De kaart van je paneel bepalen
Upload firmware/ManualMap/ManualMap.ino. Open de Seriële Monitor op 9600 baud, met 'Newline' of 'Both NL & CR' geselecteerd.
Stuur de volgende commando's apart naar de monitor:
Stuur eerst column 0 7. Op het referentiepaneel licht hierdoor een '7' op in het meest linkse cijfervak. Gebruik vervolgens n om door de ruwe RAM-kolommen te gaan, of p om terug te gaan. Elk resultaat blijft verlicht zodat je het kunt noteren. Een reset of 'clear' annuleert de selectie.
De volgorde van de ruwe kolommen bevat ook symbolen en komt niet overeen met de volgorde van links naar rechts. Nadat je een kolom hebt geselecteerd, licht cijfer 8 alle zeven segmentrijen voor die kolom op.
Voor het referentiepaneel gebruiken de zeven numerieke posities de kolommen 0, 1, 7, 2, 3, 4, 5 (van links naar rechts). Volg de volledige mapping-procedure voordat je deze kaart kopieert naar een ander paneel.
4. Werking van de driver
Beide varianten gebruiken DATA, CLK en STB om commando's en display-bytes te ontvangen. De voorbeelden verzenden het minst significante bit eerst. De gebruikte commando's zijn:
| Byte | Doel |
0x03 | Selecteer native 7-cijfer / 10-segment modus |
0x40 | Selecteer RAM-schrijfacties met automatische adresincrement |
0xC0 | Begin met schrijven bij display RAM-adres 0x00 |
0x80 | Zet het display uit |
0x8F | Zet het display aan op de maximale helderheid |
De IC heeft veertien display-RAM-bytes. Bij het referentiepaneel heeft de fabrikant de rollen van cijfer- en segmentverbindingen omgewisseld (common-anode arrangement) om tien groepen van zeven lampjes te krijgen. Zeven groepen zijn numerieke cijfers en drie zijn symbolen. De driver gebruikt nog steeds de native 7×10 modus.
In deze getransponeerde kaart neemt elke segmentrij een paar bytes in beslag. Om bijvoorbeeld een '7' te tekenen in ruwe kolom 0, begin je met veertien nul-bytes en zet je bit 0 in bytes 0, 2 en 4 (de bovenste, rechtsboven en rechtsonder balken).
De sender schrijft bij elke update een volledig frame van veertien bytes. De geheugengids bevat de adrestabel, de code voor het bouwen van frames en de transactiesequentie.
5. Cijfers en effecten besturen
Upload firmware/PanelShowcase/PanelShowcase.ino. Open de Seriële Monitor op 115200 baud, met 'Newline' of 'Both' geselecteerd.
Stuur één commando per regel:
| Commando | Verwacht resultaat (referentiepaneel) |
digits | Een '8' veegt door de numerieke posities |
count | Alle numerieke posities tellen tegelijk van 0–9 |
value 9995, then carry | Telt omhoog via de carry naar 10000 |
bars | Bijbehorende segmentrijen lichten over de cijfers op |
all / blink | Houdt alle groepen aan / laat ze knipperen |
pace 250 | Zet de stapgrootte van effecten op 250 ms |
stop | Maakt het display leeg en annuleert het effect |
Benodigdheden
- Arduino Uno / ATmega328P op 16 MHz.
- Geschikt SM1628 of SM1628B paneel.
- Passende voeding voor het paneel.
- Drie 1 kΩ signaalweerstanden.
- Geen externe Arduino-bibliotheken vereist. (Node.js is alleen nodig voor geautomatiseerde ontwikkelaartests).
Overzicht van de sketches
| Sketch | Doel | Seriële Monitor |
PanelDemo | Klein numeriek voorbeeld; start hier voor het referentiepaneel | Niet vereist |
ManualMap | Inspecteren en in kaart brengen van een onbekend paneel | 9600 baud; Newline of Both |
PanelShowcase | Selecteren van cijfers, tellen, carry en effecten | 115200 baud; Newline of Both |
Technische opmerkingen: De gekozen Uno-pinnen zijn gewone GPIO; deze interface vereist geen hardware-SPI-pinnen. Deze voorbeelden schrijven naar het display-RAM; de key-scan leesfunctie en infrarooddecodering van de IC worden niet behandeld. De IR-pin van het paneel is ongebruikt.
Optionele toepassing: Snake
Zodra je het display kunt besturen, kun je het Snake-voorbeeld bouwen. Dit combineert de driver met een joystick, een START-knop en een actieve buzzer. De joystick-test en de game-sketch staan apart van het leerpad voor het display. PanelShowcase bevat ook een gescripte demonstratie van het spel.
De referentie-circuitgids bevat details over de externe voeding, polariteit van de condensator, joystick-weerstanden, het START-netwerk en de door transistor aangestuurde actieve buzzer, inclusief een aansluitschema.
SM1628 en SM1628B — Arduino Driver Tutorial
SM1628 of SM1628B?
Beide varianten maken gebruik van dezelfde programmeerbenadering. De drie-draads interface, de displaycommando's en de RAM-layout van 14 bytes zijn identiek voor beide versies. Er is daarom geen aparte sketch of variantenselector nodig.
De belangrijkste hardwareverschillen zitten in de oscillator-aansluiting en de verbeterde bescherming van de B-variant. Let op: dezelfde driver betekent niet automatisch dezelfde bedrading van het paneel. Identificeer altijd eerst je connector en breng je display in kaart voordat je de referentietabel overneemt. Een verandering in de IC-suffix vereist geen nieuwe kaart, maar een ander paneel wel.
Overzicht van de tutorial
| Stap | Wat je leert | Resultaat |
| Introductie | SM1628 en SM1628B | Inzicht in variant-afhankelijkheden |
| 1. Aansluiten | Voeding, GND, DATA, CLK en STB | Paneel is verbonden met de Uno |
| 2. Eerste test | Uploaden van een voorbeeld en resultaat controleren | Cijfers tellen op de displayposities |
| 3. Mapping | Kolommen en individuele bits selecteren | Eigen digit-, segment- en symboolkaart |
| 4. Geheugen & Commando's | Native vs swapped bedrading, frameconstructie en verzending | Keuze van de juiste bytes |
| 5. Cijfers & Effecten | Tellen, carry-over, patronen en timing | Uitvoeren van display-demonstraties |
Let op: De referentiekaart in deze tutorial is gebaseerd op een DVD-paneel met zeven numerieke cijfers en drie symboolgroepen. Dit is een voorbeeld en geen universele configuratie.
1. Het paneel aansluiten
Voor een referentiepaneel van +5V sluit je de volgende verbindingen aan (zorg dat de stroom uitgeschakeld is):
| Arduino Uno / Voeding | Paneelverbinding | Opmerking |
| D7 (via 1 kΩ weerstand) | DATA (DA of D) | Signaalweerstand |
| D8 (via 1 kΩ weerstand) | Clock (CLK of C) | Signaalweerstand |
| D9 (via 1 kΩ weerstand) | Strobe (STB of S) | Signaalweerstand |
| GND | Panel GND en voeding GND | Gemeenschappelijke aarde |
| Geschikte +5V voeding | Panel +5V input | Externe voeding |
| Niet aangesloten | Infrared signal (IR of R) | Ongebruikt |
Belangrijke richtlijnen:
- Volg de labels op het paneel, niet de posities van de connectoren of de kleuren van de draden.
- Controleer altijd eerst de voedingsvereisten van een onbekend paneel.
- Een aparte voeding moet een gemeenschappelijke aarde (GND) delen met de Uno; verbind nooit twee onafhankelijke +5V-bronnen met elkaar.
- De 1 kΩ weerstanden zijn gebruikt in dit specifieke ontwerp en zijn geen universele level-converters.
In dit ontwerp wordt een externe +5V DC-voeding gebruikt met een condensator van 470 µF over de rails (positief naar +5V en negatief naar GND). De condensator is gespecificeerd op 35V; dit bepaalt niet de voedingsspanning.
Begin de tests met enkel het display aangesloten. De PanelDemo configureert D0–D13 als outputs; ManualMap herstelt D0 voor seriële input. Laat knoppen en andere randapparatuur losgekoppeld van de aangestuurde pinnen tijdens deze tests.
2. Cijfers uploaden en weergeven
Gebruik een Arduino Uno / ATmega328P op 16 MHz en de Arduino IDE. Er is geen externe Arduino-bibliotheek nodig. Download de repository en zorg dat de header-bestanden van elke sketch in dezelfde map staan als het .ino bestand.
Voor het referentiepaneel: open firmware/PanelDemo/PanelDemo.ino, selecteer de Uno en de juiste poort, en upload de code. Elk numeriek vakje telt van 0–9, beginnend aan de linkerkant. Elk cijfer is ongeveer 100 ms zichtbaar. Na de zeven posities wordt het display gewist en begint het proces opnieuw. Symboolgroepen blijven uit.
Mocht je een ander paneel hebben, gebruik dan eerst de diagnostiek in stap 3 voordat je het numerieke voorbeeld aanpast.
3. De kaart van je paneel bepalen
Upload firmware/ManualMap/ManualMap.ino. Open de Seriële Monitor op 9600 baud, met 'Newline' of 'Both NL & CR' geselecteerd.
Stuur de volgende commando's apart naar de monitor:
Stuur eerst column 0 7. Op het referentiepaneel licht hierdoor een '7' op in het meest linkse cijfervak. Gebruik vervolgens n om door de ruwe RAM-kolommen te gaan, of p om terug te gaan. Elk resultaat blijft verlicht zodat je het kunt noteren. Een reset of 'clear' annuleert de selectie.
De volgorde van de ruwe kolommen bevat ook symbolen en komt niet overeen met de volgorde van links naar rechts. Nadat je een kolom hebt geselecteerd, licht cijfer 8 alle zeven segmentrijen voor die kolom op.
Voor het referentiepaneel gebruiken de zeven numerieke posities de kolommen 0, 1, 7, 2, 3, 4, 5 (van links naar rechts). Volg de volledige mapping-procedure voordat je deze kaart kopieert naar een ander paneel.
4. Werking van de driver
Beide varianten gebruiken DATA, CLK en STB om commando's en display-bytes te ontvangen. De voorbeelden verzenden het minst significante bit eerst. De gebruikte commando's zijn:
| Byte | Doel |
0x03 | Selecteer native 7-cijfer / 10-segment modus |
0x40 | Selecteer RAM-schrijfacties met automatische adresincrement |
0xC0 | Begin met schrijven bij display RAM-adres 0x00 |
0x80 | Zet het display uit |
0x8F | Zet het display aan op de maximale helderheid |
De IC heeft veertien display-RAM-bytes. Bij het referentiepaneel heeft de fabrikant de rollen van cijfer- en segmentverbindingen omgewisseld (common-anode arrangement) om tien groepen van zeven lampjes te krijgen. Zeven groepen zijn numerieke cijfers en drie zijn symbolen. De driver gebruikt nog steeds de native 7×10 modus.
In deze getransponeerde kaart neemt elke segmentrij een paar bytes in beslag. Om bijvoorbeeld een '7' te tekenen in ruwe kolom 0, begin je met veertien nul-bytes en zet je bit 0 in bytes 0, 2 en 4 (de bovenste, rechtsboven en rechtsonder balken).
De sender schrijft bij elke update een volledig frame van veertien bytes. De geheugengids bevat de adrestabel, de code voor het bouwen van frames en de transactiesequentie.
5. Cijfers en effecten besturen
Upload firmware/PanelShowcase/PanelShowcase.ino. Open de Seriële Monitor op 115200 baud, met 'Newline' of 'Both' geselecteerd.
Stuur één commando per regel:
| Commando | Verwacht resultaat (referentiepaneel) |
digits | Een '8' veegt door de numerieke posities |
count | Alle numerieke posities tellen tegelijk van 0–9 |
value 9995, then carry | Telt omhoog via de carry naar 10000 |
bars | Bijbehorende segmentrijen lichten over de cijfers op |
all / blink | Houdt alle groepen aan / laat ze knipperen |
pace 250 | Zet de stapgrootte van effecten op 250 ms |
stop | Maakt het display leeg en annuleert het effect |
Benodigdheden
- Arduino Uno / ATmega328P op 16 MHz.
- Geschikt SM1628 of SM1628B paneel.
- Passende voeding voor het paneel.
- Drie 1 kΩ signaalweerstanden.
- Geen externe Arduino-bibliotheken vereist. (Node.js is alleen nodig voor geautomatiseerde ontwikkelaartests).
Overzicht van de sketches
| Sketch | Doel | Seriële Monitor |
PanelDemo | Klein numeriek voorbeeld; start hier voor het referentiepaneel | Niet vereist |
ManualMap | Inspecteren en in kaart brengen van een onbekend paneel | 9600 baud; Newline of Both |
PanelShowcase | Selecteren van cijfers, tellen, carry en effecten | 115200 baud; Newline of Both |
Technische opmerkingen: De gekozen Uno-pinnen zijn gewone GPIO; deze interface vereist geen hardware-SPI-pinnen. Deze voorbeelden schrijven naar het display-RAM; de key-scan leesfunctie en infrarooddecodering van de IC worden niet behandeld. De IR-pin van het paneel is ongebruikt.
Optionele toepassing: Snake
Zodra je het display kunt besturen, kun je het Snake-voorbeeld bouwen. Dit combineert de driver met een joystick, een START-knop en een actieve buzzer. De joystick-test en de game-sketch staan apart van het leerpad voor het display. PanelShowcase bevat ook een gescripte demonstratie van het spel.
De referentie-circuitgids bevat details over de externe voeding, polariteit van de condensator, joystick-weerstanden, het START-netwerk en de door transistor aangestuurde actieve buzzer, inclusief een aansluitschema.