Lichtkrant Surtronic FDS-132

Hardware die niet past in bovenstaande onderwerpen
Berichten: 5
Geregistreerd: 26 Jun 2013, 22:12

Re: Lichtkrant Surtronic FDS-132

Berichtdoor ocguru » 24 Sep 2013, 23:56

Ik heb sinds het begin dat ik een FDS132 heb al een lijn die minder oplicht dan alle andere.

Nu heb ik vandaag die het matrix blokje geruild met een andere maar het probleem blijft aanwezig.Adapter levert ook genoeg stroom. Want als ik alle leds laat branden werken ze allemaal behalve die ene lijn. Zou het dan aan een van de chips achterop liggen?

Foto : http://img812.imageshack.us/img812/2284/f5ha.jpg

De 2 van de 42.

Advertisement

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

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 25 Sep 2013, 08:42

Inderdaad. Ofwel heeft één van de 74HC4094 shiftregisters een probleem ofwel een ULN2003.
Meten is weten.

Mocht het een ULN2003 zijn, die kan je als gratis sample bestellen bij Texas Instruments (heb ik ook gedaan voor reparatie van een FDS185, groter broertje van de FDS132, zie http://arduinows.blogspot.com/2013/08/o ... oppen.html) en is op enkele dagen in je brievenbus terug te vinden :)
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 » 25 Sep 2013, 17:27

Bedankt voor je reactie.

Kan je mij ook vertellen op welke pinnen spanning moet komen te staan als je de complete scherm aanstuurt? heb verschillende data-sheets gezien maar elke is heeft weer een andere pinout :roll:

http://img9.imageshack.us/img9/3710/xkwq.jpg

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

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 25 Sep 2013, 21:58

Ik weet dat er verschillende revisies van de FDS132 verkocht worden.
Het schema zou hetzelfde moeten zijn, maar de plaatsing van de componenten is anders en bijgevolg ook enkele aansluitpinnen van de componenten.
De laatste foto kan ik zodoende niet thuisvinden op mijn bord dus we hebben verschillende revisies.

Afgaande op je vorige foto betreft dit het 8e matrixblokje op de eerste rij (als je van links begint te tellen).
Jouw probleemkolom is dan de 38e (als we de meest linkse kolom tot kolom 1 benoemen).
Kijken we op het schema dan komt de 38e uitgang van de shiftregisters overeen met pin 12 van U28 (4096).
Met onderstaande sketch kan je deze kolom doen oplichten zodat je kan beginnen meten.
Op pin 12 moet je nu ongeveer 5V meten (bij mij 4,85V), alle andere uitgangen van U28 moeten laag zijn.
Indien je deze spanning hierop meet dan werkt de 4094 waarschijnlijk goed. Je kan dat testen door in de sketch
testkolom een waarde van 37 te geven. Dan licht de vorige rij op een zou je alleen op pin 13 een spanning van 5V
mogen meten.
Zijn we nog mee? Dan testen we terug kolom 38.
Volgens het schema is pin 12 van U28 verbonden met pin 1 van U16 (ULN2003). De overeenkomstige maar geïnverteerde uitgang
is dan pin 16 die via een weerstand aan het ledmatrix blokje hangt. Op pin 1 van U16 moet je ook 5V meten en op pin 16 ongeveer 0,75V (de leds worden gesourced).

Bij mij wordt een andere aansluitvolgorde van de ULN2003's gebruikt. Pin 12 van de 4094 hangt aan pin 4 van de ULN2003 en de
uitgang van de ULN2003 is dan pin 13. Maar de meetresultaten moeten hetzelfde zijn.

Ik hoop dat een en ander duidelijk voor je is.

De sketch werd voor een vroeger experiment gebruikt, er staan wat overbodige dingen in maar ik heb hem voor je aangepast zodat je gewoon kan meegeven welke
kolom je wil doen oplichten. Er staat geen commentaar bij, zoals ik al zei heb ik hem snel voor deze test aangepast.


Code: Alles selecteren
// stuur een individuele kolom voor test doeleinde
// geef de te testen kolom mee in de eerste regel.

int testkolom = 38;

int dataPin = 11; 
int strobePin = 10;
int clockPin = 13;
const int resredPin = 9;
#define number_of_74hc595s 34
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];
const int row_a  = 5;
const int row_b  = 6;
const int row_c  = 7;
int speed=0;

