Forum: Mikrocontroller und Digitale Elektronik 7 Segmentanzeige (4stellig) am Arduino Mega 2560 Rev.3


von Norbert H. (lapster)


Angehängte Dateien:

Lesenswert?

Hallo zunächst einmal,
ich bin NEWBIE auf dem Gebiet SCHALTUNGSAUFBAU aber habe mir ein kleines 
Ziel gesetzt und bitte euch somit darum mir eventuell einige Tips 
vermitteln
zu können.

Bereits gelesen: Beitrag "Arduino Siebensegmentanzeige"

allerdings zuvor schon nachfolgende Bauteile beschafft:

-LED-Anzeige ROHM LC-204VL, 4-stellig, rot
Bestellnummer und Datenblatt:
http://www.pollin.de/shop/dt/OTUxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LED_Anzeige_ROHM_LC_204VL_4_stellig_rot.html

-IC-Präzisionsfassung, 24-polig
Bestellnummer und Datenblatt:
http://www.pollin.de/shop/dt/NjU5OTk1OTk-/Bauelemente_Bauteile/Mechanische_Bauelemente/IC_Fassungen_Adapterplatinen/IC_Praezisionsfassung_24_polig.html

PNP-Transistoren
Bestellnummer und Datenblatt:
http://www.pollin.de/shop/dt/MDM3OTY4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Transistoren/Transistor.html

NPN-Transistoren
Bestellnummer und Datenblatt:
http://www.pollin.de/shop/dt/OTIzOTY4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Transistoren/Transistor.html

Kurze Schilderung meiner bisherigen Vorgehensweise:

Ich möchte mir eine eigene Schaltung auf Punktrasterplatine 
zusammenbauen und habe mir hier etliches an Bauteilen bei Pollin 
gekauft.
Auch ein Steckbrett 
http://www.pollin.de/shop/dt/NTI4OTg0OTk-/Werkstatt/Werkstattbedarf/Sonstiges/Labor_Steckboard.html
und unterschiedliche sowie handelsübige Steckverbinder (m/w),
nenne ich seither mein eigen.
Wiederstände habe ich bei dieser Gelegenheit auch gleich massenweise mit 
dazu beordert.

Da ich eine Grundvorstellung von meinem Vorhaben hatte,
machte ich mich also daran die Anordnung der Bauteile auf das Steckbrett 
erstmals aufzubauen und um
die späteren Leitungen durch Drahtbrücken und Leitungsverbindern in die
Testphase zu bekommen,
weil für mich keine IC-Treiber, derzeit in Frage kommen,
auch wenn dies eventuell die Alternative Voraussetzung hierfür wäre.

Jetzt habe ich die Schaltung gestern auf das Steckboard gesteckt
(siehe Bild im Anhang)
danach habe ich aber erst nochmals gegooglet,
und bin dadurch auf den oben erwähnten Link hier auf Microcontroller.net
gestossen,
was ich als äusserst hilfreich empfunden habe,
zumal sich hier einiges an wissenswertes
sowie lehrreiches Gedankengut, befindet.

Wäre nett von jemanden, insofern er/sie mir hierzu eventuell einen Link 
reinsetzen könnte, da ich nicht weiß ob sich das im erwähnten Thread 
irgendwie lösen lies, und auch weil es sich in meinem Thread hier,
exakt und das selbe LEDDISPLAY (4stellig mit gem. Kathode),
handelt.
Hier nochmals der Link zum LEDDISPLAY --> 
http://www.pollin.de/shop/dt/OTUxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LED_Anzeige_ROHM_LC_204VL_4_stellig_rot.html

Im Datenblatt des LEDDISPLAYS steht das dieses mit 10mA Spannung im 
durchschnittlichen Betrieb arbeitet !

Allerdings sind Spitzenströme bei dem LEDDISPLAY von 15mA zulässig,
und dann steht da noch etwas von 1ms,
was in meinem Fall auch dieser 1ms entsprechen sollte,
da die Ansteuerung per Multiplexing ja eigentlich so etwas voraussetzt.

Den Aspeckt das der Arduino Mega 2560 in der Revision 3.0 pro Digitalen 
Pin zwar 5 Volt liefert,
aber pro DIGITALEN PIN nur (bis zu) 40mA hergibt,
gibt mir seit ich den anderen Post hier gelesen habe,
nun ordentlich zu denken da ich gedacht hatte,
daß das LEDDISPLAY welches insgesamt 4 Ziffernanzeigen sowie einige 
Punkt-LEDs aufweißt, nur 10mA Spannung (Gesamt) benötigt,
und nicht wie es mir nun bewusst wurde,
daß sich diese Angabe,
auf ein einzelnes Segment bezieht,
oder irre ich mich ?

Ursprünglich verfolgte auch ich die Vorgehensweise was im anderen Thread 
bereits besprochen wurde,
und wollte somit das LEDDISPLAY an nur einem digitalen Pin
das Arduino Mega 2560 Rev. 3.0, betreiben.

Geht das überhaupt, denn insofern ich da die NPN-Transistoren zwischen 
schalte ?
(siehe dokumentiertes Bild), aus dem Anhang !

Müsste ich da auch noch diverse PNP-Transistoren in die Leitung 
reinbauen bzw. sind PNP-Transistoren nicht nur für eine Signalleitung 
welche ein "High" in Form von beispielsweise (+5V, eine Signalflanke, 
oder eben einer mit Spannung geladener Leitung), gedacht ?

Meine bisherige Denkensweise um das Problem zu bearbeiten war wie 
nachfolgend. Und das nur weil ich annahm, daß das komplette LEDDISPLAY 
nur
10mA benötigt !

Durch den Kollektor B eines PNP-Transistors
fließt doch somit ein gewisser Basisstrom (z.B 10mA) für den 
Gesamtaufbau dieses Stromkreislaufes der die LED mit einer Grundspannung 
versorgt und
dessen Spannung, welche der eigentlichen DER ZU STEUERNDEN am Kollektor 
C angeschlossenen NIEDRIGEREN SPANNNUNG dieses PNP-Transistors (z.B in 
einer gemultiplexten Leitung und bei der dargestellten letzten Ziffer 
mit nachfolgender NUMMER z.b 5 würden somit für diese ZAHL 5 somit 5 mal 
10 mA fällig, da diese Ziffern aus insgesamt 5 Segmenten am LEDDISPLAY 
dargestellt, wird.)
Man sollte im Hinterkopf die gesamte LEITUNG welche einer 
Multiplexleitung,
entspricht niemals ausser acht lassen,
denn das LEDDISPLAY benötigt lt. Datenblatt 10mA.

Ist das richtig oder ist das falsch ? Falsch schätze ich.

Weshalb kann es dann nicht richtig sein ?

Weil das LEDDISPLAY nur eine Anhäufung von mehreren einzelnen LEDs
(pro Ziffer) ist, welche immer 7 Segmente beinhaltet und entweder über
die Kathode pro darzustellender Ziffer
oder
die Anode pro darzustellender Ziffer, ist !

Erklärung:Bei meinem LEDDISPLAY handelt es sich um ein LEDDISPLAY 
welches
          über 4 Ziffernanzeigen verfügt und zudem auch noch
          Punkt-LEDs hat.
          Es trägt die Bezeichnung LC204VL und verfügt über rote LEDs,
          welche alle in einem LEDGEHÄUSE an den Anoden miteinander
          verbunden sind.
          Somit verfügt jede einzelne ZIFFERNANZEIGE über eine 
gemeinsame
          Kathode, worüber man jede einzelne pro darzustellender ZAHL 
von
          0-9 darstellen kann und auch einige Buchstaben wie z.B B oder 
C
          sind somit abbildbar.
          Wichtig hierbei ist zu beachten das eine Anode stets der +Pol
          einer LED ist und das somit jede Ziffer welche man auf dem
          LEDDISPLAY darstellen möchte durch die Aktivierung des 
jeweiligen
          Segmentes (a,b,c,d,e,f,g) in über den Stromkreis die Kathode 
was
          den -Pol jeglicher LED betrifft gesteuert wird, indem der
          Stromkreislauf geschlossen wird !
          Bei jeder LED handelt es sich stets um den + Pol wenn von der
          Anode, und um den - Pol insofern von der Kathode die Rede ist.
          Eine LED wird nicht leuchten, insofern die Polungen vertauscht
          sind !

Hier der Link zu meinem LEDDISPLAY und dort kann auch das Datenblatt 
erworben werden. --> 
http://www.pollin.de/shop/suchergebnis.html?S_TEXT=VC204VL&log=internal


Denkansporn: Man stelle sich vor man hat 10mA in der Versorgungsleitung,
             und möchte damit das LEDDISPLAY, zum leuchten bringen.
             An dieser Stelle ein kleiner Witz denn man wäre eventuell
             gut beraten insofern man sich eventuell einen
             RESTLICHTVERSTÄRKER, zulegt, denn entweder wird das sehr
             dunkel, oder man nimmt an etwas gesehen zu haben
             allerdings handelte es sich aber um eine Art Vorstellung,
             denn Superman hatte Restlichtverstärker und es handelte
             sich keinesfalls um Augen ? :)
             Die 10mA Spannung wird pro Segment und pro darzustellender
             Ziffer benötigt, womit also pro darzustellender ZAHL 8,
             alle 7 Segmente einer Ziffernanzeige des vierstelligen
             LEDDISPLAYS sowie nur der ersten Zahlendarstellung aktiv,
             wären.

Merke: Das sind 7 mal 10mA was alleine und minimal pro darzustellender
       Zahl auf den 4stelligen LEDDISPLAY benötigt werden !
       Da dieses LEDDISPLAY allerdings 4 Ziffern oder Zahlen darstellen
       kann und diese Option somit zu gewährleisten ist,
       gehe ich hier von 4 Zahlen mal 70mA Spannung aus was auch an
       Mindestspannung vorhanden sein muss da zumindest die Zahl 8888
       im äussersten Fall benötigt, da es sonst zu Spannungsdefizite
       kommt.
       Insofern noch irgendeine Punkt-LED wie es bei der Darstellung
       der nachfolgenden Zahl 888.8 der Fall wäre, so würden sogar noch
       einmal zusätzlich 10 mA an Spannung fällig !
       Insgesamt muss die Spannung also theoritisch bei der Zahl 888.8
       mindestens 290mA an Spannung, bereitstellen.

Vergleiche: Eine dargestellte 111.1 würde hingegen nur 90mA, eine
            dargestellte 0800 hingegen 250mA an Spannung erfordern.


Genau hier kommt der PNP-Transistor zum Einsatz !


Ein PNP Transistor verbindet über 3 unterschiedlischen Polungen

