Lichtkrant Surtronic FDS-132

Hardware die niet past in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 16 Apr 2013, 21:02

muffin schreef: spi of gewoon?


Via SPI, zelfde basis sketch als op Circuits Online (en door jou) gebruikt.
Heb wat met timing gespeeld. Ghosting is merkbaar zodra de rijen sneller dan 150ms worden ververst.
Was met de Uno, daarna ook eens met de Leonardo aangestuurd (SCK en MOSI vanaf de ICSP header), zelfde resultaat.

Denk dat het te maken heeft met RESRED signaal. Wanneer RESRED laag is (hardwarematig aan GND gelegd) dooft de display zoals verwacht (=Output Enable van de 74HC4094 shiftregisters) maar wanneer RESRED aangesloten is op Arduino pin 9 en die pin LOW wordt gebracht dan blijven de leds aan i.p.v. te doven. Nog nader te bekijken dus.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Advertisement

Berichten: 33
Geregistreerd: 22 Dec 2012, 19:07

Re: Lichtkrant Surtronic FDS-132

Berichtdoor muffin » 17 Apr 2013, 21:36

Als ge OE (resred) aan nul legt en alle leds zijn uit is het FDS132 bord ok. Verder zoeken op de uno dus.
Dan gaat die pin niet echt naar nul denk ik. Eerst in 't program eens low zetten en dan eens meten zou een en ander kunnen verklaren.
Ook goed checken dat ge de juiste pinnen gebruikt bij SPI, ik heb die fout ook gemaakt. Bij mij werkt het via spi op mijn uno en mega2560.

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 18 Apr 2013, 22:01

Alle aansluitingen zijn correct en ik kan tekst tonen naar wens dus wat aansluitingen betreft is alles wel zoals het hoort.
Heb de basis sketch uitgepluist, enkele overtolligheden verwijderd en beter gedocumenteerd opdat ik ieder statement en de werking ervan volledig begrijp.

Code: Alles selecteren
/* NOODZAKELIJKE PINNEN TE VERBINDEN MET EEN ARDUINO UNO OF EEN MEGA: We maken gebruik van SPI, dus speciale pinnen!!!
1 = Clock (CLK) (Arduino pin uno 13 of mega 52 = SPI Clock)
2 = Data (DR) (Arduino pin uno 11 of mega 51 = SPI MOSI)
3 = Strobe (Arduino pin 10)
4 = Massa (Arduino GND pin)
5 = A (= ROW A) (Arduino pin 5)
6 = B (= ROW B) (Arduino pin 6)
7 = C (= ROW C) (Arduino pin 7)
8 = RESRED (OE) (Arduino pin 9)
*/

#include <SPI.h>

const int strobe = 10;
const int resred = 9;
const int row_a  = 5;
const int row_b  = 6;
const int row_c  = 7;
 
unsigned char character_map[7][7] = {           // [7] karakters (A,R,D,U,I,N,O)
0x0E,0x11,0x11,0x1F,0x11,0x11,0x11, //A
0x0F,0x11,0x11,0x0F,0x05,0x09,0x11, //R
0x07,0x09,0x11,0x11,0x11,0x11,0x0F, //D
0x11,0x11,0x11,0x11,0x11,0x11,0x0E, //U
0x1F,0x04,0x04,0x04,0x04,0x04,0x1F, //I
0x11,0x13,0x15,0x19,0x11,0x11,0x11, //N
0x0E,0x11,0x11,0x11,0x11,0x11,0x0E, //O
};
 
 
void setup()
{
  pinMode (strobe, OUTPUT);
  pinMode (resred, OUTPUT);
  pinMode (row_c,  OUTPUT);
  pinMode (row_b,  OUTPUT);
  pinMode (row_a,  OUTPUT);

  digitalWrite (row_a, LOW);
  digitalWrite (row_b, LOW);
  digitalWrite (row_c, LOW);
 
  digitalWrite (strobe, HIGH);
  digitalWrite (resred, HIGH);
 
  SPI.setBitOrder(MSBFIRST); // LSBFIRST geeft spiegelbeeld
  SPI.begin();
};

 
void loop()
{
  while (1)
  {
    for (int p=0; p<7; p++)
    {
     
      digitalWrite (resred, LOW);  // resred = OE (Output Enable) op 74HC4096. LOW = display uit
      digitalWrite (strobe, LOW);
      setRow(p);                   // ga de zeven rijen af
      zeroDisp();                  // alle LEDs uit
      setDisp(p);                  // zet per rij de LEDs aan overeenkomstig de te tonen karakters
      digitalWrite (resred, HIGH);
      digitalWrite (strobe, HIGH);
      delayMicroseconds (2100);    // geeft minste flikkering, experimenteel bepaald
    }
  }
}

 
void setRow (int row)
{
  digitalWrite (row_a, row & 1);           //  & bitwise AND. Met drie pinnen kunnen 8 rijen
  digitalWrite (row_b, row & 2);           //  worden aangestuurd maar hier gebruiken we er zeven
  digitalWrite (row_c, row & 4);           //  (row nul t/m row zes) want iedere matrix heeft 7 rijen

}