void setup(){
  pinMode(dataPin, OUTPUT);
  pinMode(strobePin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode (resredPin, OUTPUT);
  digitalWrite (resredPin, HIGH);
  pinMode (row_c,  OUTPUT);
  pinMode (row_b,  OUTPUT);
  pinMode (row_a,  OUTPUT);
  clearRegisters();
  writeRegisters();
}               

void clearRegisters(){
  for(int i = numOfRegisterPins - 1; i >=  0; i--){
     registers[i] = LOW;
  }
}

void writeRegisters(){

  digitalWrite(strobePin, LOW);
  for(int i = numOfRegisterPins - 1; i >=  0; i--){
    digitalWrite(clockPin, LOW);
    int val = registers[i];
    digitalWrite(dataPin, val);
    digitalWrite(clockPin, HIGH);
  }
  digitalWrite(strobePin, HIGH);
}

void setRegisterPin(int index, int value){
  registers[index] = value;
}

void loop(){
for (int row=0; row<7; row++) {
 setRow(row);
  setRegisterPin(testkolom, HIGH);
    writeRegisters();
    delay(speed); 
 }
}

void setRow (int row)
{
  digitalWrite (row_a, row & 1);
  digitalWrite (row_b, row & 2);
  digitalWrite (row_c, row & 4);
}
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 » 26 Sep 2013, 08:30

Sorry foutje in mijn vorig bericht. De leds worden gesinkt natuurlijk, niet gesourced.
Op de uitgangen van de ULN2003 die geen leds doen branden zou je bij benadering de bronspanning moeten meten.
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: 4
Geregistreerd: 30 Sep 2013, 22:17

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rolo » 05 Okt 2013, 09:55

Hallo Forumleden, dit is mijn eerste post. Ik heb ook twee van die matrixborden gekocht, leek me leuk om mee te experimenteren. Ik heb al veel info hier gevonden en mischien kan ik later ook iets bijdragen waar anderen weer wat aan hebben. Ik heb twee rode boards gekregen, de modificatie van de aansluitingen heb ik gedaan, ik heb met beleid de grote chip verwijderd en een header erop gezet :

Afbeelding

Deze aangesloten op een Arduino UNO. Ik wilde begrijpen hoe het display werkt dus ben begonnen met zelf de aanstuurcode te schrijven, niet omdat ik het beter kan dat wat hier al gepost is maar ik vind het leuker om zelf uit te vinden hoe het werkt. Ik werk nog niet zo lang met Arduino en dit is een leuk leer project. Inmiddels heb ik een werkende basis code, deze kan teksten op de display zetten in het bekende 5x7 font. Ik werk met een timer overflow interrupt om de display aan te sturen, deze leest een buffer uit het geheugen en zet de data op de display. Op deze manier hoef je in de hoofd code geen rekening te houden met schuiven en multiplexen van de display, je kunt hem als het ware als een statisch display beschouwen. De interrupt regelt dit op de achtergrond. Ook geeft deze manier van aansturen een stabiele weergave, de display timing wordt nu niet beinvloed door de hoofd routine. Wel moet je bij tijd kritische code rekening houden dat de interrupt ertussen door komt.
Het eerste resultaat :

Afbeelding

Volgende stap is het maken van effecten, dus een lichtkrant en het inrollen van cijfers bijvoorbeeld, en het kunnen dimmen van de display met PWM, genoeg inspiratie om verder te hobbyen dus.

Berichten: 4
Geregistreerd: 30 Sep 2013, 22:17

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rolo » 05 Okt 2013, 12:30

Hier een poging om de code te posten, het bestaat uit de hoofd code, de INO file en een header file met de ascii tabel.
Die header file moet font75.h heten en in de zelfde directory staan als de INO file.

De code :
Code: Alles selecteren
// Timer 1 Info :  http://playground.arduino.cc/code/timer1
// Using PROGMEM : http://arduino.cc/en/Reference/PROGMEM


// The matrix board is controlled by timer0 overflow interrupt. This gives a steady image and the display can be handled like a static type.
// The main code does not have to control the board, just set or clear bits in the data array to put some led's on or off.
// Logically it's organized in colums, 270 in total. This sofware defines column 0 as the upper left column and 271 is the right bottom column.
// This makes it more easy to arrange the text on the board. There is no checking if the text fits on the display.
//
// Column layout :    Line 0 : 0 to 89
//                    Line 1 : 90 to 179     
//                    Line 1 : 180 to 271
//
//
//
#include <avr/pgmspace.h>             // Include pgmspace so data tables can be stored in program memory, see PROGMEM info
#include <SPI.h>                      // Include SPI comunications, used for high speed clocking to display shiftregisters
#include "TimerOne.h"                 // Include Timer1 library, used for timer overflow interrupt                                   
                                                       
const int strobePin = 10;             // Define I/O pins connected to the display board                 
const int clockPin = 13;                               
const int dataPin = 11;                               
const int resredPin = 9;                               
const int row_a = 5;                                     
const int row_b = 6;                                   
const int row_c = 7;                                     

int RowCount = 0;             // Counter for the current row, do not change this value in the main code, it's handeld in the interrupt routine 

#include "font75.h";         // Standard 5x7 font ASCII Table

byte ColumnBytes[8][34];     // This is the data array that is used as buffer. The display data is in this buffer and the timeroverflow routine scans this
                             // buffer and shows it on the display. So read and write to this buffer to change display data.
                             // No strings are stored here, its the raw bit data that has to be shifted into the display.
                         

// =========================================================================================
// Setup routine, mandatory.
// =========================================================================================

 void setup() {   
  pinMode (strobePin, OUTPUT);                              // Define IO         
  pinMode (clockPin, OUTPUT); 
  pinMode (dataPin, OUTPUT); 
  pinMode (row_c, OUTPUT); 
  pinMode (row_b, OUTPUT); 
  pinMode (row_a, OUTPUT); 
  pinMode (resredPin, OUTPUT); 
  digitalWrite (resredPin, LOW);                       
  digitalWrite (strobePin, LOW);                       
  Serial.begin(9600);                                       // Include serial routine, used for debugging and testing
  SPI.begin();                                              // Start SPI comunications
  SPI.setBitOrder(LSBFIRST);                                // Initialize SPI comunications
  Timer1.initialize(2000);                                  // initialize timer1, overflow timer1 handles the display driver, period (in microseconds)
  Timer1.attachInterrupt(DisplayControl);                   // attaches timer1 overflow interrupt routine
// Start code here
  ClearDisplay();
  PlaceText("FDS132",27);
  PlaceText("Matrixboard on", 90);
  PlaceText("Arduino UNO", 192);

 } 

// =========================================================================================
// loop routine, mandatory
// Take notice when using time crititical code the interrupt is running to control
// the display.
// =========================================================================================

 void loop() 
 { 
 } 


// =========================================================================================
// Timer1 overflow intterupt routine,
// Does the Display shifting and muliplexing
// =========================================================================================

 void DisplayControl() 
 { 
     digitalWrite(strobePin, LOW);                        // StrobePin LOW, so led's do not change during clocking
     digitalWrite (resredPin, LOW);                       // Display off to prevent ghosting 
 
       for (int q = 0; q<34; q++) {                       // Shift the bytes in for the current Row
       SPI.transfer(ColumnBytes[RowCount][q]);}
   
     digitalWrite (row_a, RowCount & 1);                  // Switch the current column on, will be on until next interrupt
     digitalWrite (row_b, RowCount & 2);               
     digitalWrite (row_c, RowCount & 4);           
     
     digitalWrite(strobePin, HIGH);                       // Strobe the shiftregisters so data is presented to the LED's
     digitalWrite (resredPin, HIGH);                      // Display back on

     RowCount++;                                          // Increment Row
     if (RowCount == 7) RowCount = 0 ;                    // Row is 0 to 6
 } 

// =========================================================================================
// Place text on display, uses the standard 5x7 font
// Call this routine with the text to display and the starting column to place the text
// Example : PlaceText("FDS132",27); Places the text "FDS132" starting on column 27
// =========================================================================================

void PlaceText(String text, int ColPos) {
    byte displayByte; 
    char CurChar;
    int bitpos;
    int bytepos;
    int pixelpos;
    int charCount = text.length();
    int store = ColPos;

   for (int i = 0; i < charCount; i++) {                                     // Loop for all the characters in the string
    CurChar = text.charAt(i);                                                // Read ascii value of current character
    CurChar = CurChar - 32;                                                  // Minus 32 to get the right pointer to the ascii table, the first 32 ascii code are not in the table   
     
     for (int y = 0; y<7; y++) {                                             // y loop is used to handle the 7 rows
       for (int x = 0; x<5; x++) {                                           // x loop is the pointer to the indiviual bits in the byte from the table
         displayByte = (pgm_read_word_near(Font75 + (CurChar*7)+y));         // Read byte from table
         pixelpos = abs(ColPos - 271);                                       // Calculate start position to place the data on display
         bytepos = ((pixelpos)/8);                                           
         bitpos = (pixelpos) - (bytepos*8);
         boolean bitStatus = bitRead(displayByte, x);                        // Probe the bits   
         if(bitStatus == 0) bitClear(ColumnBytes[y][bytepos], bitpos);       // And set or clear the corrosponding bits in de display buffer   
         if(bitStatus == 1) bitSet(ColumnBytes[y][bytepos], bitpos);       
         ColPos++;                                                           
      }
       ColPos = store;                                                      // Reset the column pointer so the next byte is shown on the same position
     }
    ColPos = ColPos + 6;                                                    // 6 is used here to give one column spacing between characters (one character is 5 bits wide)
    store = ColPos;                                                         // For more space between the characters increase this number
 }
}     

// =========================================================================================
// Clear display
// All bytes in buffer are set to zero
// =========================================================================================

void ClearDisplay() {
    for (int y = 0; y<8; y++) {     
       for (int x = 0; x<34; x++) {     
         ColumnBytes[y][x] = 0;
       }
    }     





De Header file :
Code: Alles selecteren
// ASCII Table
PROGMEM  prog_uchar Font75[]  = {
0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,     // 
0x04 ,0x04 ,0x04 ,0x04 ,0x00 ,0x00 ,0x04 ,     // !
0x0A ,0x0A ,0x0A ,0x00 ,0x00 ,0x00 ,0x00 ,     // "
0x0A ,0x0A ,0x1F ,0x0A ,0x1F ,0x0A ,0x0A ,     // #
0x04 ,0x1E ,0x05 ,0x0E ,0x14 ,0x0F ,0x04 ,     // $
0x03 ,0x13 ,0x08 ,0x04 ,0x02 ,0x19 ,0x18 ,     // %
0x06 ,0x09 ,0x05 ,0x02 ,0x15 ,0x09 ,0x16 ,     // &
0x06 ,0x04 ,0x02 ,0x00 ,0x00 ,0x00 ,0x00 ,     // '
0x08 ,0x04 ,0x02 ,0x02 ,0x02 ,0x04 ,0x08 ,     // (
0x02 ,0x04 ,0x08 ,0x08 ,0x08 ,0x04 ,0x02 ,     // )
0x00 ,0x04 ,0x15 ,0x0E ,0x15 ,0x04 ,0x00 ,     // *
0x00 ,0x04 ,0x04 ,0x1F ,0x04 ,0x04 ,0x00 ,     // +
0x00 ,0x00 ,0x00 ,0x00 ,0x06 ,0x04 ,0x02 ,     // Comma
0x00 ,0x00 ,0x00 ,0x1F ,0x00 ,0x00 ,0x00 ,     // -
0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x06 ,0x06 ,     // .
0x00 ,0x10 ,0x08 ,0x04 ,0x02 ,0x01 ,0x00 ,     // Slash
0x0E ,0x11 ,0x19 ,0x15 ,0x13 ,0x11 ,0x0E ,     // 0
0x04 ,0x06 ,0x04 ,0x04 ,0x04 ,0x04 ,0x0E ,     // 1
0x0E ,0x11 ,0x10 ,0x08 ,0x04 ,0x02 ,0x1F ,     // 2
0x1F ,0x08 ,0x04 ,0x08 ,0x10 ,0x11 ,0x0E ,     // 3
0x08 ,0x0C ,0x0A ,0x09 ,0x1F ,0x08 ,0x08 ,     // 4
0x1F ,0x01 ,0x0F ,0x10 ,0x10 ,0x11 ,0x0E ,     // 5
0x0C ,0x02 ,0x01 ,0x0F ,0x11 ,0x11 ,0x0E ,     // 6
0x1F ,0x10 ,0x08 ,0x04 ,0x02 ,0x02 ,0x02 ,     // 7
0x0E ,0x11 ,0x11 ,0x0E ,0x11 ,0x11 ,0x0E ,     // 8
0x0E ,0x11 ,0x11 ,0x1E ,0x10 ,0x08 ,0x06 ,     // 9
0x00 ,0x06 ,0x06 ,0x00 ,0x06 ,0x06 ,0x00 ,     // :
0x00 ,0x06 ,0x06 ,0x00 ,0x06 ,0x04 ,0x02 ,     // ;
0x08 ,0x04 ,0x02 ,0x01 ,0x02 ,0x04 ,0x08 ,     // <
0x00 ,0x00 ,0x1F ,0x00 ,0x1F ,0x00 ,0x00 ,     // =
0x02 ,0x04 ,0x08 ,0x10 ,0x08 ,0x04 ,0x02 ,     // >
0x0E ,0x11 ,0x10 ,0x08 ,0x04 ,0x00 ,0x04 ,     // ?
0x0E ,0x11 ,0x10 ,0x16 ,0x15 ,0x15 ,0x0E ,     // @
0x0E ,0x11 ,0x11 ,0x11 ,0x1F ,0x11 ,0x11 ,     // A
0x0F ,0x11 ,0x11 ,0x0F ,0x11 ,0x11 ,0x0F ,     // B
0x0E ,0x11 ,0x01 ,0x01 ,0x01 ,0x11 ,0x0E ,     // C
0x07 ,0x09 ,0x11 ,0x11 ,0x11 ,0x09 ,0x07 ,     // D
0x1F ,0x01 ,0x01 ,0x0F ,0x01 ,0x01 ,0x1F ,     // E
0x1F ,0x01 ,0x01 ,0x0F ,0x01 ,0x01 ,0x01 ,     // F
0x0E ,0x11 ,0x01 ,0x1D ,0x11 ,0x11 ,0x1E ,     // G
0x11 ,0x11 ,0x11 ,0x1F ,0x11 ,0x11 ,0x11 ,     // H
0x0E ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x0E ,     // I
0x1C ,0x08 ,0x08 ,0x08 ,0x08 ,0x09 ,0x06 ,     // J
0x11 ,0x09 ,0x05 ,0x03 ,0x05 ,0x09 ,0x11 ,     // K
0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x01 ,0x1F ,     // L
0x11 ,0x1B ,0x15 ,0x15 ,0x11 ,0x11 ,0x11 ,     // M
0x11 ,0x11 ,0x13 ,0x15 ,0x19 ,0x11 ,0x11 ,     // N
0x0E ,0x11 ,0x11 ,0x11 ,0x11 ,0x11 ,0x0E ,     // O
0x0F ,0x11 ,0x11 ,0x0F ,0x01 ,0x01 ,0x01 ,     // P
0x0E ,0x11 ,0x11 ,0x11 ,0x15 ,0x09 ,0x16 ,     // Q
0x0F ,0x11 ,0x11 ,0x0F ,0x05 ,0x09 ,0x11 ,     // R
0x1E ,0x01 ,0x01 ,0x0E ,0x10 ,0x10 ,0x0F ,     // S
0x1F ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,     // T
0x11 ,0x11 ,0x11 ,0x11 ,0x11 ,0x11 ,0x0E ,     // U
0x11 ,0x11 ,0x11 ,0x11 ,0x11 ,0x0A ,0x04 ,     // V
0x11 ,0x11 ,0x11 ,0x15 ,0x15 ,0x15 ,0x0A ,     // W
0x11 ,0x11 ,0x0A ,0x04 ,0x0A ,0x11 ,0x11 ,     // X
0x11 ,0x11 ,0x11 ,0x0A ,0x04 ,0x04 ,0x04 ,     // Y
0x1F ,0x10 ,0x08 ,0x04 ,0x02 ,0x01 ,0x1F ,     // Z
0x0E ,0x02 ,0x02 ,0x02 ,0x02 ,0x02 ,0x0E ,     // [
0x00 ,0x01 ,0x02 ,0x04 ,0x08 ,0x10 ,0x00 ,     // Backslash
0x0E ,0x08 ,0x08 ,0x08 ,0x08 ,0x08 ,0x0E ,     // ]
0x04 ,0x0A ,0x11 ,0x00 ,0x00 ,0x00 ,0x00 ,     // ^
0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x1F ,     // _
0x02 ,0x04 ,0x08 ,0x00 ,0x00 ,0x00 ,0x00 ,     // High Comma
0x00 ,0x00 ,0x0E ,0x10 ,0x1E ,0x11 ,0x1E ,     // a
0x01 ,0x01 ,0x0D ,0x13 ,0x11 ,0x11 ,0x0F ,     // b
0x00 ,0x00 ,0x0E ,0x01 ,0x01 ,0x11 ,0x0E ,     // c
0x10 ,0x10 ,0x16 ,0x19 ,0x11 ,0x11 ,0x1E ,     // d
0x00 ,0x00 ,0x0E ,0x11 ,0x1F ,0x01 ,0x0E ,     // e
0x0C ,0x12 ,0x02 ,0x07 ,0x02 ,0x02 ,0x02 ,     // f
0x00 ,0x1E ,0x11 ,0x11 ,0x1E ,0x10 ,0x0E ,     // g
0x01 ,0x01 ,0x0D ,0x13 ,0x11 ,0x11 ,0x11 ,     // h
0x04 ,0x00 ,0x06 ,0x04 ,0x04 ,0x04 ,0x0E ,     // i
0x08 ,0x00 ,0x0C ,0x08 ,0x08 ,0x09 ,0x06 ,     // j
0x01 ,0x01 ,0x09 ,0x05 ,0x03 ,0x05 ,0x09 ,     // k
0x06 ,0x04 ,0x04 ,0x04 ,0x04 ,0x04 ,0x0E ,     // l
0x00 ,0x00 ,0x0B ,0x15 ,0x15 ,0x11 ,0x11 ,     // m
0x00 ,0x00 ,0x0D ,0x13 ,0x11 ,0x11 ,0x11 ,     // n
0x00 ,0x00 ,0x0E ,0x11 ,0x11 ,0x11 ,0x0E ,     // o
0x00 ,0x00 ,0x0F ,0x11 ,0x0F ,0x01 ,0x01 ,     // p
0x00 ,0x00 ,0x16 ,0x19 ,0x1E ,0x10 ,0x10 ,     // q
0x00 ,0x00 ,0x0D ,0x13 ,0x01 ,0x01 ,0x01 ,     // r
0x00 ,0x00 ,0x0E ,0x01 ,0x0E ,0x10 ,0x0F ,     // s
0x02 ,0x02 ,0x07 ,0x02 ,0x02 ,0x12 ,0x0C ,     // t
0x00 ,0x00 ,0x11 ,0x11 ,0x11 ,0x19 ,0x16 ,     // u
0x00 ,0x00 ,0x11 ,0x11 ,0x11 ,0x0A ,0x04 ,     // v
0x00 ,0x00 ,0x11 ,0x11 ,0x15 ,0x15 ,0x0A ,     // w
0x00 ,0x00 ,0x11 ,0x0A ,0x04 ,0x0A ,0x11 ,     // x
0x00 ,0x00 ,0x11 ,0x11 ,0x1E ,0x10 ,0x0E ,     // y
0x00 ,0x00 ,0x1F ,0x08 ,0x04 ,0x02 ,0x1F ,     // z
0x08 ,0x04 ,0x04 ,0x02 ,0x04 ,0x04 ,0x08 ,     // {
0x04 ,0x04 ,0x04 ,0x00 ,0x04 ,0x04 ,0x04 ,     // |
0x02 ,0x04 ,0x04 ,0x08 ,0x04 ,0x04 ,0x02 ,     // }
0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,     // ~
0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,     // Block
};




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

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rudi » 06 Okt 2013, 17:01

Hoi Rolo, welkom op het forum en meteen bedankt voor jouw bijdrage.
De modificatie ziet er netjes uit.

Mooi dat je het aansturen op je eigen manier uitprobeerd én wil delen.

In de commentaar staat dat column 271 rechts onderaan is maar dat klopt niet. Rechts onderaan is kolom 269.
Heb even mijn bord op de Uno aangesloten en je code er op los gelaten.

Wist je dat wanneer je een tekst plaatst vanaf denkbeeldige kolom 273, deze in spiegelbeeld wordt getoond? Best grappig.

Voor mijn bord moest ik de timer1 period verhogen naar 2800ms voor een flikkervrij beeld. Kan verschillen van bord tot bord.

Zo, de eerste twee weken geen Arduino voor mij, ik ga lekker van de zuiderse zon genieten 8-)
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: 4
Geregistreerd: 30 Sep 2013, 22:17

Re: Lichtkrant Surtronic FDS-132

Berichtdoor Rolo » 06 Okt 2013, 19:39

Bedankt voor het welkomstwoord !
Van die kolommen klopt helemaal, 269 is de laatste kolom die zichtbaar is. 272 is de theoretische laatste als je in blokken van 8 bits telt.
En die timer waarde is apart, je zou zeggen dat verhogen van dat getal de tijd tussen de interrupts langer maakt dus meer flikkering geeft.
Maar zou inderdaad bord afhankelijk kunnen zijn, bij mijn bord geeft 2000 een mooi rustig beeld. Als ik hoger ga wordt het onrustiger.

Prettige vakantie !

Berichten: 1
Geregistreerd: 09 Nov 2013, 17:48

Re: Lichtkrant Surtronic FDS-132

Berichtdoor winersat » 16 Nov 2013, 15:09

Hallo Rudi,

Heb het hier ook draaiende gekregen en mijn eigen tekst in gezet, maar had graag een lopende tekst gehad op de onderste rij leds bij het uploaden krijg ik telkens een fout
denk dat het een parameter is dat verkeerd is de lopende tekst moet telkens terug keren moet in feite een lus maken vb:als de laatste letter verdwijnd de tekst al terug rechts begint.

Groeten

VorigeVolgende

Terug naar Overige hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten