Go Down

Topic: Segment Leds (Zahlen) steuern (Read 3324 times) previous topic - next topic

vedel26

ich habe heute ein schönes paket von Pollin bekommen und habe dieses 25 LCD Set für 3€ dazubestellt. Ich habe haufenweiße von diesen Zahlen bekommen:



(ich habe welche mit nur einer 8 , 2 x 8 und mit 3 x 8)

die mit 2 x 8 haben zb 18 pins (9 auf jeder Seite)

ich habe aber keine Ahnung wie ich die benutzen kann, denn meiner bombe fehlt noch der Timer, kleiner scherz am rande ;)

ich will nur mal so zum testen eine zahl zb die 3 erscheinen lassen.
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

MaFu

Sieben Pin für die Zahl (7 Segmente), einer für den Punkt und dann noch eine gemeinsame Anode bzw. Kathode.
Gibt es bei Pollin kein Datenblatt? Voraussichtlich brauchst Du auch noch Vorwiderstände.
Bei der Menge an Pins ist eigentlich nur der Anschluss über LED Treiberbausteien sinnvoll.
_______
Manfred

Robdeflop

Hi

Oder mit einer kleinen Matrix ;) So habe ich mein Tacho gebaut. Kannst also problemlos eine 4-stellige anzeige basteln, und hast dann noch 4 digitale Ausgänge über.

MFG, Robdeflop®

vedel26

ja aber ich weiß nicht wo die zb Die GND pin ist :D

der Aufdruck ist : BVN - 7572SR4

und das habe ich gefunden: http://www.pollin.de/shop/downloads/D120543D.PDF

aber geholfen hat es mir noch nicht ;)
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

MaFu

Steht doch alles drin was Du brauchst.

Unter "Pinbelegung" das 1. Bild:
Die sieben Segmente der 1. Ziffer verteilen sich auf die Pins 16, 15, 3, 2, 1, 18 und 17.
Anhand der Symbole sieht man, dass die Segmente eine gemeinsame Kathode (also Masse) haben, diese ist Pin 14.
Analog dazu hast Du die Pinbelegung der 2. Ziffer auf dem 2. Bild.
Die Punkte verwenden demnach die beiden noch übrigen Pins 4 und 9. Anhand der Lage würde ich sagen Pin 4 ist der linke Punkt.
Das Bild bei "Abmessungen" zeigt Dir noch an, wie die Pins durchnummeriert sind.
_______
Manfred

vedel26

Super die erste zahl leuchtet aber die 2 Zahl leuchte nicht. Außerdem habe ich die Nummerierung beim ersten mahl nicht gesehen^^ aber jetzt du du es gesagt hast
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

MaFu

Super die erste zahl leuchtet aber die 2 Zahl leuchte nicht.

Beschreib mal, wie Du was angeschlossen hast.
_______
Manfred

vedel26

oder was ich noch versucht habe ist die hier zu testen:

http://www.pollin.de/shop/downloads/D120212D.PDF

da leuchtet überhaupt nix ich verstehe das nicht ich habe mir das viel leichter vorgestellt -.-'

also bei der LED habe ich PIN 15 der LED an GND angeschlossen und mal getestet ob etwas leuchtet egal was aber nix passiert.
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

vedel26

ich nehme alles zurück ich merke erst jetzt das ich mich verlesen habe
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

MaFu


oder was ich noch versucht habe ist die hier zu testen:

http://www.pollin.de/shop/downloads/D120212D.PDF

da leuchtet überhaupt nix ich verstehe das nicht ich habe mir das viel leichter vorgestellt -.-'

also bei der LED habe ich PIN 15 der LED an GND angeschlossen und mal getestet ob etwas leuchtet egal was aber nix passiert.


Da steht aber, dass Pin 15 die Anode ist. Pin 18 ist die Kathode und somit GND. LED leuchten nur wenn der Strom in die richtige Richtung fließt (ist ja schließlich eine Diode).
Und beachte auch die Spannung der LEDs. Wenn ich mich noch richtig erinnere, stand im vorigen PDF was von 1,7V. Wenn Du die LEDs ohne Vorwiderstand an 5V hängst, kann es sein, dass Du sie nur ganz kurz und dann nie mehr zum leuchten bekommst  ;)
_______
Manfred

vedel26

Ja aber ich verstehe nicht wie man das Steuert mit dem Arduino ich bin ein totaler noob bei diesen LEDs. Ich will das es von zb: 10 auf 0 runter zählt aber ich weiß nicht wie man das Steuern soll^^

ich will das diese LED runter zählt:
http://www.pollin.de/shop/downloads/D120212D.PDF
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

Marcus W

Du kannst also schon einmal 7-Segmente ansteuern.
Pack dir jetzt die Beschaltung für jede der Ziffern in ein Feld eines Arrays und dann geh nur noch das Array durch (vorwärts, rückwärts, wie auch immer).


