Arduino Projekten

Tue 20-Aug-19
01:33:59




RGB Matrix Paneel 16x32

Datum: Tue 07 January 2014
Samenvatting: RGB Matrix paneel, 512 LED's op 1 paneel.


Volgens de site van Ada Fruit kan je met zo'n paneel een stukje Jumbo-Tron in huis halen. Wat is een Jumbo Tron? Dat is dat grote scherm, dat in New York op de Times Square aan de puntige buitengevel van een wolkenkrabber hangt.

In december 2013 kostte een paneel $40,00, dat kwam toen overeen met zo'n Eu30,00. Daar komen dan nog transport kosten (vanuit New York) bij. Er is wel een opmerking, de panelen komen uit rest-partijen van video-wall fabrieken. Er is dus wat variatie in uitvoering.

Het paneel zelf meet maar 96 x 192mm^2 (=3.78 x 7.56inch^2). Het bevat 16x32 RGB-LED's, bij elkaar 512 stuks. Elk wit stipje is een LED.

Naast panelen van 16x32 LED's bestaan er ook panelen van 32x32 LED's. Dubbel zo groot en vierkant.

Het paneel

Er is een engelstalige beschrijving van het paneel. Deze beschrijft zowel de 16x32 als de 32x32 paneel.

Elk paneel heeft een voedingsconnector, op de foto de witte molex connector. Er zijn ook panelen met een schroefverbinding voor de benodigde stroom. Het paneel verbruikt maximaal 2 Ampere, tenminste als alle LED's wit branden. Bij enkele panelen is een PC-voeding erg geschikt. Zij zijn betrouwbaar, lekker kompakt en leveren veel stroom. Bij veel panelen moet er een andere manier van voeden worden gevonden.

Op de achterzijde zit links een ingangsconnector en rechts een uitgangsconnector om meer panelen (elektrisch) aan elkaar te koppelen.

Op de 2 panelen die ik heb, de [LEDSUN PH6-HX], zijn enkele standaard IC-nummers, maar ook een aantal onbekende nummers, hoewel deze wel bekende functies hebben:

  • 2 * SM74HC245D (8 bits Bi Directional Tri State Buffer) [U1 U2];
  • 2 * SM74HC138D (3=>8 Decoder/ Demultiplexer) [U3 U4];
  • 12 * SM16126ES (Schuifregisters met 16 uitgangen en Latches) [GU1 RU1 BU1 / GU2 RU2 BU2 / GU3 RU3 BU3 / GU4 RU4 BU4];
  • 8 * 4953K / 386985 (Buffer IC's, een rij LED's verbruikt nogal wat stroom) [Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8];
  • 16 * SMD Weerstand Arrays (390Ohm) [RP3 RP4 RP5 RP6 RP7 RP8 RP9 RP10 RP11 RP12 RP13 RP14 RP15 RP16 RP17 RP18]
  • 8 * SMD weerstanden (866Ohm) [GR1 RR1 / GR2 RR2 / GR3 RR3 / GR4 RR4]
  • 4 * SMD weerstanden (1k5Ohm) [BR1 / BR2 / BR3 / BR4]
  • 19 *SMD Condensators (onbekend, wellicht de standaard waarde van 100nF(?)) [C3 / C4 C5 C6 / C7 C8 C9 / C10 C11 C12 / C13 C14 C15 / C16 C17 C18 C19 C20 C21]
  • 2 * SMD Elko's (22uF) [C1 C2]

Componenten tellen en logisch redeneren is hierbij de truuk.

De ingangsconnector

De volgende signalen zijn er op de ingangsconnector:

Aansluitingen 16x32 RGB Matrix Paneel
R1 Rood 1 = Boven Helft Arduino Pin D2 G1 Groen 1 = Boven Helft Arduino Pin D3
B1 Blauw 1 = Boven Helft Arduino Pin D4 GNDGround = 0V Arduino Pin 0V
R2 Rood 2 = Onder Helft Arduino Pin D5 G2 Groen 2 = Onder Helft Arduino Pin D6
B2 Blauw 2 = Onder Helft Arduino Pin D7 GNDGround = 0V Arduino Pin 0V
A Select A = Regel (A0) Arduino Pin A0 B Select B = Regel (A1) Arduino Pin A1
C Select C = Regel (A2) Arduino Pin A2 NC gnd = NotConnectedArduino Pin 0V
CLKClock = Doorschuif Arduino Pin D8 STBStoreBuf = DoorBufferenArduino Pin A3
OE OutEnable Arduino Pin D9 GNDGround = 0V Arduino Pin 0V

  • Het blijkt dat een paneel in twee helften is verdeeld, boven en onder. Dit blijkt dat de kleuren RGB in tweevoud is uitgevoerd [R1 G1 B1 / R2 G2 B2].
  • Elke helft heeft 8 regels. Dit blijkt uit de SM74HC138 en de 3 select-aansluitingen [A B C]. Met 3 signalen zijn 2^3 = 8 verschillende regels te selecteren.
  • Elke regel heeft 32 LED's, hiervoor worden 2 schuifregisters gebruikt (met elk 16 uitgangen) [CLK]. Deze schuifregisters zijn aan elkaar gekoppeld. Alles wat het eerste schifregister uitschuift, schuift het tweede register weer in. Alles wat dit tweede register uitschuift, is beschikbaar op de uitgangsconnector, klaar om het volgende paneel ingeschoven te worden.
  • Er dient dus 1 hele rij met data in het paneel geschoven te worden. [CLK] Wanneer een hele rij met LED-data klaar staat, moet deze naar de buffer worden doorgeschoven. Deze buffer is ingebouwd in het schuifregister [LAT].
  • Elke regel heeft 3 kleuren, RGB, er zijn 3 duo's met schuifregisters.
  • Er is een Output Enable signaal om een paneel aan en uit te zetten. Hiermee is het zogenaamde "Ghosting" te voorkomen, of te wel, de data van een regel is niet op een andere regel zichtbaar [OE].

Hoe aan te sturen?

Theoretisch moet er dus het volgende gebeuren.

  • Kies eerst de regel die je wilt versturen [A B C]. Dit aktiveren gaat later.
  • Stuur dan van deze regel eerst alle data in de schuifregisters. Inclusief de aparte kleuren [R G B] [CLK]. Er zijn twee helften, dus dit kan met twee aansturingen tegelijk.
  • Deaktiveer de OE om de LED's uit te zetten (om "ghosting" te voorkomen) [OE].
  • Aktiveer de regel [A B C].
  • Stuur de data door naar de buffer [LAT].
  • Aktiveer de OE om de LED's weer aan te zetten [OE].
  • Neem de volgende regel
  • Na de achtste regel, komt de eerste weer aan de beurt.

Dit betekent wel dat de data steeds herhaaldelijk naar het paneel moet worden gestuurd. Elke keer weer. Ook moet de data van de LED's worden onthouden. Een truuk uit de oude home-computers is, dat daar een stuk geheugen voor wordt gebruikt. Bij de Arduino zou dit een groot array van bits kunnen zijn.

De ene kant prepareert de data en vult het array op de juiste wijze. De andere kant haalt de data uit het array en stuurt het zeer snel naar het paneel.

Helderheid.

De LED's kunnen alleen aan of uit worden gezet. Meer smaken hebben de schuifregisters op hun uitgangen niet. Helderheidsturing, zoals Pulse Width Modulation (PWM) (in goed nederlands: Puls Breedte Modulatie) is niet ingebouwd in de panelen. Dus standaard zijn er maar 8 kleuren mogelijk, namelijk alle combinaties die met RGB te maken zijn wanneer deze alleen maar aan of uit kan wezen. Voor meer kleuren moet de helderheid van de afzonderlijke RGB-componenten worden gevarieerd.

Dit zal men zelf moeten doen. En kan door een kleur [R G B] eerst aan te zetten en bij een volgende raster (dat de data weer naar het paneel wordt gestuurd) weer uit. Hoe meer rasters een LED-kleur dan aan is, hoe helder de betreffende kleur zal worden. Een soort PWM.

Let wel, dit "rasters sturen" (verversen van het beeld) moet ook regelmatig gebeuren. Anders zijn er helderheidsverschillen te zien. Hiervoor kan een interupt worden gebruikt.

In plaats van PWM blijkt er een andere methode te zijn, één die interessanter is, Binaire Code Modulatie (BCM) genaamd. Dit schijnt eenvoudiger te implementeren te zijn en levert een meer-constant gebruik van de Arduino op, althans wat aansturen van de panelen betreft.

Hoe is het met de snelheid?

Bij de (oude beeldbuis) TV, moet het beeld ververst worden met een acceptabele snelheid, anders zijn er losse strepen te zien. Bij de (Nederlandse PAL) TV zijn dit 25 beelden per seconde. Ook bij deze TV wordt een beeld opgebouwd uit regels, die elk 1/15625 seconde in beslag neemt, oftewel er worden 15625 regels beschreven in 1 seconde. Een regel bestaat uit beeldpunten, waarvan er bijna 4.433.619 in een seconde worden beschreven. Hieruit is een maat te halen voor een minimaal benodigde frequentie om ook het LED paneel te verversen. Zo moet het ook bij dit paneel gebeuren.

Er is ook een soort vegelijking met bioscoop films (24 beelden per seconde). Maar film heeft geen last van regels en punten die ververst moeten worden.

Het paneel zelf ontworpen gebouwd om aangestuurd te worden door een 100MHz FPGA (of andere hoge snelheids processor) met 250-pennen. Experimenten wijzen uit dat dat deze maximale frequency ergens tussen 40MHz en 50MHz ligt.