void zeroDisp() // alles wissen op display
{
  for(int i=0; i<34; i++)     // er zijn 34 shiftregisters 74HC4096
  {
    SPI.transfer(0x00);       // zend 1 byte (waarde 0) over de SPI bus, 34 keer
  }
}

 
void setDisp(int row) // te plaatsen text
{

  SPI.transfer(character_map[6][row]<<1);  // 'O'     << bitwise LEFT shift
  SPI.transfer(character_map[5][row]<<1);  // 'N'     komt overeen met vermenigvuldigen met 2
  SPI.transfer(character_map[4][row]<<1);  // 'I'     
  SPI.transfer(character_map[3][row]<<1);  // 'U'
  SPI.transfer(character_map[2][row]<<1);  // 'D'
  SPI.transfer(character_map[1][row]<<1);  // 'R'
  SPI.transfer(character_map[0][row]<<1);  // 'A'
}


Het FDS132 bord gebruikt 5x7 LED matrixes (vijf kolommen, zeven rijen). Er zijn 7 rijen die van boven naar beneden worden aangestuurd (met void setRow).
Wanneer ik de opbouw van de karakters vertraag dan zie ik iedere rij correct oplichten naar gelang het te vormen karakter. De software doet dus wat ze hoort te doen.
Wordt de opbouw sneller ververst dan is duidelijk te merken dat de voorgaande rij zich herhaalt, zij het met mindere lichtintensiteit. Ik wijt het aan een hardwareprobleem van de FDS132. Misschien dat ik dit weekend het tweede bord onder handen zal nemen.

Oja, heb spanning op Resred en strobe gemeten, is toch zoals het hoort te zijn.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 13
Geregistreerd: 24 Jan 2013, 22:59

Re: Lichtkrant Surtronic FDS-132

Berichtdoor rover8772 » 19 Apr 2013, 10:52

mischien een domme vraag, maar heb je dit paneel nu aan de praat als 'stationaire' lichtkrant, of als lichtkrant met scrollende tekst ?

Ik heb hier nl. nog een ouder model luxlite lichtkrant module liggen, met 16 stuks 5x7 led segments. de aanstuurprint (met z80 processor) heb ik al verwijderd,maar nu komt dus het geneuzel om dit alles met arduino aan te sturen.
Ik houd dit topic dus goed in de gaten :D

mischien heb ik ook iets aan hierboven getoonde scetch, leuk experimenteer werk

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 19 Apr 2013, 13:41

Wat mij betreft alleen statisch. Ik zou er mettertijd een soort van woordklok willen van maken.
De code is niet van mij (zo slim ben ik niet :) ), heb alleen enkele kleine aanpassingen gemaakt en waar nodig extra commentaar bijgeplaatst. Een scrollende tekst is waarschijnlijk niet zo moeilijk te programmeren.

De Z80 processor, sweet memories, daar heb ik ooit mijn eerste (en enige) stapjes in assembler op gewaagd (op een Tandy TRS-80 model 1).
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 23 Apr 2013, 21:35

Heb ondertussen gevonden waar het bij mij fout ging, was met het STROBE signaal op de FDS132.
Bijna niet te zien maar pin 21 en pin 22 van de CPLD (of beter: waar de CPLD zat) waren met mekaar verbonden (fijn soldeerbruggetje, my bad :oops: ). Pin 22 is +Vcc dus STROBE was steeds hoog.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 5
Geregistreerd: 26 Jun 2013, 22:12

Re: Lichtkrant Surtronic FDS-132

Berichtdoor ocguru » 26 Jun 2013, 22:33

Hallo,

Ik heb sinds kort ook een FDS132. Ik krijg hem alleen niet goed aan de praat. Als ik hem aanstuur gaan er wel wat leds branden maar niet wat de bedoeling is. Ik heb deze pagina gebruikt om hem aan te sluiten.
http://arduinows.blogspot.nl/2013/04/fd ... xbord.html
En deze sketch zit in de arduino ; http://arduinows.blogspot.nl/2013/06/fd ... tonen.html

Ik heb de fds132 zo aangesloten.