vedel26

ja aber die anderen funktionieren anders. Ich weiß nicht wie man GND steuern soll -.-*
Ich wuerde so gerne die Welt veraendern, doch Gott gibt mir den Quelltext nicht

Marcus W

#13
Apr 21, 2011, 07:05 pm Last Edit: Apr 21, 2011, 07:09 pm by Marcus W Reason: 1
Die einfachste Möglichkeit ist hierbei über einen entsprechenden Treiber-IC zu steuern. z.B. der MAX7219 oder auch der TLC5940... oder du baust dir mit Transistoren eine entsprechende Schaltung auf.

Robdeflop

Hi

Nein, brauchst du nicht ;)
Ich habe einen 4 Stelligen Tacho mit lediglich 2 doppel-7-segment-anzeigen und 2 Widerständen gebaut. Hatten auch gemeinsame Anode, also muss man "nur" die anderen Pins auf Masse setzen.

Code: [Select]
int za[] = {1,2,3,4,5,6,7};
int z0[] = {1,2,3,4,5,6};
int z1[] = {2,3};
int z2[] = {1,2,4,5,7};
int z3[] = {1,2,3,4,7};
int z4[] = {2,3,6,7};
int z5[] = {1,3,4,6,7};
int z6[] = {1,3,4,5,6,7};
int z7[] = {1,2,3};
int z8[] = {1,2,3,4,5,6,7};
int z9[] = {1,2,3,4,6,7};
int zE[] = {1,4,5,6,7};
int zr[] = {5,7};

int anzeige[] = {13,12,11,10};

void Anzeigen(int wert)
{
  if(wert < 1000)
  {
    char buffer[3];
    itoa(wert, buffer, 10);
    zeigean(buffer[0], 0);
    zeigean(buffer[1], 1);
    zeigean(buffer[2], 2);
  }
  else
  {
    zeigean(10, 0);
    zeigean(11, 1);
    zeigean(11, 2);
  }
}

void zeigean(char w, int a)
{
  pinMode(anzeige[a], OUTPUT);
  digitalWrite(anzeige[a], HIGH);
 
  for(int i=0;i<7;i++)
  {                     
    pinMode(za[i]-1, INPUT);
  }
 
  switch(w)
  {
  case '0':
    for(int i = 0; i < 6; i++)
    {
      pinMode(z0[i]-1, OUTPUT);
      delay(2);
    }
    break;
  case '1':
    for(int i = 0; i < 2; i++)
    {
      pinMode(z1[i]-1, OUTPUT);
    }
    break;
  case '2':
    for(int i = 0; i < 5; i++)
    {
      pinMode(z2[i]-1, OUTPUT);
    }
    break;
  case '3':
    for(int i = 0; i < 5; i++)
    {
      pinMode(z3[i]-1, OUTPUT);
    }
    break;
  case '4':
    for(int i = 0; i < 4; i++)
    {
      pinMode(z4[i]-1, OUTPUT);
    }
    break;
  case '5':
    for(int i = 0; i < 5; i++)
    {
      pinMode(z5[i]-1, OUTPUT);
    }
    break;
  case '6':
    for(int i = 0; i < 6; i++)
    {
      pinMode(z6[i]-1, OUTPUT);
    }
    break;
  case '7':
    for(int i = 0; i < 3; i++)
    {
      pinMode(z7[i]-1, OUTPUT);
    }
    break;
  case '8':
    for(int i = 0; i < 7; i++)
    {
      pinMode(z8[i]-1, OUTPUT);
    }
    break;
  case '9':
    for(int i = 0; i < 6; i++)
    {
      pinMode(z9[i]-1, OUTPUT);
    }
    break;
  case 10:
    for(int i = 0; i < 5; i++)
    {
      pinMode(zE[i]-1, OUTPUT);
    }
    break;
  case 11:
    for(int i = 0; i < 2; i++)
    {
      pinMode(zr[i]-1, OUTPUT);
    }
    break;
  }
 
  for(int i=0;i<7;i++)
  {                     
    pinMode(za[i]-1, INPUT);
  }
  //digitalWrite(anzeige[a],LOW);
  pinMode(anzeige[a], INPUT);
}


Is aber "nur" der code für ne dreistellige Anzeige

Müsstest nur die Pins anpassen.
Pin 13: Anzeige 1, Anode
Pin 12: Anzeige 1, Anode
Pin 11: Anzeige 1, Anode
Pin 10: Anzeige 1, Anode

Die Pins 0 - 6 sind die Kathoden von a - g.

Den Code solltest du eig sehr leicht verstehen, is wirklich sehr einfach aufgebaut ;)

MFG, Robdeflop®

Go Up