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
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
Hallo, http://www.elektronik-kompendium.de/sites/bau/index.htm#4 http://www.elektronik-kompendium.de/sites/bau/0201291.htm http://www.elektronik-kompendium.de/sites/bau/0201111.htm Norbert Hümmer schrieb: > Bis Bald !
Beitrag gründlich überarbeiten, Fehler suchen, anständig formulieren. DANN werden diesen langen Text auch mehr Leute lesen...
Kannst du dich bitte in einem Schaltplan kurz fassen?
(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.
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.
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. ;-)
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
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
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
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.
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 !
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
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.
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
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.
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
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
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.
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.
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.
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.
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
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
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.
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 :-)
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?
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
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 ;)
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
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
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.
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
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.
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
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.
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
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
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?
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
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
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.
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
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.
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.
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
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.
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
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
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!
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 ;-)
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.