http://i41.tinypic.com/2vtwqo2.jpg

1 Naar arduino pin 13
2 Naar arduino pin 11
3 naar arduino pin 10
4 naar GND ( te zien op foto).
5 naar arduino GnD
6 naar arduino pin 5
7 naar arduino pin 4
8 naar arduino pin 3
9 naar arduino pin 9
10 naar GND ( te zien op foto)


Ik gebruik een 5V 2A adapter. Lijkt me niet dat het hier aan ligt?.

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 27 Jun 2013, 19:48

Ha, dan leest er toch iemand mijn gewauwel :D

Om te beginnen, welke Arduino heb je?
Er wordt gebruik gemaakt van enkele SPI signalen: MOSI voor het overbrengen van de data, SCK voor de clocking en SS (Slave Select).
Bij de Uno en Duemilanove zitten deze signalen op pin 13 (SCK), pin 11 (MOSI) en pin 10 (SS). Gebruik je echter een Leonardo of Mega
dan verwijs ik je naar de tabel op http://arduino.cc/en/Reference/SPI voor de pin layouts (onder de hoofding Connections).
Of je gebruikt MOSI en SCK vanaf de ICSP header, daar zijn ze voor elk bord gelijk.

Ik vermoed dat jouw probleem de GND aansluiting is. Op je foto zijn de draden genummerd 4 en 10 (met als doel de inverterende ingangen van de 74HC238 laag te houden) met mekaar verbonden en met de GND van het led matrixbord. Dat is okee. Maar enkel jouw draad 5 heb je op de GND van de Arduino aangesloten. Je moet nog een (soldeer)bruggetje leggen tussen jouw draden genummerd 4 en 5. Met andere woorden: GND van de Arduino moet aan GND van het matrixbord hangen.
Nu ik het schema er nog eens bij haal vraag ik me af waarom op het matrixbord pin 1 van de weggehaalde CPLD (daar waar jouw draad 5 toekomt) aan GND hangt want eens de CPLD weg is dit soldeereilandje echt een eiland.
Dus: jouw draad 5 met draad 4 verbinden, of een soldeerbruggetje leggen tussen beide. Kan je trouwens ook op mijn foto duidelijk zien.

Voor tests gebruik ik een 7,5 V / 1A voeding, dit is de spanning die het bordje behoort te krijgen maar ik las dat iemand nog kon zakken
tot 3.3V alvorens de leds niet meer willen oplichten.
1 Ampere is net iets te zwak als er heel veel leds branden, de adapter wordt dan wel erg warm na een tijdje.
Ik denk dus niet dat jouw 5V / 2A voeding voor problemen zal zorgen. Hooguit iets minder lichtopbrengst van de leds.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

Berichten: 5
Geregistreerd: 26 Jun 2013, 22:12

Re: Lichtkrant Surtronic FDS-132

Berichtdoor ocguru » 30 Jun 2013, 18:04

Bedankt voor de reactie Rudi.

Hij doet het inmiddels. Brugje tussen de solderpads gemaakt voor de gnd. En sketch aangepast.

dit staat namelijk op jou webblog.

5 = A (naar Arduino pin 5)
6 = B (naar Arduino pin 4)
7 = C (naar Arduino pin 3)


Maar dit stond in een van de sketchjes

const int row_a = 5;
const int row_b = 6;
const int row_c = 7;



dus de aansluitingen van 4 en 3 op geprikt naar 6 en 7 en hij doet het! :P

Gebruikers-avatar
Berichten: 270
Geregistreerd: 30 Dec 2012, 11:42

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 30 Jun 2013, 21:06

Fijn dat ie het nu doet!
Bedankt voor de opmerking. Ik had de tekst tesamen met de foto blindelings gekopieerd van het CO forum, ook daar is het dus foutief vermeld.
Heb ondertussen de tekst in mijn blogje aangepast.

Benieuwd wat jij met het matrixbord wil doen en of je makkelijk zelf je software kan schrijven?
Ik vind het leuk om er stap voor stap mee te werken, zoals op het blog wel is te merken. Als niet ervaren programmeur is dit een heel leuk project
om een en ander bij te leren. Een volgend blogje zal gaan over het werken met een buffer waarin de te tonen karakters worden opgeslagen. Er wordt
gebruik gemaakt van een pointer om het buffer te vullen en uit te lezen, iets waar ik effe mijn tanden op stuk beet om te begrijpen.
Arduinows!
Why do computer programmers confuse Halloween with Christmas? Because Oct 31 = Dec 25
I got 01100011 problems but a bit ain't 00000001

VorigeVolgende

Terug naar Overige hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 7 gasten