Hallo liebe Leute,
bin hier ganz neu und diesen ersten Post nehme ich mal zum Anlass euch mein kleines Projekt vorzustellen. Es handelt sich hierbei um eine 7-Segment Anzeige mit 4 Stellen. Ich habe das ganze mittlerweile zum laufen gebracht, was allerdings nicht so leicht war, da ich kein Datenblatt für mein Bauteil gefunden habe und auch sonst das meiste für mich komplettes Neuland ist.
Da ich auch in Sachen Raspberry Pi ganz frisch eingestiegen bin, würde ich euch gerne mal meine Vorgehensweise und den aktuellen Aufbau schildern. Es wäre super wenn ihr euch das mal angucken könntet und mir Feedback gibt, ob das soweit passt, ob es ggf. Optimierungen gibt oder ob ich da vielleicht sogar grobe Fehler eingebaut habe.
Das Bauteil trägt die Bezeichnung "SMA420564", habe das bei Ebay gekauft und kein Datenblatt hierfür gefunden (Verkäufer schickte mir falsches). Habe jedoch nach Recherche und schlussendlich durch Testen mit einem Multimeter herausgefunden, dass es sich um ein Common Cathode Display handelt. Auch die Pinbelegungen sind mir jetzt bekannt.
Da ich immer noch kein Datenblatt für das Bauteil habe, bin ich einfach von Werten ausgegangen, bei denen ich das Gefühl habe, dass die oft bei "baugleichen" Bauteilen verwendet werden. Die Anzeige verwendet rote LEDs, deswegen hab ich mich auf 20mA und 2.1V festegelegt.
Da ich weiß, dass man nicht direkt die Pins an die GPIOs anschließen sollte habe ich folgende Rechnung durchgeführt um die notwendigen Vorwiderstände für jedes einzelne Segment zu berechnen:
(3,3V - 2,1V) / 0,020A = 60 Ohm
Dann habe ich die 4 D-Leitungen (D1-D4), die für die 4 Stellen zuständig sind, an folgende Pins am RPi angeschlossen:
D1 -> 3
D2 -> 5
D3 -> 7
D4 -> 8
Die einzelnen Segmente und den Punkt habe ich an folgende Pins am RPi angeschlossen:
A -> 60R -> 11
B -> 60R -> 12
C -> 60R -> 13
D -> 60R -> 15
E -> 60R -> 16
F -> 60R -> 18
G -> 60R -> 19
P -> 60R -> 21
So und jetzt zur Implementierung. Das habe ich in Python geschrieben. Als erstes habe ich verschiedene Arrays erstellt, was jetzt nicht so interessant ist....
Jedenfalls habe ich den GPIO-Mode erstmal auf BOARD gesetzt und alle GPIOs auf OUTPUT gesetzt (also von D1-D4, alle 7 Segmente und den Punkt). Dann habe ich D1-D4 auf True gesetzt und die Segmente auf False, damit erstmal alles ausgeschaltet ist. Zum einschalten setze ich dann immer die aktuelle Stelle auf False und dann die einzelnen Segmente die leuchten sollen auf True.
Das Programm läuft soweit und ich bekomme, das ganze in einigen Schleifen verpackt, an jeder Stelle die Ziffern von 0-9 angezeigt.
Nun zu meiner Frage! Passt das soweit wie ich das gemacht habe, vor allem in Bezug auf die Widerstände? Auch bekomme ich bei der Ausführung des Programms die Meldung, dass mein Pin 3 einen Pull-Up hat. Muss ich das weiter beachten, sollte ich da etwas machen oder kann ich das ignorieren. Ich weiß zwar ungefähr wofür das gedacht ist, bin mir aber nicht so sicher ob ich da jetzt was machen muss.....:s
Also ich würde mich über jede Anregung und jeden Optimierungsvorschlag freuen.
Grüße
Heliox