natürlich gabs das Thema gefühlt schon 1000-fach. Vielleicht hilft diese Version einem Anfänger oder Einsteiger besser ins Thema. Enstanden aus einem Auszubildendenprojekt zum Thema "multiplexen", hier jetzt eine Version, die an einem 28 pol. ATmega48 bis ATmega328 eine 8-stellige 7-Segmentanzeige sowie 8 Tasten anbindet. Grundsätzlich müßte das auch mit einem ATmega8 funktionieren, wenn man die Register für die Timer1 ändert (konnte ich nicht machen, weil ich momentan doch tatsächlich keinen ATmega8 zur Verfügung mehr habe). Das ganze funktioniert ausschließlich ohne externen Quarz, weil bis auf die RxD und TxD Anschlüsse des UART wirklich alle GPIO Leitungen benötigt werden. Prinzipiell wäre es deshalb auch möglich, eine Art "Monitor" zu machen, der über eine Kommunikationsschnittstelle (potentiell die des UART) die Anzeige beschreibt oder die Tasten ausliest. Natürlich könnte man mittels diesen beiden Portpins über Software I2C andere Bausteine anbinden (oder man ändert die Anschlußbelegung, verwendet RxD und TxD für das Multiplexen und macht dann Hardware I2C). Grundsätzlich existieren bestimmt einige Möglichkeiten für die Schaltung, hier ging es um das Verständlichmachen. Das Ausgangsprojekt war eine Schaltung, bei der vier 2-stellige, voneinander getrennte 7-Segmentanzeigen vorhanden sein sollten und für jedes dieser Anzeige 2 Tasten vorhanden sein sollten (Plus- und Minustaste), die einen Zählerstand einstellen konnten. Für denjenigen, der es brauchen kann: Viel Spaß beim Experimentieren
Wie hoch ist die Stromaufnahme, wenn alle Segmente eingeschaltet sind und wie warm wird der Controller? Sofern man sich an die max. Stromwerte des Datenblattes halten will, müßte man die Segmentströme auf < 1 mA begrenzen.
... irgendwie wußte ich, dass diese Frage kommt (schlicht weil es keine Vorwiderstände für die LED-Segmente gibt). Der Controller erwärmt sich gar nicht. Eine Schaltung dieser "Art" des Multiplexens habe ich zu Hause seit über 10 Jahren 24/7 laufen. Wie hoch die Stromaufnahme in diesem Fall mit 8 Digits ist weiß ich nicht, weil ich es nicht gemessen habe. Die Schaltung zu Hause (mit 4 Digits) begnügt sich mit 35 mA (wobei hier aber noch weitere Bausteine in der Schaltung sind). Wem das zu "suspekt" ist, kann ja gerne Widerstände 2,7k / 3,3k in die Segmentleitungen schalten (das begrenzt dann den max. Strom auf 1 mA). Allerdings mag ich hier jetzt nicht ausführen, warum ich das jetzt NICHT mache. Natürlich weiß ich, dass man "normalerweise" eine LED nicht ohne Vorwiderstand (oder besser eine Konstantstromquelle) betreibt. Allerdings war da auch etwas in der Art, wie heftig man eine LED (oder auch einen Drain-Ausgangstreiber) überlasten darf, wenn man ihr eine noch viel größere Zeit zum inneren Abkühlen gibt ! Abgesehen davon hat jede Leitung auch einen induktiven Anteil, der beim Einschalten den maximalen Strom begrenzt. Auch das "hilft" beim Multiplexen, den Strom nicht zu groß werden zu lassen... Und ja: ich kenne das Datenblatt (und habe das bestimmt auch schon mehrfach gelesen). Als nächsten Punkt müßtest du meinen Breadboardaufbau kritisieren, denn hier gibt es auch einen "groben" Kritikpunkt: Ich betreibe mit dem ATMmega168 einen inneren RC-Takt von 8 MHz, und das gleichzeitig in Verbindung mit einem modifizierten OPTIBOOT Bootloader und einer Baudrate von 38400... (links zu sehen an meinem Eigenbau Steckbrettadapter, auf der Unterseite ist ein CH340 verbaut). Auch hier weiß ich sehr genau, dass, wenn es ungünstig läuft, oder es in meiner Wohnung mehr als 40 Grad hat, die Verbindung zum ATmega gestört sein kann. Sei es drum...
Ralph S. schrieb: > Der Controller erwärmt sich gar nicht. Gut, dann haben die Anzeigen wohl eine "weiche" Kennlinie. Was mich stören würde, wäre die übermäßige Helligkeit einer "1" gegenüber einer "8". Aber vielleicht ist das bei diesen Anzeigen auch nicht so ausgeprägt. > Als nächsten Punkt müßtest du meinen Breadboardaufbau kritisieren, Nee, für diesbezügliche Pöbeleien sind hier MaWin und F. Brunner zuständig. Was ich anders gemacht hätte, wäre die Port-Segementzuodnung und das Einlesen der Taster. Da ja schon acht zyklisch geschaltete Ausgänge zu den Digits vorhanden sind, hätte ich damit auch die Taster dekodiert. Aber egal, es gibt wie immer viele Möglichkeiten.
Wenn man was mit 7segment aufbauen will, kann ich module mit TM1637 empfehlen. Das diskret aufzubauen ist immer etwas aufwändig und man braucht massig pins vom uC. Da ist es einfacher per I2C anzusteuern. https://www.amazon.de/AZDelivery-Digital-Display-Arduino-Raspberry/dp/B078S8SGW2/ref=sr_1_1_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=AH6F44CIXFAJ&keywords=TM1637&qid=1643977949&s=ce-de&sprefix=tm1637%2Celectronics%2C59&sr=1-1-spons&smid=A1X7QLRQH87QA3&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzOExEQldRMUFQUlAxJmVuY3J5cHRlZElkPUEwNDE0Nzk0M1E4VjZMSElHRkdHUiZlbmNyeXB0ZWRBZElkPUEwMjE4NTU2TkVKUzNZWlRLUklBJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ&th=1
Fauler Modulbenutzer schrieb: > Wenn man was mit 7segment aufbauen will, kann ich module mit TM1637 > empfehlen. Das diskret aufzubauen ist immer etwas aufwändig und man > braucht massig pins vom uC. Da ist es einfacher per I2C anzusteuern. so: - TM1637 kann nur 6 stellige Anzeige, und nicht 8 - TM1637 kann kein I2C (es hat zwar eine ähnliche Datenkommunikation, aber es gibt keine Bauteileadresse und kann somit nicht an einen I2C Bus gehängt werden, wenn andere I2C Bausteine vorhanden sind - TM1637 habe ich gemacht in: Beitrag "Siebensegment und Tasten ansteuern mit TM1651 \ TM1637" (aber hier ging es darum, selbst das Funktionieren des multiplexens zu erfassen anstelle einfach ein Modul zu verwenden, abgesehen davon, dass zusätzliche Bausteine auch immer Geld kosten, egal wieviel) @m.n m.n. schrieb: > Gut, dann haben die Anzeigen wohl eine "weiche" Kennlinie. Was mich > stören würde, wäre die übermäßige Helligkeit einer "1" gegenüber einer > "8". Aber vielleicht ist das bei diesen Anzeigen auch nicht so > ausgeprägt. das stimmt was du schreibst, eine "1" ist tatsächlich etwas heller als eine "8", aber nicht in diesem Ausmaß wie du das erwartest. Die Segmente der Anzeigen haben in der Tat eine "weiche", nicht so steil ansteigende Kennlinie. m.n. schrieb: > Was ich anders gemacht hätte, wäre die Port-Segementzuodnung und das > Einlesen der Taster. Da ja schon acht zyklisch geschaltete Ausgänge zu > den Digits vorhanden sind, hätte ich damit auch die Taster dekodiert. > Aber egal, es gibt wie immer viele Möglichkeiten. Der Timerinterrupt schaltet insgesamt 8 Multiplexzyklen ( 0 bis 7 ). Im MPX-Zyklus 0 wird zuerst (wie bei allen Zyklen auch) die Anzeige dunkel geschaltet, danach die Tasten von Bank 4 gelesen, key_stat erneuert, und im selben Zyklus das Segmentmuster für Digit 0 ausgegeben. Gleiches Verhalten für Zyklus 1 und Tastenbank 2. Somit werden die Taster bei Zyklus 0 und 1, bei dem auch die Muster für Digit 0 und Digit 1 gesetzt werden, gelesen. Das hat den Vorteil, für eine spätere Erweiterung auf bis zu 16 Tasten (4 Bänke zu je 4 Tasten).
Ralph S. schrieb: > das stimmt was du schreibst, eine "1" ist tatsächlich etwas heller als > eine "8", aber nicht in diesem Ausmaß wie du das erwartest. Die Segmente > der Anzeigen haben in der Tat eine "weiche", nicht so steil ansteigende > Kennlinie. Das kann leicht geändert werden, durch z.b. eine variable Multiplex-Frequenz in Abhängigkeit von der Anzahl der aktiven Segmente. Dazu gibt es einige Beispiele im Netz ...
Ralph S. schrieb: > so: > - TM1637 kann nur 6 stellige Anzeige, und nicht 8 > - TM1637 kann kein I2C (es hat zwar eine ähnliche Datenkommunikation, > aber es gibt keine Bauteileadresse und kann somit nicht an einen I2C Bus > gehängt werden, wenn andere I2C Bausteine vorhanden sind > - TM1637 habe ich gemacht in: > Beitrag "Siebensegment und Tasten ansteuern mit TM1651 \ TM1637" > > (aber hier ging es darum, selbst das Funktionieren des multiplexens zu > erfassen anstelle einfach ein Modul zu verwenden, abgesehen davon, dass > zusätzliche Bausteine auch immer Geld kosten, egal wieviel) > > @m.n Asche auf mein Haupt. Das Lustige ist, dass ich genau durch dein Codebeispiel auf die Module aufmerksam geworden bin und deinen Code sogar verwendet habe. Das du das warst habe ich aber offenbar gar nicht gemerkt als ich meinen Beitrag geschrieben habe :-O Ein dickes Danke an dich, für die Mühe und die Codebeispiele. Hat mir damals echt geholfen :)) Zu den Argumenten: Stimmen alle! Cheers, Fauler Modulbenutzer
Zur Ansteuerung von LEDs oder Matrix oder ähnliches benutze ich sehr gern den HT16K33. Der hat den I2C Bus drin und kann universell genutzt werden. Für 8 Anzeigen braucht man halt ein paar mehr.
Bitte mal auf meine PN antworten. Danke
D. J. schrieb: > Bitte mal auf meine PN antworten. Vielleicht gelingt es Dir noch, das etwas freundlicher zu formulieren.
D. J. schrieb: > Bitte mal auf meine PN antworten. Danke :-) ich kann nicht gemeint sein, denn ich habe keine PN !
sorry ich war in Eile, Ich hatte nach der Platine gefragt, die auf dem Board steckt. Wo hast du deinen mail-Provider ? habe gerade nochmal was geschickt. Bitte schick mir mal was , zum Testen was los ist. Danke.
:
Bearbeitet durch User
Ralph S. schrieb: > Grundsätzlich existieren bestimmt einige Möglichkeiten für die > Schaltung, hier ging es um das Verständlichmachen. Vor allen Dingen sollte man Ralph S. schrieb: > aus einem Auszubildendenprojekt zumindest mal die Ströme machrechnen: Ein PortPin eines AVR ist maximal für 20mA gut, die an COM hängenfen m8ssen dabei 7 Segmente und den Dezimalpunkt mit Strom versorgen macht 1.25mA auf den man den Vorwiderstand der LEDs der Anzeige dimensionieren muss, also (5V - 2.1V) / 0.00125 = 2k2. Vorwiderstände, wovon redet der, auf so einen Scheiss verzichten wir, wir sind ja schliesslich Lehrkraft. So leicht ist ein uC nicht kaputt zu kriegen, ab 40mA begrenzt er schliesslich von alleine. Dass eine 1 dann drastisch heller als eine 8 ist, egal, kein Lehrling hat sich beklagt. Nun, erstens könnte auffallen, dass 1.25mA nicht viel sind und sie sich zudem noch auf 1/8 der Zeit beziehen denn in 7/8 sind die Segmente der anderen Digits an, so eine Anzeige leuchtet also wie mit 0.156mA = 156uA mittlerem Strom. Recht wenig, recht dunkel zumindest für die COM würden sich also externe Transistoren zur Verstärkung lohnen, auf zumindest 160mA. Eenn man aber dieselbe Helligkeit wie bei 10mA Dauerstrom haben will für den die Displays spezifiziert sind, muss man 1/8 der Zeit 80mA durch die Segmente schicken mit nur noch 33 Ohm Vorwiderstand, 640mA Strom durch COM und auch die Segmentleitungen mit extern verstärkenden Transistoren versehen. Also: lehre nächstes Jahr lieber die ganze Wahrheit. Die ist nicht geheim, steht schon lange hier: https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Früher.... so gefühlt vor 1000 Jahren (also in den 90ern des letzten Jahrtausend) war ich auch in den Newsgroups unterwegs.... und da gabs dann auch einen MaWin der als absolute Koriphäe und Instanz galt. Sollte das hier tatsächlich dieser MaWin sein (wobei es schon sehr gut sein kann, dass hier genügend Fake-MaWins durch die Gegend streunen), muß ich sagen: Was ist aus ihm geworden? Egal in welchem Thread ich lese: er ist zu 90% am stänkern. So, zum Thema: 1. Es geht um die Software, und nicht um Hardware 2. Das Leuchtdioden nicht ohne Vorwiderstände statisch betrieben werden dürfen, dürfte jedem bekannt sein (und mir ist es das auch) 3. Wie ganz richtig erkannt wird, sind die Digits nur zu einem 1/8 der Zeit an 4. Die Digits haben einen relativ weichen Übergang. 5. Wie ganz richtig bemerkt wurde reduziert sich der Strom per Digit sehr deutlich 6. Natürlich knickt ein High-Pegel ein, aber es werden keine weiteren digitale Bausteine an die am Multiplexing beteiligten Anschlüsse angeschlossen 7. Es läuft hier ein "Uhrenthermometer" das permanent die Uhrzeit und die Temperatur im Wechsel anzeigt seit Jahren ohne Vorwiderstände, der Controller erwärmt sich nicht. 8. In "wichtigen" Schaltungen werden Widerstände verbaut 9. Die Wirklichkeit zeigt, dass die Anzeige so wie sie ist nicht dunkel ist 10. Irgendwo gibt es auch eine Berechnung, innerhalb welcher Zeit wie stark Leuchtdioden und Halbleiter überlastet werden dürfen, wenn sie eine entsprechend lange Zeit haben, sich abzukühlen, ohne zerstört zu werden. 11. Es bleibt jedem selbst überlassen, Common-Treiber (ob nun diskret, bipolar oder unipolar, oder auch per Transistorarray) zu verbauen. Der Software tut das keinen Abbruch, sie wird dennoch funktionieren. 12. Ich wußte, dass hier jemand aufschlagen wird mit der Frage nach den Vorwiderständen und ich habe sie dennoch weg gelassen, schlicht weil das deutlich einfacher zu stecken ist und die Software schneller ausprobiert werden kann. 13. Wie ich "lehre" kann nur ein Beobachter beurteilen oder eben ein Auszubildender. Die Prüfungsergebnisse geben aber auch einen Anhaltspunkt darüber wie gut oder schlecht jemand ein Verständnis hat. In den letzten 15 Jahren war keiner schlechter als Note 2 Ich könnte ewig weiterschreiben (weil ich mich aufrege), aber unterm Strich bringt das so gar nichts. MaWin schrieb: > Also: lehre nächstes Jahr lieber die ganze Wahrheit. Die ganze Wahrheit ist, dass zu Übungszwecken, wenn es um Leuchtdioden geht, die Kennlinien nach guter alter Väter sitte händisch aufgenommen werden (mit selbstgebauter Konstantstromquelle) und mittels Excel eine Kennlinie erstellt wird. Anhand dieser Kennlinie und dem entsprechenden Datenblatt müssen R_min und R_max für unterschiedliche Betriebsspannungen ermittelt werden. Im gegebene Fall des Multiplexens kommt alleine schon von Seiten der Auszubildenden die Frage nach den Vorwiderständen und die Antwort ist: Ihr könnt sie einbauen wenn ihr wollt. Wenn ihr sie weglasst wird der Controller aber dennoch nicht zerstört. Der Hinweis, dass im kommerziellen Design die Widerstände nicht fehlen dürfen wurde gegeben (aber das hast du wohl bei der Unterweisung überhört, oder warst du vllt. gar nicht anwesend ?) Früher hat man für Noname LED einen Strom von 10 bis 20 mA angenommen, heute sind LEDs schon bei einem I_f von weniger als 2 mA knallhell. MaWin, geh nicht davon aus, dass alle ausser dir dumm sind. Die Erfahrung zeigt, wann etwas ausserhalb der Spezifikation funktioniert und wann nicht. Beispiel gefällig? Vor Jahren meine ein Auszubildender, er müsse seinen Autohimmel mit einem LED-Sternenhimmel versehen, zudem meinte er Vorwiderstände würden reichen. Auf den Hinweis, dass die Bordspannung in einem KFZ höchst übel ist, zudem verschiedene Werte bei bspw. laufendem Motor annehmen kann und dass hier evtl. die LEDs in einem nicht zulässigen Bereich betrieben werden wurde ignoriert. Die Aussage, mehrere LED in Reihe zu schalten und diese mit einer Konstantstromquelle zu versorgen wurde erst dann realisiert, nachdem sich die ersten LEDs verabschiedet haben. Wenn also der "echte MaWin" aus der Newsgroup aus den 90ern hier schreibt: Du warst mal ein heller Stern und eine echte Instanz, aber dieses verbitterte und verbiesterte Genöle ist nicht schön. Mit deinem Wissen hast du es doch gar nicht nötig, Oberlehrerhaft aufzutreten und jedem (ungefragt) die Richtlinien vorzugeben, nach der jemand vorzugehen hat. Nur mal so: vor 20 Jahren wäre ich niemals auf die Idee gekommen, eine Anzeige ohne Widerstände betreiben zu wollen. Ich hatte auch schon mal überlegt gehabt, Oszillogramme der Ströme !!! beim Multiplexen (über niederohmige Meßwiderstände) zu veröffentlichen um zu zeigen, dass die Stromimpulse weit weniger hoch sind als immer wieder vermutet wird. Dass die Begrenzung natürlich von seitens des Controllers kommt ist klar. Wenn der Controller aber den Strom begrenzt, ohne dabei auch nur näherungsweise zerstört zu werden, stellt sich mir die Frage, wo das Problem ist. Gesetzt den Fall es wird ein billiges Spielzeug produziert, sagen wir einen Paschwürfel mit LEDs, dann werden für einen solchigen Doppelwürfel insgesamt 14 LEDs benötigt von denen max. 12 brennen. Sind I/O Pins knapp, wird dafür wohl eine 4x4 Matrix oder gar ein Charlieplexing mit 5 Leitungen verwendet. Bei einem solchigen Produkt, welches keinen wirklichen Anspruch auf Langlebigkeit hat (leider muß man sagen), wird auf jeden Cent genau geschaut und die Dioden werden weggelassen. Solch ein Produkt ist mir schon untergekommen und natürlich kam das aus dem Land der billigen Produkte: China. Anderes Beispiel gefällig für einen Betrieb ausserhalb der Spezifikation? Ich weiß nicht wie oft über den ISP-Programmer USBasp schon gelästert wurde. Die grundsätzliche Realisation über "virtuellen USB, VUSB" ist hinlänglich bekannt, ein Begrenzen der Signalspannungen mittels Zenerdioden ist auch nicht so tolle .... und dennoch funktioniert dieses Billigteil, was vor der Pandemie und vor den geänderten Zoll- und Portobestimmungen letztes Jahr für ca. 1,20 € zu haben war, seit Jahren an jedem von mir getestetem Rechner. Es funktioniert halt. Nach MaWins Ansicht, dürften diese Dinger nicht verkauft werden, weil sie eben der Spezifikation nicht entsprechen. Wichtig ist bei alle dem nur eines: Der Hinweis darauf, dass etwas ausserhalb der Spezifikation betrieben wird. Das nächste mal, wenn ich ganz bewußt einen Verstoß begehe, werde ich in dem entsprechenden Text darauf hinweisen, aber ich glaube, dass in diesem Fall dennoch genörgelt werden wird. In diesem Sinnne, wenn du der echte Mawin bist: Zerstöre dein Ansehen nicht selbst. Den älteren, die die Newsgroup noch kannten als sie noch lebte, bist du ein Begriff und eine Instanz. Das, was man hier von dir bisweilen lesen kann, ist deiner nicht würdig !
Ralph S. schrieb: > Ich könnte ewig weiterschreiben (weil ich mich aufrege), aber unterm > Strich bringt das so gar nichts. Warum leidest du hier öffentlich und investierst viel Lebenszeit für diese ultralange Rechtfertigung? Lass andere ruhig doof sein, dann gehts dir u. dem Doofen bestimmt besser!
Apollo M. schrieb: > Warum leidest du hier öffentlich und investierst viel Lebenszeit für > diese ultralange Rechtfertigung? ... weil ich doof bin ?
Ralph S. schrieb: > Ich könnte ewig weiterschreiben Davon wird es nicht besser. Du verwendest Millionen Worte weil DU WEISST dass man LEDs nicht ohne Strombegrenzung - in Form eines Widerstandes oder luxuriös mit Konstantstromquelle - verwendet, auch '1/8 der Zeit' nicht Du WEISST dass deine Schaltung den uC weit jenseits der Datenblattgrenzwerte betreibt und das nicht in Ordnung ist, er damit jedes Recht der Welt hätte, kaputt zu gehen. Du WEISST dass ein Einbrechen der Helligkeit der 8 die Folge einer fehlerhaft schlechten Schaltungsauslegung ist. Nur du willst dir nicht eingestehen, dass du derjenige bist der den Fehler macht, und versuchst die Missgunst auf den Überbringer der schlechten Nachricht abzuwälzen. Schlechter Stil. Mach's lieber in Zukunft richtig.
Ralph S. schrieb: > Vielleicht hilft diese > Version einem Anfänger oder Einsteiger besser ins Thema. Du propagierst Dein Projekt für Anfänger oder Einsteiger und gleichzeitig bringst Du es falsch bei. > Enstanden aus einem Auszubildendenprojekt zum Thema "multiplexen", hier Warst Du Ausbilder, warst Du Dein Geld nicht wert, warst Du Auszubildender, dann hast Du's bis heute nicht gelernt. Ralph S. schrieb: > 2. Das Leuchtdioden nicht ohne Vorwiderstände statisch betrieben werden > dürfen, dürfte jedem bekannt sein (und mir ist es das auch) Die dürfen auch dynamisch nicht ohne Vorwiderstand betrieben werden. > Den älteren, die die Newsgroup noch kannten als sie noch > lebte, bist du ein Begriff und eine Instanz. Wedle nicht oberlehrerhaft mit dem Zeigefinger herum, wenn Du wider besseres Wissen einen solchen Müll als Hardware ablieferst. Ralph S. schrieb: > ... weil ich doof bin ? Dem kann man in Anbetracht Deines weinerlichen Ergusses nur zustimmen.
Ach Leute, chillt mal. Warum seid ihr nur immer so grantig zueinander? :-) Es geht um ein Hobby und nicht um die Rettung der Welt. Einfach mal höflich sein. Ein Lächeln ist die kürzeste Verbindung zwischen zwei Potenzialen.
nippes schrieb: > Ein Lächeln ist die kürzeste Verbindung > zwischen zwei Potenzialen. Das musst Du im "Brigitte"-Forum schreiben, für einen Techniker ist ein ionisierter Kanal mit nachfolgender Plasmaentladung viel kürzer.
von Ralph S. (jjflash) 04.02.2022 10:28 >... irgendwie wußte ich, dass diese Frage kommt (schlicht weil es keine >Vorwiderstände für die LED-Segmente gibt). >Der Controller erwärmt sich gar nicht. >Eine Schaltung dieser "Art" des Multiplexens habe ich zu Hause seit >über 10 Jahren 24/7 laufen. Wie hoch die Stromaufnahme in diesem Fall >mit 8 Digits ist weiß ich nicht, weil ich es nicht gemessen habe. Die Treiberleistung der Pins des Atmega328 begrenzt den Strom, was der Anwendung etwas entgegen kommt. Besser wäre vielleicht, wenn man die Schaltung mit 3.3V betreibt, dann werden die Ausgänge nicht ganz so stark belastet. Ein grüne Anzeige mit höherer Diodenspannung könnte der Sache auch noch etwas entgegen kommen.
Christoph M. schrieb: > Ein grüne Anzeige mit höherer Diodenspannung könnte der Sache auch noch > etwas entgegen kommen. VORWIDERSTÄNDE wären die ultimative Lösung. Aber wenn man zu arm für 0.001ct ist... Klar, bei Abermillionenstückzahl könnte man mit der Einsparung seinen Arbeitsplatz finanzieren, zumindest bis im nächsten Jahr die Firma wegen der ganzen Rückläufer pleite ist.
MaWin (Gast) 11.02.2022 10:17 >Christoph M. schrieb: >> Ein grüne Anzeige mit höherer Diodenspannung könnte der Sache auch noch >> etwas entgegen kommen. >VORWIDERSTÄNDE wären die ultimative Lösung. >Aber wenn man zu arm für 0.001ct ist... 1. Es scheint ein Bastelprojekt zu sein, aber: 2. In der Massenproduktion spart man jeden Cent 3. Der Kunde bezahlt nicht für "overengineerte" Spielereien 4. Du verlierst Marktanteil, wenn du teurer als die Konkurrenz bist 5. Deine Kostenkalkulation ist falsch, du hast folgendes vergessen - Bestückungskosten - Materialhandling - Materialbestellung - Lagerhaltung - erhöhte Ausfallwahrscheinlichkeit durch zu viele Bauteile - erhöhte Produktionsverzögerung falls Bauteile verzögert geliefert werden
>Klar, bei Abermillionenstückzahl könnte man mit der Einsparung seinen >Arbeitsplatz finanzieren, zumindest bis im nächsten Jahr die Firma wegen >der ganzen Rückläufer pleite ist. Ich glaube nicht, dass es vermehrt Rückläufer geben wird. Ohne eine genauere Untersuchung des Sachverhalts sind das konservative "Angstwiderstande", die einer Nachteil gegenüber der Konkurrenz darstellen können.
Christoph M. schrieb: > Deine Kostenkalkulation ist falsch, du hast folgendes vergessen Ach, ewig Gestriger. Der Chinamann ist fähiger, der verwendet einen uC mit Konstantstromquellen und internen Leistungstransistoren, Typennummern habe ich oben genannt.
Ralph S. schrieb: > Abgesehen davon hat jede Leitung auch einen induktiven Anteil, der beim > Einschalten den maximalen Strom begrenzt. Prust. Da mußt Du aber mit 100MHz multiplexen, damit die wenigen nH auch wirksam werden. Aber sei froh, daß die Induktivität bei wenigen Hz quasi nicht vorhanden ist, sonst würden Dir die Induktionsspannungen beim Abschalten die LEDs in Sperrichtung zerstören.
m.n. schrieb: > Wie hoch ist die Stromaufnahme, wenn alle Segmente eingeschaltet sind > und wie warm wird der Controller? > Sofern man sich an die max. Stromwerte des Datenblattes halten will, > müßte man die Segmentströme auf < 1 mA begrenzen. https://thumb.mikrocontroller.net/bpA8RndVu7MdYADqsUylsfhTtxLAsrcOffew9qg_X6s/plain/https://www.mikrocontroller.net/attachment/545316/mpx8_digit_b.gif@jpg Wo müssten diese Widerstände im Schaltbild (theoretisch) eingefügt werden?
kai schrieb: > Wo müssten diese Widerstände im Schaltbild (theoretisch) eingefügt > werden? In die Segmentleitungen. Die Leitungen die zyklisch Stellen, Spalten oder Reihen wechseln, also COM, bekommen keine Widerstände.
Ich verstehe nicht, warum man das nicht ordentlich machen kann. 8 Widerstände in die Segmente und 8 Transistoren als Emitterfolger für die Digits und die Sache ist erledigt. Die Helligkeit scheint auch nicht berauschend zu sein, die LED auf dem Programmierboard ist ja deutlich heller.
Für alle die, die sich an der mangelhaften Schaltung aufhängen, hier ist nun die Schaltung, wie sie sich "richtig gehört" (meine Güte). Und damit auch die zufrieden sind, die die Commonleitung überlastet sehen auch hier einen Common-Transistortreiber. Ich kann darauf warten, dass nun geäußert wird, dass die Belastung des Controllers per Segment dennoch grenzwertig ist, weil der Strom per Segment bei einer angezeigten "8" ca. 7 mA beträgt. Außerdem hat somit jedes einzelne Segment im Mittel 7/8 mA (also nicht mal 1mA im Mittel, was ja viel zu wenig ist). Die Helligkeit ist mir jedoch hiermit schon so hoch, dass ich das nicht "ungedimmt" laufen lassen möchte weil es für meinen Geschmack (und meine Augen) zu hell ist. Gemessen wurde das mit einem Oszilloskop der an einem Trenntrafo hängt, damit ich den Spannungsfall über den Segmentwiderständen messen konnte. Signalform ist "relativ" einem Recheck ähnlich, was er nicht ist, wenn man die Segmentwiderstände bis auf 1 Ohm reduziert um annähernd die Bedingung zu haben, als wenn gar keine Segmentwiderstände enthalten sind. Für alle diejenigen, die noch nicht zufrieden sind, kann man auch in die Segmentleitungen einen Transistor schalten, dieses mal dann jedoch einen NPN in Kollektorschaltung, damit die Ausgabe der Segmente nicht invertiert werden muß. Ein PNP wäre hier dann besser, aber dann müßte die Ausgabe invertiert werden. So, nachdem die Hardware nun so komplett (hoffentlich) zerrissen ist, könnt ihr Euch über die Software hermachen und dort ebenfalls alles sagen, was man so nicht macht. Unabhängig davon läuft hier in meinem Wohnzimmer seit 10 Jahren eine solche Schaltung (mit nur 4 Digits... Temperatur und Uhrzeit werden im Wechsel angezeigt) ohne Störung. Peter D. schrieb: > Die Helligkeit scheint auch nicht berauschend zu sein, die LED auf dem > Programmierboard ist ja deutlich heller. Die Helligkeit ist und war mir hell genug, die LED auf dem "Programmierboard" (das ist lediglich ein Eigenbau-Breadboardadapter mit steckbarem Spannungsregler und einr CH340 USB2UART Bridge) ist mir um einiges zu hell, ich hatte nur keine Lust bisher darauf, den Vorwiderstand dieser SMD-LED (er ist 820 Ohm) zu vergrößern. kai schrieb: > Wo müssten diese Widerstände im Schaltbild (theoretisch) eingefügt > werden? Siehst du hier angehängten Schaltplan! --------------------------------------------------------- So, was habe ich nun gewonnen? Die goldene Himbeere der Elektroniker - für die schlechteste Schaltung des Monats Februar 2022 - den schlechtesten Elektroniker - den unnützesten Beitrag auf www.mikrocontroller.net Die Abstimmung für den schlechtesten Schaltplan steht noch aus. Peter D. schrieb: > Da mußt Du aber mit 100MHz multiplexen, damit die wenigen nH auch > wirksam werden. > Aber sei froh, daß die Induktivität bei wenigen Hz quasi nicht vorhanden > ist, sonst würden Dir die Induktionsspannungen beim Abschalten die LEDs > in Sperrichtung zerstören. Geb ich dir uneingeschränkt Recht, da habe ich Müll geschrieben. MWS schrieb: > Das musst Du im "Brigitte"-Forum schreiben, für einen Techniker ist ein > ionisierter Kanal mit nachfolgender Plasmaentladung viel kürzer. Die nächste Plasmaentladung steht sicherlich an! MWS schrieb: > Warst Du Ausbilder, warst Du Dein Geld nicht wert, warst Du > Auszubildender, dann hast Du's bis heute nicht gelernt. Das da ... ist ein typischer Beitrag hier im Forum: Wo es nur geht persönlich und beleidigend werden ! Natürlich sind solche Leute immer nur als Gäste unterwegs... Sei es drum, an Tagen wie diesen (hat nichts mit dem Lied zu tun), die leider immer häufiger vorkommen, hätte ich es gerne, dass alle Beiträge von mir von mikrocontroller.net entfernt werden. Natürlich wird man hier dann auch sagen, dass das kein Verlust sei. Irgendwann wird man (ich) es schaffen und dem "Ding" hier komplett fern bleiben oder auch nur als "Gast" aufzutreten. By the way: Warum sieht man von den permanent Nörglern hier nicht mal brauchbare Dinge (sieht man mal von Peda und MaWin ab)?
Ralph S. schrieb: > hier ist nun die Schaltung, wie sie sich "richtig gehört" (meine Güte). Die 5k6 Widerstände könntest du weglassen (0 Ohm), die Kollektorschaltung braucht die nicht. Ralph S. schrieb: > für die schlechteste Schaltung des Monats Februar 2022 Was https://www.mikrocontroller.net/attachment/545316/mpx8_digit_b.gif betrifft sicherlich.
MaWin schrieb: > Die 5k6 Widerstände könntest du weglassen (0 Ohm), die > Kollektorschaltung braucht die nicht. ... ich brauche auch die Com-Treibertransistoren nicht. Ich könnte aber auch Com-Treibertransistoren in NPN wählen, das ganze dann in Emitterschaltung realisieren und die Ansteuerlogik der Com-Leitungen invertieren, dann braucht es die Basiswiderstände dann zwingend ... ... allerdings habe ich dann, bei geänderter Ansteuerlogig der Com-Leitungen das Problem, dass ich die Auswertung der Tasten im Multiplex anderst realisieren muß. Ich werde es sicherlich noch hinbekommen, dass mir die Anzeige nichts mehr anzeigt !
By the way: Was ist mit der Goldenen Himbeere für die schlechteste Software? Irgendwie hätte ich die schon noch gerne in meiner Sammlung !
Warum immer das Rad neu erfinden? Atmel hat das schon mit AVR242 gemacht. Anpassung um weitere Digit oder Tasten ist da harmlos. https://ww1.microchip.com/downloads/en/Appnotes/doc1231.pdf Zu beachten ist die Anbindung der Tasten.
Ralph S. schrieb: > Ich könnte aber > auch Com-Treibertransistoren in NPN wählen, das ganze dann in > Emitterschaltung realisieren und die Ansteuerlogik der Com-Leitungen > invertieren, dann braucht es die Basiswiderstände dann zwingend ... Dann dauert aber das Ausräumen der Basisladung länger und es kann zum Ghosting kommen.
Peter D. schrieb: > Dann dauert aber das Ausräumen der Basisladung länger und es kann zum > Ghosting kommen. ... und deshalb Kollektorschaltung
Obwohl ich hier satt "verrissen" worden bin habe ich 3 Mails erhalten, deren Inhalt in der Art war, was getan werden muß, damit die Software auch auf einem ATmega8 läuft. Nachdem ich in meiner Bastelkiste dann doch noch einen Mega8 gefunden hatte, habe ich das ausprobiert und das einzige was getan werden muß, ist im Header dem Programm mittels Präprozessor vorzugaukeln, dass er ein TIMSK1 Register hat (das "Timer/Counter Interrupt Mask Register" heißt hier TIMSK und nicht TIMSK1) und natürlich im Makefile den ATmega8 eintragen. In mpx8_digit.h (irgendwo einfügen):
1 | #if defined __AVR_ATmega8__ |
2 | #define TIMSK1 TIMSK |
3 | #endif |
im Makefile muß es dann heißen:
1 | # fuer Compiler / Linker |
2 | FREQ = 8000000ul |
3 | #MCU = atmega328p |
4 | #MCU = atmega168 |
5 | MCU = atmega8 |
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.