die Anschlusskennung B (Basisspannung, mittlerer Pin) mit
der an seiner Anschlusskennung C vorhandenen (kleineren Spannung eines 
Stomkreises und sendet über seine Anschlusskennung E das Ergebnis als 
Signal zurück an den (gemeinsame Pluspol +)

Somit gewährleitet ein PNP-Transistor an welchen wiederum pro 
unterschiedlich darzustellender Zahl und somit Spannungen
von 10mA bis einschließlich durch die eventuell höchstanliegende 
Spannung an seiner Anschlusskennung C, was den COLLECTOR beschreibt,
und maximal 70mA pro dargestellter Zeichen,Ziffer oder Zahl betragen 
kann,
stehts über seine Anschlusskennung E, was den EMITTER beschreibt,
wieder zurück in den Gesamtstromkreislauf und somit nur an den
GEMEINSAMEN PLUSPOL zurückgibt.
Die Basisspannung liegt also am EMITTER immer an und steuert somit die 
kleinere Spannung welche am COLLECTOR des gleichen PNP-Transistor 
anliegt.
Beide unterschiedlichen Spannungen fliesen dann über den EMITTER des 
gleichen PNP-Transistors zusammen und da die ursprünglichen in der 
Hauptversorgung wie aus obigen Beispiel genannte Hauptspannung somit 
290mA
betragen wird der am Basisanschluss (mittlerer PIN des PNP-Transistors) 
anliegende Strom die komplette höchstanzunehmende Spannung aufweisen 
insofern es sich um die Zahl am LEDDISPLAY um die dargestellte Zahl 
888.8
handelt.
Somit sind 5 PNP-Transistoren für die Darstellung einer 888.8 
erforderlich,
von diesen sich nur einer der 5 PNP-Transistoren für den Betrieb der 
Zeichendarstellung des KOMMAS von der letzten 8 auf dem LEDDISPLAY, und 
dessen COLLECTOR nur eine Höchstspannung von 10mA aufweissen sollte.


Insofern mein Beitrag hier richtig ist:

Kann man einen PNP-Transistor dann nur in die Spannungsleitung (+)eines 
Stromkreiselaufes hängen,
oder nutzt man PNP-Transistoren auch auf einer Masseleitung (-) ?

Welche Wiederstandswerte empfehlt ihr mir und wo sollten die eingebaut 
werden ?

Wie verhält es sich dann bei NPN-Transistoren, denn die habe ich derzeit 
auf dem Steckbrett bzw. sollte ich bei meinem Probeaufbau besser 
PNP-Transistoren pro Ziffer, einsetzen ?
(siehe Bild aus dem Anhang)

Kann ich Kollektor an irgendeinen NPN oder PNP-Transitor unter Umständen 
auch einmal unbelegt lassen bzw. sind stets alle Anschlüsse (B,C,E) 
eines Transistors zu belegen ?

Kann ich auch einen Massepin am C-Kollektor eines PNP oder eines 
NPM-Transistors anlöten bzw. sind PNP-Transistoren nur für 
Spannungsleitungen da der E-Kollektor stets der gemeinsame + Pol sein 
soll ?

Wie verhält sich die vorherige Frage bei NPN-Transistoren ?

Wäre es Möglich die benötigte Spannung von 290mA über 8 
Digitalausgangspins des Arduino Mega 2560 Rev.3 welcher lt. Datenblatt 
bis zu 40mA pro digitalen Ausgangspin hat, für die Gesamte Spannung um 
beispielsweise eine 888.8 auf den LEDDISPLAY erscheinen und auch noch 
steuern zu können ?

Wie hoch sollten die Wiederstände in der Ansteuerung des LEDDISPLAYS 
sein ?

Benötige ich für die Ansteuerung des KOMMAZEICHENS für die dargestellte 
888.8 nicht einen extra Wiederstand da hier doch nur höchstens 10mA, 
anfallen dürfen ?

Wäre nett insofern mit hier jemand Tips geben könnte !


Bis Bald !

: Bearbeitet durch User
von innerand i. (innerand)


Lesenswert?

Also am besten wäre es Sie machen folgendes:

Sie nehmen ihr Arduino und ihre LED-Anzeige, packen die in einen 
Schrank, machen ihn zu und erst wieder auf, nachdem Sie sich mit den 
Grundlagen von elektrischen Stromkreisen vertraut gemacht haben.

Zum Beispiel damit: 
http://www.elektronik-kompendium.de/sites/grd/index.htm

von Hilfe (Gast)


Lesenswert?


von Harald N. (haraldn)


Lesenswert?

Beitrag gründlich überarbeiten, Fehler suchen, anständig formulieren.
DANN werden diesen langen Text auch mehr Leute lesen...

von MN (Gast)


Lesenswert?

Kannst du dich bitte in einem Schaltplan kurz fassen?

von Hilfe (Gast)


Lesenswert?

(Vermutlich Troll)
Falls nicht:
Einige Probleme werden hier

http://popovic.info/html/arduino/arduinoUno_1.html  oder hier
http://macherzin.net/article25-Arduino-7-Segment-Anzeige

alle gelöst. Und Widerstand schreibt man mit "i".
Erst mal egal ob Arduino Uno oder Mega.

von Peter D. (peda)


Lesenswert?

Schaltplan als Text geht garnicht, mach ne Zeichnung.

Man mag es kaum glauben, aber man kann sogar mit Papier und Bleistift 
zeichnen, wenn man sich nicht in ein Schaltplanprogramm einarbeiten 
will.
Und nach dem Fotografieren nicht vergessen, es zu komprimieren.

von Hilfe (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Papier und Bleistift

Peter, bitte! Das ist ein µC Forum, kein Antiquariats Stammtisch!
Nimm das bitte ernst. Es geht hier um fundamentale Probleme von 
bedeutender Tragweite. Papier wäre, speziell hier, viel zu ungeduldig.

 ;-)

von m.n. (Gast)


Lesenswert?

Ich muß zugeben, Deinen Text nicht bis zum Ende durchgelesen zu haben. 
Mach es nicht zu kompliziert!

Die Anzeigen sind laut Datenblatt hoch-effizient und kommen schon mit 
ein paar mA zu einer hellen Erleuchtung. Ohne zu sehen, was sonst noch 
auf der Welt existiert, zeige ich Dir ein Beispiel für Schaltung und 
Programm, wie man Deine Anzeige im Multiplexbetrieb ansteuern kann. 
Neben der Anzeige sind nur noch die Strombegrenzungswiderstände für die 
Segmente und die Treibertransistoren für die Digits zur Ansteuerung 
wichtig. Der Rest ist Fleißarbeit. 
http://www.mino-elektronik.de/7-Segment-Variationen/LCD.htm#led4

von Norbert H. (lapster)


Lesenswert?

Irgendwie hoffe ich das du es gut meist um dein Wissen mit mir zu 
teilen, und lese derzeit --> 
https://www.elektronik-kompendium.de/sites/bau/0201291.htm

, weil ich diesen Post oben echt etwas zu lange gemacht habe.

Übrigens in den LINK wird auch eine meiner ursprüngliche Frageziele 
erklärt
welche um eine verständliche Erklärung und den unterschiedlichen 
Transistortypen (NPN und PNP) sowie deren Funktionsweisen und 
Einsatzgebiete geht,
da ich da nur mal gelesen hatte das ein Transistor des Types NPN am 
EMITTERANSCHLUSS
den gemeisamen Minuspol darstellt.

Was mir allerdings noch nicht klar ist da der NPN über 3 Anschlüsse 
(B=Basis,C=Collector, sowie eben schon oben erklärt, E=Emitter), 
verfügt.
ist der Umstand und vermutlich ist das mein Denkfehler,
Daß NPN-Transistoren somit über ihren Anschluss B,
keinen Strom führen können, insofern diese nur für den Minuspol (Masse) 
mit der Massebahn verbunden werden.
Kommt vermutlich von meinem KOSMOS-Baukasten und der beiligenden 
Anleitung auf der bei Seite 7 der NPN-Transistor etwas ausführlicher 
erklärt werden soll und ich zitiere:
                     Ein Transistor ist ein Stromverstärker mit drei
                     Anschlüssen.Ein kleiner Strom am
                     Basisanschluss B steuert einen größeren Strom am
                     Kollektor C. Der Emitter-Anschluss E ist der
                     gemeinsame Minus.Anschluss für den Basis
                     und den Kollektorstromkreis.

Genau dieses Zitat kann doch zweierlei bedeuten:

Insofern beim Basisanschluss B kein Strom anliegt weil dieser nur in 
einer Ground bzw. Masseleitung mit den Basisanschluss angeschlossen 
werden darf ?

oder eben weil

der NPN auch in einer Signalbahn (angenommen an einem digitalen Pin des 
Arduino) hängt,
und der Basisanschluss B mit dem Signalpin somit über diese Signalbahn 
ansteuert,
(bedenkt das der Arduino zwar 5Volt Spannung, jedoch nur bis zu 40mA je 
DIGITALPIN abführen kann !)
und somit auch wie im Zitat weiter oben die Aussage zutreffend wäre und 
welche da lautet:

                     Ein Transistor ist ein Stromverstärker mit drei
                     Anschlüssen.Ein kleiner Strom am
                     Basisanschluss B steuert .........usw.
und dann folgt

                     einen größeren Strom am
                     Kollektor C.

was wiederum für mich gleichgestellt wäre, das hier eventuell die 5Volt 
Versorgungspannen am Kollektor C angesteuert werden und das 
diesbezüglichst der Strom am Kollektor C also auch sehr viel an mA Strom 
haben darf ?

Das wäre doch Multiplexing und da das LED-Display pro Segment 15mA bei 
1ns als Maximalwert haben darf,
ist es doch eigentlich dann logisch, wenn somit der verbleibende Strom 
über den Massepin zunächst wieder über den Emitter-Anschluss eben dieses 
NPN-Transistors in die Groundleitung zurück geleitet wird ?

Grundsätzlich sollte vor dem Basisanschluss B doch dann mindestens ein 
Wiederstand sein, welcher (bei 7 mal 15mA) pro Zahl maximal 470 Ohm
(bei diesem LED-Display in der Anode pro DIGIT),
betragen darf, ehe bereits die absolut zulässige Stromgrenze bei 1ms 
aufgrund des Displays erreicht ist.
Ich würde da vermutlich noch den nächts grösseren Wiederstand wählen um 
die LEDs des LED-Displays mit etwas weniger Strom anzusteuern.
Das wirkt sich vermutlich nur geringfügig auf die Helligkeit aus.
Im sollte somit doch dann auch Collector-Stromkreis ein 
strombegrenzender Widerstand eingesetzt sein welcher ebenfalls 330Ohm 
oder eine Stufe darüber
liegt ?

: Bearbeitet durch User
von Norbert H. (lapster)


Lesenswert?

Danke erstmal für all die Infos,
aber meine Denkensweise war falsch denn eigentlich dachte ich das man 
NPN Transistoren stets nur mit den Basisanschluss an Masse- bzw. Ground,
sowie PNP-Transistoren stets nur mit den Basisanschluss auf + legen 
darf, aber ich wurde eines besseren belehrt.

Hir sind beide Funktionsweisen der unterschiedlichen Transistoren,
veständlich erläutert !

https://www.elektronik-kompendium.de/sites/bau/0201291.htm

Gruss:

Lapster

: Bearbeitet durch User
von Mike (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Und nach dem Fotografieren nicht vergessen, es zu komprimieren.

Und vor dem Photographieren nicht vergessen, scharf zu stellen und den 
Blitz so auszu richten, dass es keine direkte Reflexe gibt.

von Norbert H. (lapster)


Lesenswert?

innerand innerand schrieb:
> Also am besten wäre es Sie machen folgendes:
>
> Sie nehmen ihr Arduino und ihre LED-Anzeige, packen die in einen
> Schrank, machen ihn zu und erst wieder auf, nachdem Sie sich mit den
> Grundlagen von elektrischen Stromkreisen vertraut gemacht haben.
>
> Zum Beispiel damit:
> http://www.elektronik-kompendium.de/sites/grd/index.htm

Ja, danke für diesen informativen Link, denn da stehen auch die 
unterschiedlichen Funktionsweisen von NPN sowie PNP-Transistoren gut 
erläutert, beschrieben !

von Norbert H. (lapster)



Lesenswert?

Ich habe mich jetzt einigermasen in das Thema eingearbeitet,
weswegen ich nun auch eine Zeichnung im Eagleformat erstellt habe.

In meinem neuen Schaltplan benutze ich wie bereits am Anfang 
beschrieben,
die 4 stellige 7 Segmentanzeige von Pollin sowie
4 x NPN-Transistoren BC547B !

Beim Schaltplan bin ich mir allerdings noch nicht sicher ob diese so 
funktioniert,
da ich hier die NPN's so angesteuert habe dass diese die

PHYSIKALISCHE STROMRICHTUNG (von - nach +) bzw. Elektronenstrom, 
berücksichtigen.

Für die Berechnungen der Wiederstände nutzte ich die Technische 
Stromrechnungsgrundlagen, wäre allerdings dankbar insofern hier
nochmals jemand einige Blicke darauf werfen könnte.

Ich bin mir nicht sicher ob es richtig ist den BASISEINGANG der NPN mit 
der KATHODE des LED-Displays zu verbinden, aber nehme an das hier die 
Elektronen in den jeweiligen NPN am BASISEINGANG einfliessen ?

Insofern wäre der EMITTEREINGANG in Durchlassrichtung bei (mind. 0,7 
Volt)
geschalten, und der Grossteil (ca. 99 % der Elektronen) würden somit vom 
PLUSPOL des KOLLEKTORS angezogen!

Habe ich das richtig verstanden ?

Gruss:

Lapster

von Karl H. (kbuchegg)


Lesenswert?

Norbert Hümmer schrieb:

> weswegen ich nun auch eine Zeichnung im Eagleformat erstellt habe.

Normalerweise achten wir hier darauf, dass Zeichnungen nicht zu groß 
gepostet werden.

Aber sie dürfen schon so groß sein, dass man zumindest die Beschriftung 
der Bauteile ohne Lupe und Raten lesen kann.

von Norbert H. (lapster)



Lesenswert?

Karl Heinz schrieb:
> Norbert Hümmer schrieb:
>
>> weswegen ich nun auch eine Zeichnung im Eagleformat erstellt habe.
>
> Normalerweise achten wir hier darauf, dass Zeichnungen nicht zu groß
> gepostet werden.
>
> Aber sie dürfen schon so groß sein, dass man zumindest die Beschriftung
> der Bauteile ohne Lupe und Raten lesen kann.

Ja stimmt, ist mir eben auch aufgefallen und deswegen hier eine 
dokumentierte Zeichnung.

Gruss:

Lapster

von Karl H. (kbuchegg)


Lesenswert?

MIt der kann keiner was anfangen.

Dein PNG war schon ok. Aber achte beim nächsten mal darauf, dass du 
etwas größer aus Eagle raus exportierst.

Allerdings: auch wenn man nur die Hälfte in dem kleinen PNG erahnen 
kann, die ganze Transistor-Ansteuerung da im unteren Teil sieht ziemlich 
falsch aus.

> PHYSIKALISCHE STROMRICHTUNG (von - nach +) bzw. Elektronenstrom, 
berücksichtigen.

Quatsch.
In der ganzen Elektrotechnik und Elektronik tut man immer so, als ob der 
Strom von + nach - rinnt. Um Transistoren zu verbauen braucht man auch 
nicht mehr.
Ein NPN Transistor steuert auf, wenn in seine Basis Strom rein rinnt und 
über den Emitter wieder abrinnt. Mehr muss man nicht wissen.

von Norbert H. (lapster)


Lesenswert?

Karl Heinz schrieb:
> MIt der kann keiner was anfangen.
>
> Dein PNG war schon ok. Aber achte beim nächsten mal darauf, dass du
> etwas größer aus Eagle raus exportierst.
>
> Allerdings: auch wenn man nur die Hälfte in dem kleinen PNG erahnen
> kann, die ganze Transistor-Ansteuerung da im unteren Teil sieht ziemlich
> falsch aus.
>
>> PHYSIKALISCHE STROMRICHTUNG (von - nach +) bzw. Elektronenstrom,
> berücksichtigen.
>
> Quatsch.
> In der ganzen Elektrotechnik und Elektronik tut man immer so, als ob der
> Strom von + nach - rinnt. Um Transistoren zu verbauen braucht man auch
> nicht mehr.
> Ein NPN Transistor steuert auf, wenn in seine Basis Strom rein rinnt und
> über den Emitter wieder abrinnt. Mehr muss man nicht wissen.

Ok, aber die Elektronen fliessen doch vom Pluspol,
angenommenerweise um eine 8 im LED-Display darzustellen von der ANODE 
(+)
zur Kathode (-).

Somit liegt der Elektronenfluß doch an der Kathode, welche doch nun 
eigentlichen Stromkreislauf schliessen muss,
denn ansonsten kann doch die LED nicht leuchten, oder ?

Meine Bedenken sind hierbei nur ob hierbei ein NPN-Transistor wie der 
von mir genutzte BC-547 B geeignet ist,
bzw. ob man da nicht doch einen PNP-Transistor nutzt.

Ich erkläre mir das nachfolgendermasen:

Der NPN-Transistor (NPN = NEGATIV-POSITIV-NEGATIV) ?
Der PNP-Transistor (PNP = POSITIV-NEGATIV-POSITIV) ?

Beide Transistoren haben somit doch 3 unterschiedliche Anschlüsse welche 
aus

EMITTER
BASIS
COLLECTOR, bestehen.

Die mittlere Schicht wird als BASIS bezeichnet und ist im Gegensatz zu 
den beiden anderen Schichten nur sehr dünn.

Der EMITTERANSCHLUSS eines Transistors ist beim NPN-Transistor doch 
somit der GEMEINSAME MINUSANSCHLUSS des STROMKREISLAUFES und ist ab ca 
0,7 Volt in Durchlassrichtung geschaltet ?

Somit kommt ein pysikalischer Elektronenstrom UBE zustande, welcher in 
Sättigung grossteils durch den Kollektoranschluss des NPN und somit den 
PLUSPOL des KOLLEKTIVSTROMKREISLAUFES (+5 Volt), angezogen wird ?

Da nun beide Stromkreisläufe elektronentechnisch geschlossen sind,
fliesst doch somit der Gesamtstrom IC bzw. der Stromkreislauf beider
Ströme ist in sich geschlossen und die Basis-Emitterstrecke entspricht 
somit den elektrotechnischen MINUSPOL beider ?

Was mich allerdings etwas nachdenklich stimmt ist die Sache
weshalb ich am Basiseingäng jedes NPN-TRANSISTORS (am mittleren 
Bezeichner = POSITIV)
die KATHODE pro ZIFFERNANZEIGE der 4stelligen LED-Anzeige anschliesse.
Ob das so richtig ist kann ich nicht genau sagen, aber pysikalisch 
sollte es eigentlich korrekt sein.

Vielleicht liegt das aber auch daran weil eben dieses LED-Display über 
insgesamt 4 gemeinsamen Kathoden verfügt, für welche jeweils 1 Kathode 
pro Zifferndarstellung nötig, sind ?

Aber gerade deswegen sind es 4 NPN-Transistoren welche die Segmente A-G
pro Ziffer auf der Anzeige und deren Kathode mit einander verbinden da 
der Strom bei LEDs doch stets nur von der Anode (+) zur Kathode (-), 
fliesst ?

Anders ausgedrückt beim Stromkreislauf Uce handelt es sich um den 
Stromkreislauf von Digitalen Ausgang des Arduino bis hin zum 
Basisanschluss der jeweiligen NPN-Transistoren,
welche durch 430 OHM Wiederstände begrenzt wurden da diese LEDs nur 10mA 
aushalten !
Allerdings liegt somit auch eine Stromstärke von mindestens 0.7 Volt am 
Basisanschluss des NPNs an,
womit die BASIS-EMITTERSTRECKE des betroffenen NPN-Transistors
und des KOLLEKTIVSTROMKREISLAUFES in Durchlassrichtung EMITTER-BASIS 
sowie, BASIS-KOLLEKTOR, geschlossen werden ?

Der EMITTER ist somit der GEMEINSAME GROUNDANSCHLUSS und eigentlich 
wirkt das ganze auch noch als strombegrenzter Wiederstand, ist aber 
trotzdem durch die 330 Ohm + 10 Ohm in der +5 Volt Versorgungsspannung
an das LED-Display angepasst,
was allerdings das maximale an Stromstärke von 15mA dieses 
LED-Displayanzeige, betrifft.

Trotzdem Karl-Heinz ich werde da mal einen grösseren Plan aus dem Eagle 
anfertigen, und hoffe das du den dann nochmals durchsiehst.
Heute wird es aber leider nichts mehr damit.

: Bearbeitet durch User
von Norbert H. (lapster)



Lesenswert?

Hier die Zeichnung meines Schaltplans von den ich nun annehme daß man 
hoffentlich alle Bauteile erkennt.

Die anliegende Spannung an den Anschlüssen der NPNs sollen normalerweise 
0,4 und 0,7 Volt (je nach Halbleitermaterial) betragen,
und der Arduino Mega liefert lt. Datenblatt 5 Volt sowie max. 40mA pro 
Digitalen Ausgang.

Meine Frage hierzu:
Die 430 Ohm Wiederstände sind wahrscheinlich in der Anodenansteuerung 
pro Segment gleich nach dem jeweils betroffenen Ausgangspin anzuordnen.
Wenn das der Fall sein sollte, dann kann vermutlich der 430 Ohm 
Wiederstand am jeweiligen Kathodenausgang nach der Präzisionsfassung 
entfernt werden.
Somit beträgt die Stromstärke 0,0116279069767442 Ampere und entspricht 
der Angabe aus dem Datenblatt der LED-Anzeige von 10mA nicht exakt, 
sondern liegt leicht darüber.
Da es sich um eine gemultiplexte Leitung handelt,
sind hier laut Datenblatt zur LED-Anzeige bis maximal 15mA zulässig.

Die Basis muß also um 0,4 bis 0,7 Volt positiver als als der Emitter 
sein,
ansonsten sperrt der BC547 da die Schwellenspannung nicht erreicht wird.

SIEHE DATENBLATT BC547: 
http://www.pollin.de/shop/dt/OTIzOTY4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Transistoren/Transistor.html

Kann das jemand bestätigen ?

Gruß:

Lapster

von m.n. (Gast)


Lesenswert?

Norbert Hümmer schrieb:
> Somit beträgt die Stromstärke 0,0116279069767442 Ampere

Das würde ich noch einmal nachrechnen. Manchmal passieren bei solchen 
Ergebnissen kleine Fehler, die eine spätere Funktion völlig 
ausschließen.

von Karl H. (kbuchegg)


Lesenswert?

m.n. schrieb:
> Norbert Hümmer schrieb:
>> Somit beträgt die Stromstärke 0,0116279069767442 Ampere
>
> Das würde ich noch einmal nachrechnen. Manchmal passieren bei solchen
> Ergebnissen kleine Fehler, die eine spätere Funktion völlig
> ausschließen.

Jep.
Da fliessen dann schon mal auch 10 Elektronen zu viel und die 16.te 
Nachkommastelle stimmt nicht mehr.

von Karl H. (kbuchegg)


Lesenswert?

Nö.
Die Ansteuerung ist Quatsch.

* was soll die Präzisionsfassung da mitten drinn?
* alle Segmente einer Stelle teilen sich einen gemeinsamen Vorwiderstand
* aber auch nur unter der Voraussetzung, dass über die Fassung die
  Verbindung nach Masse hergestellt wird
* die Basen aller Transistoren sind alle an +, d.h. die NPN leiten
  d.h. du kannst da ja gar nicht die einzelnen Stellen zum Multiplexen
  ein und ausschalten. -> alle 4 Stellen zeigen immer das gleiche an.



>> PHYSIKALISCHE STROMRICHTUNG (von - nach +) bzw. Elektronenstrom,
> Ok, aber die Elektronen fliessen doch vom Pluspol,

Wenn wir schon von physikalischer Stromrichtung reden, dann rinnen die 
Elektronen vom negativen Potential zum positiven. Der - Pol einer 
Batterie ist deswegen -, weil dort ein Eletronenüberschuss herrscht und 
Elektronen ja eine neagtive Ladung tragen.

Aber: das interessiert Teilchenphysiker aber keine Elektroniker. Denn 
das ist nur eine Definitionsfrage, da alles symetrisch ist. Elektroniker 
definieren einfach: der Strom rinnt von + nach -

Aber. Wie Elektronen rinnen, ist völlig wurscht wenn es darum geht, wie 
man einen NPN einbaut. Das ist ein Detail, das man dazu nicht zu wissen 
braucht.

von m.n. (Gast)


Lesenswert?

Karl Heinz schrieb:
> Da fliessen dann schon mal auch 10 Elektronen zu viel

Man muß der Geschichte dankbar sein, noch auf Rechenschieber gelernt zu 
haben. Meine Sieber, Mathematische Tafeln, werde ich nicht entsorgen. 
Selbst wenn der Strom ausfällt oder in dunkler Nacht: diese Zahlen 
behalten ihren hohen Wert.

von Karl H. (kbuchegg)


Lesenswert?

m.n. schrieb:
> Karl Heinz schrieb:
>> Da fliessen dann schon mal auch 10 Elektronen zu viel
>
> Man muß der Geschichte dankbar sein, noch auf Rechenschieber gelernt zu
> haben.

Mich hat mein Lehrer in physikalischer Chemie (Teilzweig in der 
Chemieausbildung) darauf gedrillt. Hätte ich so ein Ergebnis 
hingeschrieben, dann hätte es 0 Punkte gegeben, selbst wenn der Rest 
inklusive Rechengang alles richtig gewesen wäre.
Sein Credo war immer: Wieso schreibst du Hornochse eine errechnete 
Temperatur mit 6 Nachkommastellen hin, wenn du auf dem 
Labor-Quecksilberthermometer sowieso nicht genauer als 1/100° ablesen 
kannst und selbst die nicht stimmen, weil du die ganze Apparatur nicht 
isoliert hast? Das der Taschenrechner (die gab es damals seit ein paar 
Jahren) dir 6 Stellen auswirft, ist kein Argument. Du musst ein wenig 
mitdenken, was du überhaupt messen kannst und was nicht und wie sinnvoll 
es daher ist, nicht messbare und irrelevante Stellen anzugeben.

Norbert: Denk mal drüber nach, wie sinnvoll es ist, 16 Nachkommastellen 
anzugeben, wenn deine Widerstände schon nicht genauer als 1% sind und 
auch die Transistoren Bauteilstreuungen haben.
Wir sind doch hier keine Goldschmiede. Milliampere sind genau genug.

: Bearbeitet durch User
von Norbert H. (lapster)


Lesenswert?

Karl Heinz schrieb:
> Nö.
> Die Ansteuerung ist Quatsch.
>
> * was soll die Präzisionsfassung da mitten drinn?

Die Präzisionsfassung nutze ich weil die LED-Anzeige so gut einpassbar 
ist.
Zudem existiert dieses LED-Display in keinen mir bekannten Layout und 
somit habe ich improvisieren müssen, selbstverständlich unter Beachtung 
der Stromverbindungsleitungen welche ich aus dem Datenblatt des 
LED-Displays bezog !

> * alle Segmente einer Stelle teilen sich einen gemeinsamen Vorwiderstand

Danke für diesen Tip, aber die Wiederstände sind ok oder sollte ich 
statt der 430 Ohm besser andere, benutzen.
430 Ohm sollten doch pro Segmentansteuerung vor der Anode, ausreichen, 
oder ?

> * aber auch nur unter der Voraussetzung, dass über die Fassung die
  Verbindung nach Masse hergestellt wird

Ja genau, über die Präzisionsfassung und somit pro gemeinsamer Kathode 
je Zifferndarstellung des LED-Displays und womit es 4 Kathoden wären.
Die Dezimalstellen des LED-Displays werden in dem Schaltplan nicht 
berücksichtigt, da sie nicht benötigt werden.

> * die Basen aller Transistoren sind alle an +, d.h. die NPN leiten
  d.h. du kannst da ja gar nicht die einzelnen Stellen zum Multiplexen
  ein und ausschalten. -> alle 4 Stellen zeigen immer das gleiche an.

Kann ich das nicht in einem Programm bzw. Sketch per Programmierung des 
Arduino erledigen, indem ich das jeweils betroffene Bit auf LOW oder 
HIGH stelle ?

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Norbert Hümmer schrieb:
> Karl Heinz schrieb:
>> Nö.
>> Die Ansteuerung ist Quatsch.
>>
>> * was soll die Präzisionsfassung da mitten drinn?
>
> Die Präzisionsfassung nutze ich weil die LED-Anzeige so gut einpassbar
> ist.

Schön.
Die hat dann aber im Schaltplan nichts verloren.
Das ist ein Aufbaudetail, dass du anstelle die Anzeigen direkt in die 
Platinen einzulöten, erst mal eine Fassung in die Platine lötest und 
dort dann die Anzeigen reinsteckst. Für den Schaltplan ist das 
irrelevant und verwirrt mehr als es nützt.

von m.n. (Gast)


Lesenswert?

Karl Heinz schrieb:
> Norbert: Denk mal drüber nach, wie sinnvoll es ist, 16 Nachkommastellen
> anzugeben, wenn deine Widerstände schon nicht genauer als 1% sind und
> auch die Transistoren Bauteilstreuungen haben.

Und es ja letztlich nur um eine 4-stell. Anzeige geht :-)

von Karl H. (kbuchegg)


Lesenswert?

Norbert Hümmer schrieb:

> aber die Wiederstände sind ok oder sollte ich

Widerstand, mit kurzem i

wieder ... noch einmal
wider  ... entgegen

> statt der 430 Ohm besser andere, benutzen.

Kommt auf die Anzeige an. Was sagt der Hersteller wieviel Strom er sich 
pro LED so vorstellt?

Bei normalen LED kann man von ca. 15mA bis 20mA ausgehen.
Da aber gemultiplext werden soll, muss man höher gehen. Theoretisch das 
4-fache davon, weil es ja 4 Stellen sind. Die einzelne Stelle muss in 
der kurzen Zeit in der sie brennt, ja so hell brennen, dass das mittel 
aus der Hell-Phase und der Dunkelphase wieder der Helligkeit bei ca. 
15mA entspricht.

D.h. ich würde in dem Fall mal einen Strom von so ca. 40 bis 50mA 
anstreben.

430 sind da viel zu viel.

> 430 Ohm sollten doch pro Segmentansteuerung vor der Anode, ausreichen,
> oder ?

Leuchten werden sie. Die Frage ist: wie hell.
Wobei: die meisten LED sind bei 15mA sowieso schon recht hell. D.h. man 
muss nicht auf das 4-fache dieser 15mA gehen. Daher auch 40 bis 50 und 
nicht 60mA. Im Zweifel musst du ausprobieren. Das hängt auch davon ab, 
wie die Anzeige verbaut ist. Draussen im Sonnenlicht sieht die Sache 
anders aus wie im Zimmer in einem Gehäsue verbaut mit einer entsprechend 
gefärbten Plaxiglas-Abdeckung davor.

Aber 430 sind definitiv zu hoch. Wenn du rechnest wird irgendwas in der 
Größenordnung von vielleicht 50 bis 100 Ohm rauskommen.

>> * aber auch nur unter der Voraussetzung, dass über die Fassung die
>   Verbindung nach Masse hergestellt wird
>
> Ja genau, über die Präzisionsfassung

tu sir selbst einen Gefallen und wirf die Fassung aus dem Schaltplan 
raus. Du verrennst dich da jetzt grauslich.


> Kann ich das nicht in einem Programm bzw. Sketch per Programmierung des
> Arduino erledigen

wie willst du das den machen, wenn die Basen aller Transistoren auf eine 
gemeinsame Leitung führen?

von Norbert H. (lapster)


Lesenswert?

m.n. schrieb:
> Karl Heinz schrieb:
>> Norbert: Denk mal drüber nach, wie sinnvoll es ist, 16 Nachkommastellen
>> anzugeben, wenn deine Widerstände schon nicht genauer als 1% sind und
>> auch die Transistoren Bauteilstreuungen haben.
>
> Und es ja letztlich nur um eine 4-stell. Anzeige geht :-)

Welche Wiederstände kannst du mir da empfehlen ?

Gruss:

Lapster

von Norbert H. (lapster)


Lesenswert?

Karl Heinz schrieb:
> m.n. schrieb:
>> Karl Heinz schrieb:
>>> Da fliessen dann schon mal auch 10 Elektronen zu viel
>>
>> Man muß der Geschichte dankbar sein, noch auf Rechenschieber gelernt zu
>> haben.
>
> Mich hat mein Lehrer in physikalischer Chemie (Teilzweig in der
> Chemieausbildung) darauf gedrillt. Hätte ich so ein Ergebnis
> hingeschrieben, dann hätte es 0 Punkte gegeben, selbst wenn der Rest
> inklusive Rechengang alles richtig gewesen wäre.
> Sein Credo war immer: Wieso schreibst du Hornochse eine errechnete
> Temperatur mit 6 Nachkommastellen hin, wenn du auf dem
> Labor-Quecksilberthermometer sowieso nicht genauer als 1/100° ablesen
> kannst und selbst die nicht stimmen, weil du die ganze Apparatur nicht
> isoliert hast?

Kleiner Scherz zum Isolationsmaterial, dafür ist die Präzisionsfassung 
im Bauplan vorhanden, aber die stöhrt echt leicht weswegen ich Selbige 
vom Bauplan demnächst verbannen, werde. :D um das Werk hier nochmals 
ohne dieser Fassung präsentieren zu können.

 Das der Taschenrechner (die gab es damals seit ein paar
> Jahren) dir 6 Stellen auswirft, ist kein Argument. Du musst ein wenig
> mitdenken, was du überhaupt messen kannst und was nicht und wie sinnvoll
> es daher ist, nicht messbare und irrelevante Stellen anzugeben.
>
> Norbert: Denk mal drüber nach, wie sinnvoll es ist, 16 Nachkommastellen
> anzugeben, wenn deine Widerstände schon nicht genauer als 1% sind und
> auch die Transistoren Bauteilstreuungen haben.
> Wir sind doch hier keine Goldschmiede. Milliampere sind genau genug.

ok dann wären das 0,01 Ampere (in etwa) oder wenn dann ca. 10mA ;)

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

Norbert Hümmer schrieb:
> m.n. schrieb:
>> Karl Heinz schrieb:
>>> Norbert: Denk mal drüber nach, wie sinnvoll es ist, 16 Nachkommastellen
>>> anzugeben, wenn deine Widerstände schon nicht genauer als 1% sind und
>>> auch die Transistoren Bauteilstreuungen haben.
>>
>> Und es ja letztlich nur um eine 4-stell. Anzeige geht :-)
>
> Welche Wiederstände kannst du mir da empfehlen ?

Du kennst Herrn Ohm?
Du kennst das Ohmsche Gesetz?

Dann rechne.
(Es wird irgendwas in der Größenordnung von vielleicht 50 bis 100 Ohm 
rauskommen. Was du dann nimmst, wirst du ausprobieren, so dass die 
Helligkeit angenehm ist)



Damit das Elend ein Ende hat, so (Bild) funktioniert das grundsätzlich 
mit den NPN. An der Anodenseite der Anzeigen wirst du noch 
Treiber-Transistoren brauchen, weil die Arudino-Pins keine 50mA da rein 
schicken können. Wenn du dich mit ca. 20mA pro Segment zufrieden gibst, 
kannst du die Segmentleitungen auch direkt an den Arduino anschliesen. 
Aber dann wird es wahrscheinlich schon arg dunkel werden und auch dann 
sind 460Ohm noch viel zu hoch.

: Bearbeitet durch User
von Norbert H. (lapster)


Lesenswert?

Karl Heinz schrieb:
> Norbert Hümmer schrieb:
>
>> aber die Wiederstände sind ok oder sollte ich
>
> Widerstand, mit kurzem i
>
> wieder ... noch einmal
> wider  ... entgegen
>
>> statt der 430 Ohm besser andere, benutzen.

OK, ich werde das beachten !

>
> Kommt auf die Anzeige an. Was sagt der Hersteller wieviel Strom er sich
> pro LED so vorstellt?

Pro LED sind lt. Datenblatt 10mA gewährleiset. Das kann allerdings beim 
MULTIPLEXEN bis zu 15mA tolerieren, insofern ich mich da im Datenblatt 
nicht verguckt habe.

Hier kann man das Datenblatt 
herunterladen:http://www.pollin.de/shop/dt/OTUxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LED_Anzeige_ROHM_LC_204VL_4_stellig_rot.html
>
> Bei normalen LED kann man von ca. 15mA bis 20mA ausgehen.
> Da aber gemultiplext werden soll, muss man höher gehen. Theoretisch das
> 4-fache davon, weil es ja 4 Stellen sind. Die einzelne Stelle muss in
> der kurzen Zeit in der sie brennt, ja so hell brennen, dass das mittel
> aus der Hell-Phase und der Dunkelphase wieder der Helligkeit bei ca.
> 15mA entspricht.
>
> D.h. ich würde in dem Fall mal einen Strom von so ca. 40 bis 50mA
> anstreben.

Pro Digitalen I/O-Pin des Arduino Mega 2560 Rev.3 sind höchstens 40mA.
>
> 430 sind da viel zu viel.
>
>> 430 Ohm sollten doch pro Segmentansteuerung vor der Anode, ausreichen,
>> oder ?
>
> Leuchten werden sie. Die Frage ist: wie hell.
> Wobei: die meisten LED sind bei 15mA sowieso schon recht hell. D.h. man
> muss nicht auf das 4-fache dieser 15mA gehen. Daher auch 40 bis 50 und
> nicht 60mA. Im Zweifel musst du ausprobieren. Das hängt auch davon ab,
> wie die Anzeige verbaut ist. Draussen im Sonnenlicht sieht die Sache
> anders aus wie im Zimmer in einem Gehäsue verbaut mit einer entsprechend
> gefärbten Plaxiglas-Abdeckung davor.

Wäre denkbar.

>
> Aber 430 sind definitiv zu hoch. Wenn du rechnest wird irgendwas in der
> Größenordnung von vielleicht 50 bis 100 Ohm rauskommen.
>
>>> * aber auch nur unter der Voraussetzung, dass über die Fassung die
>>   Verbindung nach Masse hergestellt wird
>>
>> Ja genau, über die Präzisionsfassung
>
> tu sir selbst einen Gefallen und wirf die Fassung aus dem Schaltplan
> raus. Du verrennst dich da jetzt grauslich.
>
>
>> Kann ich das nicht in einem Programm bzw. Sketch per Programmierung des
>> Arduino erledigen
>
> wie willst du das den machen, wenn die Basen aller Transistoren auf eine
> gemeinsame Leitung führen?

Im SKETCH selbst indem man den Strom fliesen lässt indem man die 
jeweilige Kathode der betroffenen Ziffernanzeige kurzzeitig auf LOW oder 
HIGH setzt, ein DELAY im Programmablauf einbaut, da die Transistoren 
doch somit als Schalter aggieren ?

Hier ein kleines Beispiel meiner Vorstellung:

Das LED-Display soll die 4stellige Zahl "4444" darstellen !

Somit wären die Pins am Arduino für nachfolgende Segmente des 
Led-Displays zu aktivieren:
Segment b,c,f, sowie g (insgesamt 4 Segmente pro gemeinsamer Kathode)

Aber zurück zur Zifferndarstellung "4444" !
Das wären somit pro Ansteuerung 40mA (welche der Arduino pro Digitalen 
I/O-Pin, raus lässt ?
Das LED-Display verträgt pro LED (wie im Beispiel die Zahl "4" = 4 
Segmente pro dargestellter Ziffer und entspricht somit 40mA)

Bedenken gibts da allerdings bei einer Zifferndarstellung von 
beispielsweise "8888", aufgrund der Helligkeit, da jedes Segment wovon 
es bei dieser Zifferndarstellung bereits doppelt soviele wären.

Die eigentliche Ansteuerung würde doch somit vom NPN-Transistor 
übernommen, da der Kollektivstromkreislauf (also die Kathode pro Ziffer 
im Beispiel "4"), darzustellen wäre ?
Regelbar über das Programm indem man den Groundpin zur Darstellungszeit 
ein HIGH bzw. der Segmentansteuerung ein LOW, gibt ?

Denkbar wäre es doch auch den kompletten Stromkreislauf Ic vorab auf 
HIGH zu setzen,
sodass zum Beispiel das LED-Display die Ziffer "8888" darstellt,
und je nach benötigter anderen Zifferndarstellung wie z.B 1234,
das jeweils betroffene Segment durch dessen Ansteuerungspin im Programm,
ein LOW oder auch ein HIGH zu geben, um zu de/aktivieren ?

Steuerbar sollte es per SKETCH schon sein, allerdings nur ohne 
Vorwiederstände und dann vermutlich auch noch sehr in der Helligkeit, 
eingeschränkt, oder ?

Theoretischerweise sollten die Transistoren so auch funktionieren da der 
BASISANSCHLUSS so als auch der EMITTERANSCHLUSS stehts in Sättigung 
liegen und auch der KOLLEKTOR des jeweils betroffenen NPN somit den 
Basisstromkreis Ube mit den Kollektivstromkreis Uce verbinden würde ?

: Bearbeitet durch User
von Bjojon (Gast)


Lesenswert?

Ich habe keine Ahnung was SKETCH ist.

Der prinzipielle Ablauf ist aber wie folgt:

1. Du steuerst die Segmente des Displays an, indem du die 
Segmetleitungen auf High legts.
2. Du schaltest das ganze Display an, indem du die gemeinsame Kathode 
auf Masse legt. Dies erreichst du durch Einschalten des Transistors, 
also High an dessen Basis.
3. Du schaltest den Transistor wieder aus und beginnst bei der nächsten 
Ziffer wiedern bei 1.

Der ganze obige Prozess wird dauerhauft durchlaufen. Jedes Display ist 
damit nur 1/4 der gesamten Zeit an, durch die Trägheit des Auges sieht 
man das aber nicht (wenn die Ansteuerung schnell genug ist).

Wenn alle Transistoren dauerhaft an sind, kannst du immer nur 4x die 
gleiche Zahl darstellen, was irgendwie nutzlos wäre.

Du brauchst also (wie im Schema von Karl Heinz gezeigt) 7 Leitungen zur 
Ansteuerung der Segemente und zusätzlich 4 Leitungen zur Ansteuerung der 
einzelnen Displays.

Sorry, aber du denkst viel zu kompliziert. Der Transistor ist (stark 
vereinfacht) nichts weiter als ein Schalter, der nur einschaltet 
(Stromfluss vom Collector zum Emitter) wenn ausreichend Strom von der 
Basis zum Emitter fließt.

von Norbert H. (lapster)


Lesenswert?

Bjojon schrieb:
> Ich habe keine Ahnung was SKETCH ist.

Sketch, so nennt man die Programme welche beim Arduino mit dabei sind
um diverse Programmabläufe zu vermitteln.
Die werden dann per Software auf dem Microcontroller raufgeladen,
und sind dann im EEPROM und können somit benutzt werden.

>
> Der prinzipielle Ablauf ist aber wie folgt:
>
> 1. Du steuerst die Segmente des Displays an, indem du die
> Segmetleitungen auf High legts.
> 2. Du schaltest das ganze Display an, indem du die gemeinsame Kathode
> auf Masse legt. Dies erreichst du durch Einschalten des Transistors,
> also High an dessen Basis.

Am Basiseingang eines jeden NPN-Transistors, liegen im Schaltplan auch 
die 5 Volt des Mega 2560 Rev. 3, an.
Der Emitteranschluss eines jeden NPN-Transistors, liegt auf MASSE und 
ist am GROUND des Mega 2560 Rev. 3 angeschlossen.
Der Kollektor eines jeden NPN-Transistors liegt immer an der 
Kathodenleitung einer betreffenden Zahl im LED-Display.

NPN 1 liegt mit seinem Kollektoranschluss an der Kathode der ersten 
Zahlendarstellung des LED-Displays.

NPN 2 liegt mit seinem Kollektoranschluss an der Kathode der zweiten 
Zahlendarstellung des LED-Displays.

NPN 3 liegt mit seinem Kollektoranschluss an der Kathode der dritten 
Zahlendarstellung des LED-Displays.

NPN 4 liegt mit seinem Kollektoranschluss an der Kathode der vierten 
Zahlendarstellung des LED-Displays.

Jeder dieser NPN-Transistoren steuert somit jeweils ein Zahlenfeld im 4 
stelligen LED-Display !

Die Sättigungswerte der Transistoren habe ich allerdings nicht beachtet,
da die Transistoren alle durchgeschalten sind, weil diese somit 
angeblich schneller schalten sollen !
Allerdings birgt das auch einen Nachteil weil die Abschaltzeit somit 
höher ausfällt.
Dem kann aber Abhilfe geschaffen werden, indem man eine BAT85, 
Schottky-Diode zwischen Basis und Kollektor, schaltet.

Danke für diesen Hinweis, da ich noch nicht genau sicher war welche I/O 
PINS des Arduino ich genau auf HIGH,
und welche auf LOW geschaltet werden müssen verstehe das aber ungefähr 
so wie nachfolgend:

Möchte ich zB. im LED-Display die ersten beiden Zahlen jeweils einer "0" 
darstellen, so muss ich die Anode für nachfolgende Segmente aktivieren:
Segment a,b,c,d,e und Segment f ?

Diese Segmente werden dann per Software auf einen "HIGHPEGEL" des 
entsprechenden digitalen Ausgangsport am Arduino gesetzt.
Danach brauche ich nur noch die Kathode der jeweils betroffenen Ziffer,
wovon ich w.o die ersten beiden ansprach,
auch auf HIGH setzen bzw. mit dem digitalen Ausgangspin,
oder muß ich da dann erst die Segmentausgänge auf einen "LOWPEGEL", 
setzen was die Logik betrifft ?

Muß ich hierfür eigene Pullup bzw. Pulldown-Wiederstände einbauen,
oder läßt sich das per den im Arduino Mega 2560 Rev.3 verbauten
Pullup bzw. Pulldown-Wiederständen, erledigen.

Insofern die internen PULLUP bzw. PULLDOWN-Wiederstände am Mega 2560 
genutzt werden,
könnte eine Neuberechnung der strombegrenzenden Wiederstände zustande 
kommen, da die Pullup bzw. Pulldown-Wiederstände des Arduino Mega 2560 
Rev.3 intern lt. Datenblatt 20k-50kOhm, betragen ?

Mehr dazu hier: 
https://www.elektronik-kompendium.de/public/schaerer/pullr.htm

> 3. Du schaltest den Transistor wieder aus und beginnst bei der nächsten
> Ziffer wiedern bei 1.

Zunächst sollte da aber doch noch ein Delay erfolgen,
oder eignet sich da eine Interruptroutine mit den Mega 2560 Rev.3 ?
Funktionieren die Interuptroutinen beim Mega 2560 Rev.3 genauso wie die 
Beschreibungen auf der Arduino-Homepage,
weil da nur was von Arduino DUO-Board steht,
wobei der Mega 2560 Rev.3 aber auch 6 Interupt lt. Herstellerseite 
bedienen, kann ?

>
> Der ganze obige Prozess wird dauerhauft durchlaufen. Jedes Display ist
> damit nur 1/4 der gesamten Zeit an, durch die Trägheit des Auges sieht
> man das aber nicht (wenn die Ansteuerung schnell genug ist).

Brauche ich da eine Art Taktfrequenz bzw. wird die im Programm fest 
gesetzt ?

>
> Wenn alle Transistoren dauerhaft an sind, kannst du immer nur 4x die
> gleiche Zahl darstellen, was irgendwie nutzlos wäre.

Ist das dann also nicht der Fall,
insofern die betroffene Kathode ein logisches "LOW" so als auch das 
Segmentansteuerungspin ein logisches "LOW", erhalten kann ?

Ich nahm an, wenn man die Zifferndarstellung zuvor in der Software 
richtig zu deklarieren hat,
(eventuell per einer Art Codetabelle) und vielleicht in nachfolgenden 
Gruppierungen von TAUSENDERN, HUNDERDERN, ZEHNERN, EINERN, aufrufen 
kann, denn dann könnte man damit die unterschiedlichen Segmentpins
auf den benötigten Zustand (in diesem Fall LOW) schalten,
um die unbenötigten Segmente zunächst im Programm zu deaktivieren,
da doch der NPN-Transistor durchgeschaltet ist ?

Mehr dazu hier: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige#Codetabelle

Klar muss die Kathodenleitung jeder Ziffer stehts mit dem Groundpin am 
Mega 2560 Rev.3 eingeschaltet bzw. logisch high haben,
aber insofern muss doch somit nicht unbedingt auch jedes Segmentpin in 
einer Gruppe diesen Zustand einnehmen ?

So dachte ich zumindest,
aber ansonsten stimmt das allerdings, denn es würden sich alle Zahlen 
des LED-Displays zum gleichen Zeitpunkt verändern,
deren Kathode sozusagen auf Masse, liegt oder eben deren Ground ein 
logisches "High" hat, oder was eventuell durch einem Aufruf im Programm 
geschied oder undeklariert ist !
Ist das denn nicht möglich ?

>
> Du brauchst also (wie im Schema von Karl Heinz gezeigt) 7 Leitungen zur
> Ansteuerung der Segemente und zusätzlich 4 Leitungen zur Ansteuerung der
> einzelnen Displays.

Somit sind es dann aber doch 7 Ausgangspins pro dargestellter Zahl im 
LED-Display oder ich habe echt keine Ahnung was Multiplexen (jedes 
einzelne Segment dieser 7 Segmente teilen sich eine Leitung), denke ja
weil doch jedes der 7 digitalen Ausgangspin am Mega 2560 Rev. 3
für jeweils 1 Segment (a,b,c,d,e,f,g) zuständig ist ?
Jeder der 4 NPN-Transistoren ist zur Laufzeit immer durchgeschältet,
um jede der 4 Kathodenleitungen des 4stelligen LED-Displays mit dem 
Ground Pin am Mega 2560 Rev.3 zu verbinden, denke ja
wäre das nicht so bzw. würde der Groundpin und somit die Kathodenleitung 
der einsprechenden Zahl per Programm auf LOW gesetzt, so würde keine 
einzige LED der betroffenen Zahl erleuchten, und ich würde das 
vermutlich noch nicht einmal mitbekommen da der Betrieb in einer 
gemultiplexten Leitung stattfindet und ich ein Mensch bin welche 
bekanntlichermasen über Trägheitsaugenlicht verfügen. ;)
Wichtig dabei ist doch eigentlich nur welche dieser Segmente zum 
Zeitpunkt des Geschehens aktiv HIGH oder eben inaktiv LOW ist, wenn 
ich das so verstehen darf ?
Und das wiederum ist doch mit den PULLDOWN bzw. PULLUP-Wiederständen im 
Programm deklarierbar, oder ?

Danke deiner Info einiges war mir noch nicht so geläufig !
Sobald ich den Schaltplan korrigiert habe,
(diesmal ohne Präzisionsfassung für das 24 polige Led-Display)
gibts ein Update ! ;)

>
> Sorry, aber du denkst viel zu kompliziert. Der Transistor ist (stark
> vereinfacht) nichts weiter als ein Schalter, der nur einschaltet
> (Stromfluss vom Collector zum Emitter) wenn ausreichend Strom von der
> Basis zum Emitter fließt.

OK aber eine habe ich noch und zwar:
Gibt es beim BC547 (NPN-Transistor)
irgendwelche Spannungsgrenzen zu beachten gibt da ich bereits mehrere 
Male etwas über 0,6-0,8 Volt gelesen habe,
auch aus dem Grund ob es da zulässig ist eine Spannung von 5 Volt am 
Basisanschluss drauf zu geben ?
Ich habe da einmal etwas darüber gehört das sich am BASISANSCHLUSS
ein kleiner Strom befinden soll, welcher einen grösseren Strom
am Kollektor steuert ?
Der Kollektivstrom Ic fliesst aber erst insofern die 
Basis-Emitterstrecke, geschlossen ist ?
In meinem Schaltplan eben +5V am Basisanschluss und der Emitteranschluss 
auf MASSE oder eben am Groundpin.

Gruss:

Lapster

: Bearbeitet durch User
von Takao K. (takao_k) Benutzerseite


Lesenswert?

Also dass ist ja schon fast eine Doktorarbeit. Allzu interessant sind 
diese 7segs jedoch nicht und extra Bauteile brauchst du nicht (zumindest 
mit PIC, weiss ich nicht ob dies auch mit AVR geht).

Einfach zufaellig das Display mit dem Kontroller verbinden, und dann die 
Pinbelegung in Software kodieren.

Geht ganz gut and durchbrennen tut da nichts.

Wer braucht den all die extra ICs und Wiederstaende und am besten gleich 
ne' Doktorarbeit? 
http://www.mino-elektronik.de/7-Segment-Variationen/LCD.htm#led4

Source code gibts hier (allerdings leider nicht auf deutsch)
http://aranna.altervista.org/dragonsnest/microcontroller-projects/led-dot-matrix-scrolling-message-14x5-source-code/

laesst sich auch fuer 7segs anwenden. Schaltplan nicht erforderlich, da 
die Zuordnnung der pins mit Tabellen vorgenommen wird.

von Norbert H. (lapster)


Lesenswert?

Takao K. schrieb:
> Also dass ist ja schon fast eine Doktorarbeit. Allzu interessant sind
> diese 7segs jedoch nicht und extra Bauteile brauchst du nicht (zumindest
> mit PIC, weiss ich nicht ob dies auch mit AVR geht).
>

PIC habe ich schon etwas darüber gelesen und ich nutzte aus dem Grund 
den Arduino Mega 2560 in der Rev.3 weil es eine günstige Alternative 
ist, zumal es auch viele Shields gibt.
Hier aber eine Seite welche sich sehr intensiv mit PIC beschäftigt --> 
http://www.sprut.de/electronic/pic/index.htm

Ich guck mir den Link von dir mal an und danke dafür !

> Einfach zufaellig das Display mit dem Kontroller verbinden, und dann die
> Pinbelegung in Software kodieren.