De Arduino werkt op 16MHz. Er is een bibliotheek geschreven om een paneel aan te sturen. Daarmee kan men 4096 verschillende kleuren naar het paneel sturen, zonder noemenswaardige "storingen". 4096 (=2^12) kleuren is 16 (=2^4) tinten rood, 16 tinten groen en 16 tinten blauw.

Deze bibliotheek neemt 20% processor tijd in beslag. Hierbij zijn alle aansluitingen op de Arduino-print hard gecodeerd om een zo hoog mogelijke snelheid te kunnen halen, want de verversing-frequentie blijft de bottle-neck.


Broncode: [1: Info van "Noveled Group Co Ltd", een (Chinese) fabrikant.]

1: De broncode van Info van "Noveled Group Co Ltd", een (Chinese) fabrikant.

(Wed 08 January 2014) Hoewel zij complete beelddisplays verkopen, is duidelijk dat zij hiervoor deze RGB panelen gebruiken. De afmetingen kloppen gewoon met wat ik opmeet.

Deze broncode heeft 53 regels met programma-code.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
LED Display (pH 6 mm indoor fullcolor LED display)


                Basic Info.
-------------------------------------------------------------------------------------------------------------------
Model NO.:      P6 RGB indoor led display
Guarantee:      1 Year With Parts
Export Markets: North America, South America, Eastern Europe, Southeast Asia, Mid East, Eastern Asia


                     Additional Info.
-------------------------------------------------------------------------------------------------------------------
Trademark:           NVD
Packing:             Wooden Box
Standard:            192mm X 96mm
Origin:              Made-In-China
HS Code:             85312000
Production Capacity: 3000m^2/ month


        Display and Control Feature            |                     Structure Feature
Specification            Parameter             | Specification                  Parameter
-------------------------------------------------------------------------------------------------------------------
Pixel Pitch              6mm                   | Module size                    192mm*96mm
Pixel composing          1R1G1B                | Display resolution/module      32 dots*16 dots
Wavelength (R)           6255                 | Standard cabinet size          960 mm*768mm
Wavelength (G)           5223                 | Weight per m^2                 45 kg/m^2
Wavelength (B)           5673                 | Protection classification      ---
Wave Angle (H)           140(H)/140(V)       | Install mode                   Wallmount, hung and stand structure
Led package              SMD 0603              | SMD Type                       SMD 1in1 & SMD 3in1
Density                  27,777                |
Display color            256*256*256           |                       Working Power
Whiteness brightness     >=1400cd              | Specification                  Parameter
Brightness level         128 grade             |-------------------------------------------------------------------
Changing frame frequency 60 Hz                 | Working voltage                AC 220V/ 380V10% 47 .. 64Hz
Refresh                  400 Hz                | Max power/m^2                  1100W/m^2
Driving method           Constant driving 1/8  | Average power/m^2              750W/m^2
Control mode             synchronous           | Short circuit protection       Yes
Display port             DVI                   |
Display mode             1024*768 1024*1024    |                     Working Environment
Out of control           1/10,000 ( scattered) | Specification                  Parameter
lifetime                 100,000 hours         |-------------------------------------------------------------------
                                               | Environment                    Indoor
                                               | Working temperature            -5 .. 50C
                                               | Working Humidity               10 .. 90%

                 Contact Details
-------------------------------------------------------------------------------------------------------------------
Company Name:    Noveled Group Co., Ltd.
Company Address: F5, Xinyongfeng Industrial Zone, No 9, Street 1, Yuanling, Shiyan, Bao an District, Shenzhen
City/Town:       Shenzhen
Province/State:  Guangdong
Country/Region:  China


Broncode: [1: Info van "Noveled Group Co Ltd", een (Chinese) fabrikant.] 

Afbeeldingen

rgbmatrix_basis_1.jpg
1/5: rgbmatrix_basis_1.jpg.
rgbmatrix_basis_2.jpg
2/5: rgbmatrix_basis_2.jpg.
rgbmatrix_basis_3.jpg
3/5: rgbmatrix_basis_3.jpg.
rgbmatrix_basis_4.jpg
4/5: rgbmatrix_basis_4.jpg.
rgbmatrix_basis_5.jpg
5/5: rgbmatrix_basis_5.jpg.

De aansluitingen van Basis aansluitingen.

De basis-aansluitingen van de Arduino Library

Arduino Uno

Pwr USB ?
 
?
aref
gnd Gnd's (4x)
? d13
ioreff d12
reset d11
+3.3v d10
+5v d9 Oe
Gnd's (4x) gnd d8 Clk
Gnd's (4x) gnd
Vin d7 B2
d6 G2
A     (A0) a0 d5 R2
B     (A1) a1 d4 B1
C     (A2) a2 d3 G1
Stb a3 d2 R1
a4 d1
a5 d0