Zufällig geht ja mal gar nicht, zumal man enentuell Vorwiederstände 
berechnen muss.
Da passiert es dann mal schnell das die LEDANZEICHE zwar leuchtet, aber 
nur ganz ganz kurz weil sie danach vielleicht das zeitliche segnet ?!

>
> Geht ganz gut and durchbrennen tut da nichts.

Kommt sicherlich auf die Spannungsquelle an.
Um das LED-Display welches im Normalbetrieb pro LED 10mA bis maximal 
15mA nutzt,
sollte das schon funktionieren denn der Mega 2560 liefert pro Digitalen 
I/O-Pin höchstens 40mA und das LED-Display leuchtet dann eben nicht hell 
bzw. genug, oder ?

Denkbar wären es eventuell die 7 Segmente pro Zahl somit auf eventuell 2 
Digitalen Ausgängen am Mega 2560 zu legen da pro dargestellten Zahl 
(angenommen  die "8") somit alle 7 Segmente pro Zahl aktiv wären,
was also 7 mal 10mA. bedeuten würde.

Das heisst allerdings auch das insofern die Zahl "8888" auf dem 
LED-DISPLAY steht, laut Datenblatt
eine Gesamtstromstärke von insgesamt 70mA mal 4 Zahlen bereitstehen 
sollte, und entspricht somit
mindestens 280mA !
(beim Betrieb vom maximal 15mA), wird es dann eben noch einiges mehr !
>
> Wer braucht den all die extra ICs und Wiederstaende und am besten gleich
> ne' Doktorarbeit?
> http://www.mino-elektronik.de/7-Segment-Variationen/LCD.htm#led4

Bei mir liegt der Hauptaspeckt auf die NPN.Transistoren, da man diese 
insofern die richtig angeordnet sind als sozusagen automatische 
Schaltstufen einsetzen kann, und "Doktorarbeit" wird sicherlich nicht 
dafür fällig sein, sondern vielmehr ein technisches Grundkenntnis !
Den Link hier guck ich dann mal an, eventuell ist das ein Denkanreiz und 
trägt zu meinem Vorhaben bei ! Danke !

> Source code gibts hier (allerdings leider nicht auf deutsch)
> 
http://aranna.altervista.org/dragonsnest/microcontroller-projects/led-dot-matrix-scrolling-message-14x5-source-code/
>
> laesst sich auch fuer 7segs anwenden. Schaltplan nicht erforderlich, da
> die Zuordnnung der pins mit Tabellen vorgenommen wird.

Interessant geh ich gleich mal beaugapfeln ! ;)

Gruss:

Lapster

: Bearbeitet durch User
von Takao K. (takao_k) Benutzerseite


Lesenswert?

Naja vielen Dank fuer den detaillierten Kommentar mit Zitaten.

Zufaellig bedeutet halt dass die Verbindung zu einzelnen pins beliebig 
sein kann, per software wird dann die Pinbelegung des Displays, sowie 
jedes einzelne bit in Tabellen definiert.

Ich hab mich halt irgenwann mal an einen Taschenrechner mit 7seg display 
errinert und da waren gar keine Wiederstaende drin, also warum welche 
verwenden?

Vielleicht einfach mal mit Atmel chip ausprobieren, mit 3 volt, und 
vorsichtig testen mit 5 volt, und beobachten ob sich irgenwas 
ueberhitzt. Schlimmestenfalls ist es halt ein chip + Display welche du 
abschreiben kannst. Mir war es das risiko wert, und funktioniert 
einwandfrei.

Kurzschlussstrom ist so ca. 60 bis 70mA aber jedes digit ist ja nur 1/4 
der Zeit angeschaltet.

von Norbert H. (lapster)


Lesenswert?

Ok, aber ich sprach genau von diesem LED-Display hier --> 
http://www.pollin.de/shop/dt/OTUxOTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LED_Anzeige_ROHM_LC_204VL_4_stellig_rot.html

Kannst dir ja mal das Datenblatt durchgehen es ist dort auch, 
downloadbar !

Ja beindruckend was ich da im Video sah ! Ist aber auf einer Dotmatrix, 
oder ?
Schätze klar das man das auch auf 7-Segmentanzeigen realisieren kann. 
Nur das was ich damit realisieren möchte sind unterschiedliche 
Fluganzeichen, welche
von Microsoft Flight Simulator 10 im virtuellen Cockpit auf dem Monitor 
erscheinen, sozusagen in einem virtuellen Nachbau (das man 
beispielsweise im Hobbyraum aufbaut), umzusetzen.
Zum Beispiel die Heading-Anzeige oder die unterschiedlichen Radios, usw. 
!


Gruss:
Lapster

: Bearbeitet durch User
von Norbert H. (lapster)


Angehängte Dateien:

Lesenswert?

Hier das versprochene Update meines Schaltplans
zur Ansteuerung der 4stelligen LED-7 Segmentanzeise von Pollin !

Nähere Infos am Anfang dieses Threats, und der im Schaltplan
verwendete NPN-Transistor ist der BC547 B

Als Vorwiederstände für die einzelnen SEGMENTE (a-g) nutzte ich
220 Ohm, damit ist die zulässige Stromstärke pro LED von maximal 15mA
nicht ganz erreicht, sodaß man pro LED in etwas zwischen 12mA - 13 mA 
liegt.

Desweiteren habe ich die Verlustleistung Ptot des BC547B berücksichtigt,
sodaß auch die maximal zulässigen Werte der LEDs von 42mW nicht 
überschritten werden können weil dies
zum einen bereits durch den 220 OHM Vorwiederstand an
die LED angepasst sein sollte,
und der BC547B einen Ptot von 0,5 W, aufweist.
Ptot=Wert den der Transistor maximal verkraftet, bevor er durchbrennt), 
allerding frage ich mich mit wen ? ;)
Eigentlich könnte man leicht die doppelte Anzahl
solcher LOW-CURRENT LEDs damit ansteuern,
und er hätte immer noch Luft bevor er zu schwitzen beginnt.

In der Zuleitung VCC (+5V) habe ich nun einen Wiederstand von 1 KOhm 
reingeschaltet welcher eigentlich meiner Meihnung nicht zwingend
notwendig wäre, da der überschüssige Strom am BC547B,
so oder so abfällt.

Insofern ich da keinen Wiederstand in die Versorgungsspannungsleitung
oder eben einen anderen Wiederstand einbauen sollte,
wäre ich für einen Hinweis mit eventueller Begründung, dankbar.

Gruss:

Lapster

: Bearbeitet durch User
von Takao K. (takao_k) Benutzerseite


Lesenswert?

Schon ein sehr kompliziertes Display.
Allerdings da du nur 24pins hast, ist es schon gemultiplext.

Die Transistoren sind ansatzweise schon richtig, allerding muessen diese 
einzeln angesteuert werden.

Wiederstaende na ja, wenns nachher noch hell genug ist, wenn jedes 
segment nur 1/4 der Zeit an ist?

von Karl H. (kbuchegg)


Lesenswert?

Norbert Hümmer schrieb:
> Hier das versprochene Update meines Schaltplans
> zur Ansteuerung der 4stelligen LED-7 Segmentanzeise von Pollin !

Welchen Teil des Schaltungsausschnittes, den ich gepostet habe, hast du 
nicht verstanden?

Schau dir mal deine Transistoren an und dann vergleiche mal, wie ich sie 
eingezeichnet habe.

Sorry. Aber noch mehr geht wirklich nicht. Da müsste ich dann jetzt 
schon zu dir hinfahren und dir das zusammenlöten. Bischen mehr Sorgfalt! 
Wenn du beim Programmieren auch so schlampig bist, na dann gute Nacht. 
Jede einzelne Basis kommt (über den Widerstand) an jeweils einen 
Arduino-Pin! Der Arduino muss mithilfe des Transistors genau EINE der 4 
Anzeigen einschalten können!

: Bearbeitet durch User
von Norbert H. (lapster)


Lesenswert?

Karl Heinz schrieb:
> Norbert Hümmer schrieb:
>> Hier das versprochene Update meines Schaltplans
>> zur Ansteuerung der 4stelligen LED-7 Segmentanzeise von Pollin !
>
> Welchen Teil des Schaltungsausschnittes, den ich gepostet habe, hast du
> nicht verstanden?
Hier der Schaltungsausschnitt deines Posts ! --> 
http://www.mikrocontroller.net/attachment/210914/seven_seg.png

Was meinst du mit den beiden links im Bild aufgeführten Anschlüssen 
welche
in deinem Bild mit "Auswahl der Stelle", vom Basisanschluss des 
NPN-Transistors in Richtung PIN gehen ?
Der Basisanschluss (POSITIV bei NPN )sowie der Emitteranschluss (NEGATIV 
bei NPN) ?
Insofern also diese Basis-Emitterstrecke der NPN nicht geschlossen ist 
(NPN-Transistor liegt nicht in Sättigung, sondern der NPN ist durch 
geschaltet !),
fliesst doch kein Kollektorstrom, was die pysikalische Stromrichtung in 
welcher der Strom von - nach + rinnt, bei mir leicht für Verwirrung 
sorgte, aber vermutlich nur weil der Pfeil von der Basis wegzeigt und 
von mir fälschlicherweise aufgefaßt wurde,
da ich die beiden grünen (nach den Wiederstand am Basisanschluss der 
NPNs
nicht genau zuordnen konnte.
Genau aus diesem Grund liegt in meinem letzten Schaltplan eben dieser 
Basisanschluss des NPN-Transistors an der Versorgungsspannung +5V, da 
die Transistoren somit durchgeschalten sind weil die Basis (+) und der 
Emitter gemeinsame Masse (also -), entspricht.
Erst diese Tatsache erlaubt das der Kollektorstrom in Richtung des 
Emitters, bzw. gemeinsamen Masseanschluss in Durchlassrichtung die 
beiden Stromkreisläufe, miteinander vereint
und somit der Digatalimpuls welcher das jeweilige Segment einer Ziffer 
in der betroffenen LED steuert, mit Masse vereint und an den Groundpin 
weiterleitet.

Den Rest sollte man somit im Programm erledigen können.
Beispielsweise mit delay millis das jeweils die betroffene LED durch 
ein LOW oder eben High am zuständigen PIN de/aktiviert ?

Eventuell fehlen da aber dann doch noch 7 PNP-Transistoren in der 
Segmentansteuerung ?

: Bearbeitet durch User
von Dieter K. (geige_d)


Lesenswert?

Um auch nur die Hoffnung auf erfolgreichen Abschluß dieses Projektes 
entwickeln zu können solltest Du 2 Dinge vollständig verstanden haben: 
Die Arbeitsweise eines Transistors und das Prinzip des Multiplexens. 
Vorher brauchst Du nicht mal an Software oder Gesamt-Schaltpläne zu 
denken, das ist reine Zeitverschwendung!

1. Transistor
In Deinem Fall mußt Du Dich nur um den reinen Schaltbetrieb kümmern. Die 
Basis-Emitter-Strecke ist der Steueranschluss, die 
Kollektor-Emitter-Strecke ist die "geschaltete Leitung".
Anstatt nun endlose philosophische Abhandlungen über deren Arbeitsweise 
zu verfassen solltest Du Dir lieber ein Steckbrett hernehmen und eine 
einfache Transitorschaltung aufbauen: 1 Transistor schaltet 1 LED. 
Basiswiderstand und LED-Vorwiderstand nicht vergessen.
Lege die Basis auf Plus und schau was passiert, lege die Basis auf Masse 
und schau was dann passiert. Probiere dies sowohl mit einem NPN- wie 
auch mit einem PNP-Transistor. Besorge Dir ein Multimeter und messe und 
notiere jedesmal die resultierenden Spannungen an den einzelnen 
Transistoranschlüssen - und kapiere sie!
Wenn das soweit klar ist kannst Du diese einfache Schaltung auch mal 
scherzhalber an ein Arduino-Pin hängen und dann per Softawre damit 
"klappern".

2. Multiplexen
Das brauchst Du weil der Arduino nicht genügend Pins für alle 4x8 
LED-Segmente sowie weitere 4 für die gemeinsamen Kathoden der Anzeige 
hat. Also muß man die vier Stellen nach und nach mit dem gewünschten 
Segmentcode ansteuern und gezielt über die gemeinsame Kathode der 
jeweiligen Stelle durchschalten. Dann wieder abschalten und mit der 
nächsten Stelle das gleiche Spiel. Und wieder die nächste. Usw. und so 
fort, immer reihum nach und nach und das schnell genug damit es dem Auge 
so scheint als würden alle 4 Stellen gleichzeitig leuchten.
Eben nicht alle gleichzeitig einschalten. Nicht alle Transitorbasen 
gleichzeitig auf Plus hängen, sondern getrennt und nacheinander 
ansteuern! Genau dies ist der Punkt an dem Karl Heinz gerade 
verzweifelt.
Dieses "Nacheinander" wird später die eine Aufgabe Deiner Software sein. 
Die andere liegt darauf basierend darin zu jedem Zeitpunkt den 
erforderlichen Segmentcode zu erzeugen und ans Display anzulegen.

Und bitte - gewöhne Dir endlich an "Widerstand" mit einem kurzen i zu 
schreiben. Ich bin kein Rechtschreibfanatiker, aber in einem 
Elektronik-Forum immer wieder von "Wiederständen" lesen zu müssen sind 
Nadelstiche ins Auge jedes Elektronikers.

von Norbert H. (lapster)


Lesenswert?

Hier erkennt man beispielsweise was bei dem LED-Display die Folge ist,
insofern es mit nahezu den Grenzwerten von 15 mA (entspricht 
Datenblattangaben), angesteuert wird.

Bemerkung zum Video:

Es sind nur die SEGMENT-LED (a-g) , der einzelnen Ziffern angesteuert 
woraus sich nachteiliges Erscheinungsbild ergibt und man eventuell 
annehmen könnte,
daß auch diverse PUNKT-LEDS angesteuert sind,
obwohl das im Video nicht der Fall ist !

Schlussfolgend wäre man besser beraten, die Widerstandswerte des 
KOLLEKTORSTROMES so zu wählen damit zumindest beim LED-DISPLAY keine
unerwünschten Nebenerscheinungen (siehe Video), auftreten.

http://www.file-upload.net/download-9054652/VIDEO0012.3gp.html

Gruss:

Lapster

von Karl H. (kbuchegg)


Lesenswert?

Wie, zum Henker, spielt man eine 3gp Datei ab, ohne sich vorher 25 
Codec-Libraries installieren zu müssen?
Und warum musst du ein Video auf einem externen Hoster ablegen? 750k für 
ein Video sind auch im Forum verschmerzbar. Ein Video ist ja 
schliesslich kein Bild, bei dem 750k pure Verschwendung für nichts sind. 
In einem Video kriegt man ja was für seine 750k.

von Karl H. (kbuchegg)


Lesenswert?

Gleich vorweg: Ich hab dein Video nicht gesehen, weil mir das zu blöd 
ist, für jeden der meint wieder mal ein ungebräuchliches Dateiformat 
benutzen zu müssen, mir extra etwas downzuloaden

> unerwünschten Nebenerscheinungen (siehe Video), auftreten.

Nebenerscheinunngen?
Welche Nebenerscheinungen. Mit den Vorwiderständen wird die Anzeige als 
ganzes dunkler oder heller. Nebenerscheinungen gibt es dabei nicht. Wenn 
doch irgendwas auftritt, dann hast du schlicht und ergreifend einen 
Fehler in der Programmierung.

von MaWin (Gast)


Lesenswert?

Norbert Hümmer schrieb:
> Im Datenblatt des LEDDISPLAYS steht das dieses mit 10mA Spannung im
> durchschnittlichen Betrieb arbeitet !

Ja, darauf sind die Helligkeitsangaben ausgelegt.

Norbert Hümmer schrieb:
> Den Aspeckt das der Arduino Mega 2560 in der Revision 3.0 pro Digitalen
> Pin zwar 5 Volt liefert,
> aber pro DIGITALEN PIN nur (bis zu) 40mA hergibt,

Nein, wenn du es irgendwie schaffst, 40mA aus ihm herauszuholen oder 
reinzustecken geht er kaputt. Er selbst liefert freiwillig maximal 20mA.

Norbert Hümmer schrieb:
> und wollte somit das LEDDISPLAY an nur einem digitalen Pin
> das Arduino Mega 2560 Rev. 3.0, betreiben.

Wie, das GANZE Display mit seinen 36 LEDs ?

Norbert Hümmer schrieb:
> Allerdings sind Spitzenströme bei dem LEDDISPLAY von 15mA zulässig,
> und dann steht da noch etwas von 1ms,

Nö, 60mA, kannst du kein Japanisch ?

Norbert Hümmer schrieb:
> Ist das richtig oder ist das falsch ?

Keine Ahnung, versuche Schaltpläne mal als Pläne und nicht als Prosa.

Norbert Hümmer schrieb:
> 10 mA an Spannung

Bitte, 10mA sind immer noch ein Strom und keine Spannung.

Norbert Hümmer schrieb:
> Wie hoch sollten die Wiederstände in der Ansteuerung des LEDDISPLAYS
> sein ?

Um den Spitzenstrom auf 40mA zu begrenzen. Da du allerdings vermutlich 
nicht gleich ein funktionierendes Programm hinbekommst, wäre es ok, erst 
mal auf 15mA zu begrenzen, damit es auch nicht kaputt geht, wenn eine 
LED dauerhaft leuchtet.

Du kannst das Display so an den Arduino anschliessen
1
        +---------------+
2
 -100R--|a              |
3
 -100R--|b              |
4
 -100R--|c  4-stellige  |
5
 -100R--|d  7-Segment   |
6
 -100R--|e  Anzeige     |
7
 -100R--|f  mit 5mA     |
8
 -100R--|g              |
9
 -100R--|d.p.           |
10
        +---------------+
11
          |   |   |   |
12
 --220R--|<   |   |   |
13
          |E  |   |   |
14
 --220R---(--|<   |   |   
15
          |   |E  |   |
16
 --220R---(---(--|<   |   BC337
17
          |   |   |E  |
18
 --220R---(---(---(--|<
19
          |   |   |   |E  
20
          +---+---+---+-- Masse
das reicht für einen mittleren Strom von 5mA pro Segment.

Oder so
1
         +--+--+--+--+--+--+--+-- +5V
2
         |  |  |  |  |  |  |  |E
3
 --120R--(--(--(--(--(--(--(-|< PNP BC557
4
 --120R--(--(--(--(--(--(-|<  |      +-------------------+
5
 --120R--(--(--(--(--(-|<  |  +-47R--|a                  |
6
 --120R--(--(--(--(-|<  |  +----47R--|b                  |
7
 --120R--(--(--(-|<  |  +-------47R--|c    4 x 8 LED     |
8
 --120R--(--(-|<  |  +----------47R--|d     Matrix       |
9
 --120R--(-|<  |  +-------------47R--|e    mit 10mA      |
10
 --120R-|<  |  +----------------47R--|f   (2V/LED)       |
11
         |  +-------------------47R--|g                  |
12
         +----------------------47R--|h                  |
13
                                     +-------------------+
14
                                       |   |   |   |   |
15
 --120R-------------------------------|<   |   |   |   |
16
                                       |E  |   |   |   | 
17
 --120R--------------------------------(--|<   |   |   | 
18
                                       |   |E  |   |   | 
19
 --120R--------------------------------(---(--|<   |   |
20
                                       |   |   |E  |   | 
21
 --120R--------------------------------(---(---(--|<   |
22
                                       |   |   |   |E  | 
23
 --120R--------------------------------(---(---(---(--|<  BC337
24
                                       |   |   |   |   |E
25
                                 GND --+---+---+---+---+
dann ist das Display hell, geht aber vielleicht kaputt wenn du einen 
Programmfehler machst.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Karl Heinz schrieb:
> Wie, zum Henker, spielt man eine 3gp Datei ab, ohne sich vorher 25
> Codec-Libraries installieren zu müssen?

Ach Du bist also derjenige.
Ich hatte neulich gehört, es soll wirklich noch jemanden geben, der 
nicht den VLC-Player benutzt.

von Norbert H. (lapster)


Lesenswert?

Danke zunächst Mavin für deine Hilfsbereitschaft ich habe das 
LED-Display am Laufen, habe auch ähnliche Wiederstände hierfür genutzt.
Für die Segment-Leds (a-g) nutzte ich 168 Ohm, und für die einzelnen 
Kathoden nutzte ich 330 Ohm.

Die 5 Volt VCC wurden nicht benötigt !

Habe da ein kurzes Video dafür gemacht, welches leider auch wieder im 
.gp3-Format vorliegt.
Den VLC-Player brauche ich aber zum anschauen der .gp3-Formate nicht, 
bei mir öffnet die der Windows Media Player, anstandslos !

Die Helligkeit stimmt so auch ganz gut !

Hier das Video zum Download:
http://www.file-upload.net/download-9460172/VC204-Counter-LED.3gp.html

Gruss:
Lapster

von Matrix (Gast)


Lesenswert?

Kauf die ein vernünftiges LED Modul und steuere es mit SPI an. Dann 
spart man sich das dämliche Strippenziehen, lernt was vernünftiges und 
muss nicht das Rad von grundauf neu erfinden und auch noch selbst 
bauen...

Solche Module gibts beim freundlichen Chinesen:

http://www.ebay.de/itm/161073447250?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

von m.n. (Gast)


Lesenswert?

Matrix schrieb:
> Kauf die ein vernünftiges LED Modul und steuere es mit SPI an.
>
> Solche Module gibts beim freundlichen Chinesen:

Warum denn immer gleich zum Chinesen rennen?
Das verlinkte Modul hat nur 4 Stellen und macht auch nicht mehr als 
diese Schaltung Beitrag "7-Segm.-LED-Anzeige, 6-stellig, statische Ansteuerung mit (74HC)4094" mit 
immerhin 6 Stellen. Damit kann man sogar 100 x mehr anzeigen: 999999

Aber einen Spruch aus dem Link werde ich mir als exklusives 
Qualitätsmerkmal hinter die Ohren schreiben: "Arduino Compatible"
Besser geht es nicht!

von Matrix (Gast)


Lesenswert?

Das verlinkte Modul ist auch prima. Sieht aber so aus als könne man es 
nicht fertig kaufen. Ist Dir bewusst, wie lange das Posting sein wird, 
wenn der Fragesteller dann ein Problem bei der Umsetzung des Selbstbaues 
hat ;-)

von Norbert H. (lapster)


Lesenswert?

Hallo nochmals sowie läuft bereits,
gucki da --> diesmal sogar in .mpeg Dateiformat und Full HD-Auflösung 
aber deswegen auch nahezu 30 MB groß!

Downloadlink:
http://www.file-upload.net/download-9530087/LEDCOUNTER_0-1000.mpg.html

Benutztes Material:

1x LC204VL
4x BC559C PNP Kleinleistungstransistoren
4x 1 kOhm Drahtwiederstände
7x 470 Ohm Drahtwiederstände

Jetzt noch eine Frage:

Kann ich zur Ansteuerung von LEDs bzw. dem LC204VL auch MOS 4056 sowie 
MOS 4054 nutzten für BCD ?

Gruss:

Lapster

von Norbert H. (lapster)


Lesenswert?

Hier der laufende Code für den Arduino Mega 2560 Rev. 3
Es handelt sich um einen Zähler welcher von 0-1000 hochzählt. Der Zähler 
läuft in einer Endlosschleife, beginnt also immer wieder automatisch mit 
dem zählen von 0-1000.
Die ersten 3 Ziffern werden optimal dargestellt (Einer, Zehner, sowie 
Hunderter) aber die Tausenderstelle steht noch aus.
Es wäre nett insofern das jemand mal mit der Tausenderstelle ergänzen 
könnte,
sodass der Zähler von 0 bis 10000 zählt !

Der Code umfasst auch KOMMENTARE (gezeichnet durch // was ich bisweilen 
analysieren konnte sowie durch Umsetzung nachvollzogen habe)
Wäre nett wenn das mal jemand ergänzen, sowie erläutern könnte.
1
long prev,prev2;                      //2 globale uninitierte Variablen d. Types long (4Bytes) zur Nummernspeicherung namens prev sowie prev2
2
boolean off=false;                    //initierte globale Variable d. Types boolean welche zwei Werte umfassen kann jedoch hier mit (0) initiert wird und dem Wert "false", aufweißt !
3
int wert;                             //uninitierte globale Variable mit den Namen wert
4
int transistorpin1=28;                //Pinbelegung f. Einer vor 1 KOhm Wiederstand und dann am B-Anschluss des zuständigen PNP-Transistors
5
int transistorpin2=29;                //Pinbelegung f. Zehner vor 1 KOhm Wiederstand und dann am B-Anschluss des zuständigen PNP-Transistors
6
int transistorpin3=30;                //Pinbelegung f. Hunderter vor 1 KOhm Wiederstand und dann am B-Anschluss des zuständigen PNP-Transistors
7
int transistorpin4=31;                //Pinbelegung f. Tausender vor 1 KOhm Wiederstand und dann am B-Anschluss des zuständigen PNP-Transistors
8
int pin[]= {41,42,43,44,45,46,47};    //Pinbelegung für Segmentanoden a-g
9
//abcdefg
10
int pin_len= 7;                     //globale Variable welche mit den Wert 7 (für die 7 Segmente (a,b,c,d,e,f,g)), konfiguriert und initiert wird.
11
int pin_taster=13;                  //globale Variable welche mit den Wert 13 (für die Segmente), konfiguriert und initiert wird (Wichtig bei PWM) !
12
int helligkeit;
13
14
//Zweidimensionales Array welches 11 Reihen und 7 Werte f. die jeweils zu //aktivierenten Segmente a-g, umfasst
15
//Ein zweidimensionales ARRAY wird erstellt dessen erste [Spalten] und //dessen zweite [Zeilen], umfasst.
16
//Wichtig hierbei ist daß man mindestens die Werte der zweiten [Zeilen] //angibt, besser jedoch sind beide [].
17
//Wichtig sind auch die Blockangaben welche am Anfang mit { { und am Ende //mit }};
18
//Werte innerhalb dieser { {Block1,Block2,Block3}}; werden durch Kommas, //getrennt. 
19
//Möchte man nun über die loop-Funktion(welche widerum einer Endlosschleife //vom Typ while entspricht), auf diese internen Werte zugreifen,
20
//so geschied das nur über die unterschiedlichen Indexangaben des Arrays //sowie dessen Werte insofern die Werte wie hier
21
//globale Werte, sind !
22
23
//MERKE: Der ARRAYINDEX beginnt immer bei 0 (NULL) so entsprechen die //Angaben im Array segmente hier den Wahrheitswerten
24
//der jeweils zu aktivierenten SEGMENT-LEDs der Zahlendarstellung von 0-999 //des LED-Displays, weil dieses ARRAY aus insgesamt
25
//11 Zeilen mit jeweils 7 Werten von 1 (für TRUE) bis 0 (für FALSE), //besteht!
26
27
//Hier ein Beispiel:
28
//Um wie w.o den zweiten Wert der ersten Spalte im ARRAY und in der ersten //Zeile des ARRAYS auszulesen
29
//welcher zB. Block2 lauten könnte,
30
//würde man nun über die Angabe im Programm nachfolgenden Befehl in die //(loop-Schleife) schreiben,
31
//und auf dem Serial Monitor betrachten können.
32
//Dies würde aber nur einen Rückgabewert beinhalten wenn dieses Array zuvor //global deklariert sowie auch mit Werten initiert
33
//worden wäre.
34
35
//Serial.println(Name_des_global_declarierten_sowie_initierten_Arrays[0][1]); (mit Zeilenumbruch)
36
//oder
37
//Serial.print(Name_des_global_declarierten_sowie_initierten_Arrays[0][1]); (ohne Zeilenumbruch)
38
39
//Im nachfolgenden Array betreffen die Angaben aber nur die 0 oder 1, weil //diese Angaben wiederum den Wahrheitswerten
40
//false = 0 oder true = 1 wiedergeben, und dieses Array vom Typ int ist, //welches nur Rückgabewerte von Zahlen erlaubt.
41
42
int segmente [11][7] ={
43
{1,1,1,1,1,1,0},
44
{0,1,1,0,0,0,0},
45
{1,1,0,1,1,0,1},
46
{1,1,1,1,0,0,1},
47
{0,1,1,0,0,1,1},
48
{1,0,1,1,0,1,1},
49
{1,0,1,1,1,1,1},
50
{1,1,1,0,0,0,0},
51
{1,1,1,1,1,1,1},
52
{1,1,1,1,0,1,1},
53
{0,0,0,0,0,0,0}};//LED-Display aus
54
55
//Hier wird das Array vom Typ int und den Variablennamen segmente2 mit insgesamt 11 Zeilen sowie den Binärangaben der
56
//zu de-/aktivierenden Segment-LEDs der LEDANZEIGE deklariert und initiert !
57
//Da Binärcode immer in 1 Byte überträgen wird, kommt hier das MSB (most significant Bit) und das LSB (last significant Bit)
58
//ins Spiel
59
//Ein Byte besteht immer aus 8 Bit und pro durchlaufener Arrayschleife werden die Zahlen von 0-9 an der LEDANZEIGE
60
//nachfolgendermasen dargestellt:
61
//Führende NULL-BIT-ANGABEN dürfen hierbei auch weggelassen werden, der Erklärung wegen sind diese jedoch hier auch aufgeführt.
62
//Binärcode sollte beim Arduino stets mit B(und den 8bit) geschrieben werden wie nachfolgend im Array segmente2 und
63
//dessen ersten Wert hier B01111110
64
//liest man diese erste Angabe nun von links nach rechts so ergibt sich nachfolgende Struktur
65
//B0(weil 1Byte und somit Bit1 = WERT 0) +111111(und Bit2 bis einschliesslich Bit7 segmente a,b,c,d,e,f = WERT 1)
66
// +0(weil somit Bit8 was das segment g =WERT 0) benennt, die jeweiligen Segment-LEDs am Display durch
67
//den int-Wert 0 bzw. 1, wiederum aus-/anschaltet.
68
//Der Aufruf des Serialmonitors wäre durch die Programmzeilen
69
//Serial.println(segmente2[0][0]); (mit Zeilenumbruch)
70
//oder
71
//Serial.print(segmente2[0][0]); (ohne Zeilenumbruch)
72
//machbar
73
74
int segmente2 [11] ={
75
B01111110,
76
B00110000,
77
B01101101,
78
B01111001,
79
B00110011,
80
B01011011,
81
B01011111,
82
B01110000,
83
B01111111,
84
B01111011,
85
B00000000};
86
87
//Bis hier her werden alle globalen Variablen, Arrays usw. zu a.) //deklariert = (der Variablentyp, sowie der Variablenname)
88
//wird global im Programm zugewiesen d.h das zB. eine deklarierte Variable //vom Variablentyp int, nur einen Zahlenwert zurück gibt,
89
//während eine globale Variable vom Variablentyp boolean einen //Wahrheitswert zurück gibt.
90
91
//MERKE:
92
//TRUE bedeuted soviel wie 1 bzw. (zu Deutsch = WAHR) und
93
//FALSE bedeuted soviel wie 0 bzw. (zu Deutsch = FALSE)!
94
95
//Ab hier (void setup) werden nur grundliegende Sachen geschrieben da //dieser Teil
96
//bis (loop) nur einmalig beim einschalten des Microcontrollers, //durchlaufen werden.
97
void setup()
98
{
99
  pinMode(transistorpin1,OUTPUT);            //Die globale Variable transistorpin1 welche für den PIN 28 am Arduino deklariert
100
  pinMode(transistorpin2,OUTPUT);            //und den Basisanschluss des PNP-Transistors zuständig ist, wird hier als Ausgang
101
  pinMode(transistorpin3,OUTPUT);            //deklariert. Das geschied mit allen PINS welche die Basisanschlüsse eines der betroffenen
102
  pinMode(transistorpin4,OUTPUT);            //PNP-Transistors schalten, und umfasst die betroffenen PINS 28,29,30 sowie 31,
103
  pinMode(pin_taster,INPUT);                 //wie w.o deklariert und initiert ! Pin_taster wird hier als Eingabepin deklariert,
104
  digitalWrite(pin_taster,HIGH);             //und wurde bereits w.o mit dem Wert 13 global, initiert ! Hiermit wird es ermöglicht,
105
  Serial.println(digitalRead(pin_taster));   //die internen PULLUPWIDERSTÄNDE des Arduinoboards zu de-/aktivieren ! HIGH = AKTIV und LOW = nicht AKTIV
106
    for (int i=0; i<pin_len;i++)             //eine ZÄHLSCHLEIFE mit der LOKALEN VARIABLE i und den WERT 0 wird lokal deklariert und initiert,
107
    {                                        //und sollte diese lokale Variable i kleiner als die globale Variable pin_len mit dem Wert 13 sein,
108
    pinMode(pin[i],OUTPUT);                  //so wird diese {BLOCKANWEISUNG} mit i++ übersprungen, ansonsten entspricht der jeweils betroffene
109
    ansteuerung(10);                         //transistorpin1,2,3 oder eben 4, den Ausgabepin des anzusteuernden PNP-Transistors.
110
    Serial.begin(9600);                      //legt die Baudrate 9600 zwischen Arduino und Computer fest !
111
    prev=millis();                           //Gibt die Zeit in Millisekunden seit Programmstart zurück. Wenn der Programmstart bereits 50 Tage beträgt,
112
    }                                        //dann beginnt dieser Zähler erneut von 0 Millisekunden ! (Siehe dazu die globale Variable prev2) !
113
}
114
//ab hier (void loop) wird das Programm ständig wiederholt. Hierbei handelt //es sich um eine endlose while-Schleife welche ständig
115
//wiederholt wird. Der Ausdruck loop ist deswegen nirgens wo anders im //Programm zulässig da es sich
116
//um eine reservierte und interne Methode, handelt.
117
//Hier dürfen jedoch eigene Schleifen erstellt werden, worauf jedoch //speziell auf die
118
//einzelnen {BLOCKANGABEN},
119
//geachtet werden sollte ! 
120
//(ANWEISUNGEN),
121
//stehen hierbei stets in runden Klammern !
122
123
void loop()
124
{
125
  Serial.println(analogRead(8));              //liest den Wert des 10bit Analog/Digital-Wandlers des Arduino Mega 2560 Rev3. und wandelt diesen Wert
126
  Serial.println(digitalRead(pin_taster));    //in einem analogen Wert von bis zu 5 Volt in ein Analogsignal von 0-1023 um. Fuer PWM, nötig !
127
128
  if (digitalRead(pin_taster)!=1)             //wenn der zu lesende digitale PIN 13 (pin_taster) ungleich des Wertes 1 (bzw. TRUE), entspricht
129
    {
130
    if ((millis()-prev2)>500)                 //wenn die Millisekunden abzüglich der globalen LONGint (prev2) insgesamt über den Wert 500 (0,5 Sekunden)
131
      {                                       //liegt, sollte auf dem Serialmonitor das Wort "aus" erscheinen.
132
      Serial.println("aus");
133
      anzeige(-1);
134
      off=!off;                              //Die globale booleane Varible off nimmt den lokal zugewiesenen Wert !off an und die globale Variable prev2
135
      prev2=millis();                        //nimmt den Wiedergabenwert in Millisekunden an, was global die Gleichung des Vergleichs prev = prev2 und
136
      }                                      //umgekehrt ergibt, da w.o durch Angabe if ((millis()-prev2)>500) dieser Wert auf 0,5 Sekunden begrenzt wurde
137
    }
138
  else
139
    {
140
    if ((millis()-prev)>1000)
141
      {
142
      wert=random(1,100);
143
      helligkeit=analogRead(8);
144
      wert=map(helligkeit,0,1000,0,999);
145
      if (helligkeit=1000)
146
      wert=999;
147
      Serial.println(analogRead(8));
148
      prev=millis();
149
      }
150
    if (off!=1)
151
    for (wert=0;wert<1000; wert++)
152
    anzeige(wert);
153
    }
154
}
155
 
156
void anzeige(int zahl)
157
  {
158
  int einer, zehner, hunderter, tausender;
159
  tausender=zahl/1000;
160
  hunderter=zahl/100;
161
  zehner=zahl%100/10;
162
  einer=zahl%10;
163
  //Serial.println("tausender:"+String(tausender));  
164
  //Serial.println("hunderter:"+String(hunderter));
165
  //Serial.println("zehner:"+String(zehner));
166
  //Serial.println("einer:"+String(einer));
167
  Serial.println("zahl:"+String(zahl));
168
  // alles aus
169
  digitalWrite(transistorpin2, HIGH);
170
  digitalWrite(transistorpin1, HIGH);
171
  digitalWrite(transistorpin3, HIGH);
172
  digitalWrite(transistorpin4, HIGH);
173
  delay(2);
174
  // Einer einstellen und ausgeben
175
  if (zahl==-1)
176
  ansteuerung(10);
177
  else
178
  ansteuerung(einer);
179
  // Saft auf diese Stelle - jetzt leuchten die LED dieser Stelle
180
  digitalWrite(transistorpin1, LOW);
181
  // leuchten lassen
182
  delay(2);
183
  // und wieder aus
184
  digitalWrite(transistorpin1, HIGH);
185
  // Zehner einstellen und ausgeben.Da alle Transistorpins HIGH sind,
186
  // KANN zum jetzigen Zeitpunkt nichts leuchten.
187
  if (zahl==-1)
188
  ansteuerung(10);
189
  else
190
  ansteuerung(zehner);
191
  digitalWrite(transistorpin2, LOW);
192
  delay(2);
193
  digitalWrite(transistorpin2, HIGH);
194
  // Hunderter einstellen und ausgeben.Da alle Transistorpins HIGH sind,
195
  // KANN zum jetzigen Zeitpunkt nichts leuchten.
196
  if (zahl==-1)
197
  ansteuerung(10);
198
  else
199
  ansteuerung(hunderter);
200
  digitalWrite(transistorpin3, LOW);
201
  delay(2);
202
  digitalWrite(transistorpin3, HIGH);
203
  // Tausender einstellen und ausgeben.Da alle Transistorpins HIGH sind,
204
  // KANN zum jetzigen Zeitpunkt nichts leuchten.
205
  if (zahl==-1)
206
  ansteuerung(10);
207
  else
208
  ansteuerung(tausender);
209
  digitalWrite(transistorpin4, LOW);
210
  delay(2);
211
  digitalWrite(transistorpin4, HIGH);
212
  }
213
void ansteuerung(int a)
214
  {
215
  delay(2);
216
  for (int j=6; j>=0; j--) 
217
  digitalWrite(pin[6-j], bitRead(segmente2[a], j)==1?HIGH:LOW);
218
  }



Gruss:

Lapster

: Bearbeitet durch User
von Norbert H. (lapster)



Lesenswert?

Hier noch der Bauplan !

Benötigte Bauteile:

7 Vorwiderstände a 470 Ohm
4 Vorwiderstände a 1kOhm
1 4x7 Segmentanzeige mit gem. Kathode (LC-204 VL)
4 PNP-Transistoren BC 559 C

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.