Hallo liebes Mikrocontroller-Forum, Ich habe ein Problem! Der Rahmen des Ganzen: Für ein Projekt an meiner Hochschule brauche zwei vierstellige Anzeigen. Eine soll klein sein -> für den Bediener, eine soll groß sein -> für die Zuschauer. Beide sollen Zeitgleich das gleiche anzeigen. Beide sollen aus folgenden 7-Segmentelementen bestehen http://www.reichelt.de/SA-08-11-RT/3/index.html?ACTION=3&LA=446&ARTICLE=31575&artnr=SA+08-11+RT&SEARCH=7-segment die kleinen http://www.reichelt.de/SA-40-19-RT/3/index.html?ACTION=3&LA=446&ARTICLE=31579&artnr=SA+40-19+RT&SEARCH=7-segment die großen Die Kleine Anzeigen Funktioniert auch Sehr gut. Ich habe sie Ohne! 8-bit-shift-register aufgebaut, um Platz auf der Platine zu sparen, da der Bauraum sehr begrenzt ist. Die Vorlage habe ich leider nicht gefunden auf die schnelle, Sie verwendete aber nur 3-Digits und wir haben sie dann kurzer Hand auf 4 erweitert. Die 4-Digits werden komplett von einem Arduino MEGA gespeisst und geregelt. Die 4 Digits werden über Transistoren ( ich meine BC327 oderso) multiplexed. Die Anzeigen sind parallel geschaltet, wie halt das klassiche Multiplexing funktioniert. Das Problem was sich mir nun stellt ist, dass ich die 4 großen Anzeigen ja nicht über den Arduino speisen kann. Die Brauchen ja jeder ~8V und selbst wenn ich die aus dem Arduino rausholen kann, erreiche ich den nötigen Strom für die 4-Anzeigen nicht. Wenn ich sie nun mit einer externen Spannungsquelle verbinde, muss ich sie ja irgendwie an meinen GND anschließen, da sonst die Anzeigen nicht mit Spannung versorgt werden. Wenn ich den GND allerdings an den Arduino anschließe funktioniert weder das Multiplexing, noch werden alle Segmente passen angesteuert. (Leuchtet mir auch ein das ich einen anderen GND nicht an den Arduino so einfach anschließen kann, das war aber die einzige Möglichkeit wie die Dinger überhaupt geleuchtet haben! =D ) Kann ich das Problem lösen, ohne ein Shiftregister einzubauen? Weil dafür müsste ich wieder die Programmierung ändern -> Die kleine Anzeige müsste auch ein Shiftregister bekommen -> deutlicher Mehraufwand. Ist alles sehr abstrakt, ich versuche noch die "Grundschaltung" zufinden, nach der ich die kleine Anzeige aufgebaut habe. Ich hoffe mein Problem ist verständlich und ihr könnt mir dabei helfen!
:
Verschoben durch Moderator
Florian M. schrieb: > Kann ich das Problem lösen, ohne ein Shiftregister einzubauen? Platz kann ja wohl kein Argument sein, wenn man im gleichen Atemzug solche Riesendisplays verbaut, Platz ist also bloss eine Lüge. Es bieten sich Konstantstromtreiber an, weil dann die Segment-Widerstände entfallen können. Und diese Konstantstromtreiber mit 8 Ausgängen haben normalerweise einen Eingang als Schieberegister, WEIL DAS PLATZ SPART. Deine Aversion gegen Schieberegister ist also Humbug. Allerdings willst du 2 Anzeigen mit demselben Inhalt versorgen, eine mit ca. 8.4V die andere mit ca. 2.1V. Man kann sie nicht ein Reihe schalten, weil sie jeweils gemeinsame Anode haben. Also wird man sie parallel schalten müssen. Damit sind Konstantstromtreiber nicht so klug, der Strom würde komplett durch die mit 2.1V fliessen. Also doch besser Treiber und jeweils passende Vorwiderstände für die kleine und andere passende Vorwiderstände für die grosse Anzeige. Ein TPIC6B595 wäre ok. Bleiben die Transistoren die die Digits schalten. Die müssen 12V schalten. Es kann also kein einfacher PNP Transitor gesteuert vom Arduino sein. Und er muss ca. 0.6A schalten können. Ein ULN2981 ist grenzwertig. Immerhin kein Schieberegister...
Das Platzproblem besteht auch in der Box, in der alle Platinen zusammenlaufen und nicht an den Anzeigen ... sry, hätte ich schreiben sollen. Dachte mir schon das es ohne Register nicht wirklich gehen wird. Da muss ich mir dann Platzmäßig was einfallen lassen. Ich werde es mal mit deinem Vorschlag versuchen. Lg, Florian
Florian M. schrieb: > Das Platzproblem besteht auch in der Box, in der alle Platinen > zusammenlaufen Natürlich, wenn du die dritte Dimension für Steckverbinder und eine fast leere Platine (=Arduino) vergeudest, denn Florian M. schrieb: > Platz auf der Platine zu sparen, da der Bauraum sehr begrenzt ist. > ... > Die 4-Digits werden komplett von einem Arduino MEGA gespeisst Du hast zwar keinen Platz, aber für den Arduino reichts noch? Hast du dir mal angesehen, wie leer der ist? Wenn du also diesen Platz ausnutzen würdest, dann wäre dein Platzproblem vermutlich gelöst. Ja, natürlich müsstest du dann selber eine Platine für diese dritte Dimension aufbauen. Oder den Spieß umdrehen: den Platz, den du durch die fehlenden Steckerleisten einsparst wenn du den AVR direkt auf deine Platine setzt, kannst du für sinnvolle Schaltungsteile verwenden und brauchst nur 1 Platine.
Florian M. schrieb: > Die kleine Anzeige > müsste auch ein Shiftregister bekommen Wer sagt das? Für die großen Anzeigen würde ich den MM5450 empfehlen, braucht nur 2 IO-Pins zusätzlich. http://www.microchip.com/wwwproducts/en/MM5450
Wie weit liegen denn die große Anzeige und die Ansteuerung voneinander entfernt? Sobald auch nur ein Meter Kabel dazwischen liegt, würde ich auf keinen Fall mehr im Multiplexbetrieb ansteuern, sondern immer statisch. Da kann die Anzeige auch 50 m vom Bedienteil entfernt stehen und es können beliebig viele Anzeigen parallel betrieben oder auch kaskadiert werden. Florian M. schrieb: > Ich habe sie Ohne! 8-bit-shift-register aufgebaut, um Platz auf der > Platine zu sparen, da der Bauraum sehr begrenzt ist. Auf der Rückseite der Platine ist genug Platz für Schieberegister und Treiber. Hier ein Beispiel für statische Ansteuerung einer 13 mm Anzeige: http://mino-elektronik.de/7-Segment-Variationen/LCD.htm#led1
m.n. schrieb: > Wie weit liegen denn die große Anzeige und die Ansteuerung voneinander > entfernt? Sobald auch nur ein Meter Kabel dazwischen liegt, würde ich > auf keinen Fall mehr im Multiplexbetrieb ansteuern, sondern immer > statisch. Da kann die Anzeige auch 50 m vom Bedienteil entfernt stehen > und es können beliebig viele Anzeigen parallel betrieben oder auch > kaskadiert werden. Spitzenidee von Grandioso m.n., gerade bei meterlanger Entfernung dann 30 parallele Leitungen verwenden zu wolken, wo sich andere Gedanken machen, wie sie das kostensparend mit 2 hinbekommen können statt der 11 des Multiplexbetriebs.
m.n. schrieb im Beitrag #4716452: > MaWin schrieb: >> 30 parallele Leitungen verwenden zu wolken > > Dumm, dümmer, MaWin Er hat doch Recht, wie sonst will man dann eine statische Anzeige realisieren? Mal ganz ab, warum nicht einfach einen zweiten MC für die externen 7seg, diese per RS232 ansteuern. Die Platine Huckepack auf die LEDs packen und gut ist. Da spielt dann auch der Platz in der "Haupteinheit" keine Rolle mehr. Aber wenn wir nun schon angekommen sind, in Hochschulen, zu Lehrzwecken, einen Arduino einzusetzen statt ein eigenes Design zu gestalten... Na Mahlzeit, unsere Ingenieur von morgen... Traurig :-(
m.n. schrieb im Beitrag #4716452:
> Dumm, dümmer, MaWin
Geht es auch ohne Beleidigung?
Abgesehen davon hat MaWin recht.
Draco schrieb: > m.n. schrieb: >> MaWin schrieb: >>> 30 parallele Leitungen verwenden zu wolken >> >> Dumm, dümmer, MaWin > > Er hat doch Recht, wie sonst will man dann eine statische Anzeige > realisieren? man überträgt die Daten per SPI oder I2C zur Anzeigerplatine (ca. 5 Leiungen)?
@ Draco (Gast) >Mal ganz ab, warum nicht einfach einen zweiten MC für die externen 7seg, >diese per RS232 ansteuern. Die Platine Huckepack auf die LEDs packen und >gut ist. Da spielt dann auch der Platz in der "Haupteinheit" keine Rolle >mehr. Sicher, aber das war dem OP ja zuviel Aufwand. >Aber wenn wir nun schon angekommen sind, in Hochschulen, zu Lehrzwecken, >einen Arduino einzusetzen statt ein eigenes Design zu gestalten... Na >Mahlzeit, unsere Ingenieur von morgen... Traurig :-( Quark, der Arduino ist schon OK, das Rumgejammer wegen einer Anpassung an die serielle Übertragung oder ggf. Schieberegister nicht!
Tany schrieb: > Draco schrieb: >> m.n. schrieb: >>> MaWin schrieb: >>>> 30 parallele Leitungen verwenden zu wolken >>> >>> Dumm, dümmer, MaWin >> Er hat doch Recht, wie sonst will man dann eine statische Anzeige >> realisieren? > > man überträgt die Daten per SPI oder I2C zur Anzeigerplatine (ca. 5 > Leiungen)? Wie soll das gehen, was sollen denn die 7seg Anzeigen mit SPI oder I2C anfangen können?! ;-) Davon mal abgesehen, ich weiß es wird ständig gemacht, i2c und SPI sind Platinenbusse. Eine Freiluftleitung ist nicht konform.
Draco schrieb: > Wie soll das gehen, Es gibt ne Menge Anzeigertreiber mit SPI (z.B TLC5922) oder I2C Interface. Oder wenn jeder 7-Segment Anzeiger mit einem Schieberregister angesteuert wird (statisch), kann man Daten per SPI futtern. Die Treiber müssen natürlich auf Anzeigerplatine sein.
Draco schrieb: > Er hat doch Recht, wie sonst will man dann eine statische Anzeige > realisieren? Ich habe doch weiter oben einen Link gezeigt. Dort werden 4094 Schieberegister verwendet. Für größere Anzeigen braucht man noch Ausgangstreiber: zum Beispiel ULN2803. Für größere Entfernungen braucht man Leitungstreiber (Arduino-Ausgänge reichen für kleinere Entfernungen aus) und, wenn man es elegant löst, eingangsseitig auch Optokoppler, die ggf. Masse. bzw. Potentialprobleme beseitigen. Jörg R. schrieb: > Geht es auch ohne Beleidigung? MaWin ist DER Pöbelbursche hier im Forum. Ihm mußt Du Deine Frage stellen.
Tany schrieb: > Es gibt ne Menge Anzeigertreiber mit SPI (z.B TLC5922) oder I2C > Interface. m.n. wollte eine statische Ansteuerung einer Anzeige wenn lange Leitungen zwischen Elektronik und Anzeige nötig sind. Das könnte man begründen mit weniger Störungen durch seltener geschaltete Leitungen auf den 30 Verbindungsandern (was man als erfahrener Elektroniker natürlich mit kontrollierter Flankensteilheit problemlos in den Griff bekommt, niederohmig genug sind die Signale sowieso). m.n. redet nun aber von seriell angesprochenen Schieberegistern auf der LED Anzeigeplatine und damit Elektronik auf der Anzeigeplatine, gar nicht passend zur Ursprungsfrage "was kümmert mich die Ursprungsgfrage und Antwort, wenn ich versuchen kann es umzudeuten damit niemand meine Fehler bemerkt". Dann gibt es aber kurze Leitungen zwischen Elektronik und LEDs bei denen es sowieso völlig egal ist ob die schnell per Multplex oder nur gelegentlich per statischer Ansteuerung geschaltet werden. Da kann man natürlich genau so gut einen MAX6958 oder ICL7219 nehmen die das dort per Multiplex machen. Die Zuleitungen sind in beiden Fällen wenige und SPI und damit völlig identsich was Störfestigkeit oder EMV Abstahlungen anlangt.
Tany schrieb: > Draco schrieb: >> Wie soll das gehen, > Es gibt ne Menge Anzeigertreiber mit SPI (z.B TLC5922) oder I2C > Interface. > Oder wenn jeder 7-Segment Anzeiger mit einem Schieberregister > angesteuert wird (statisch), kann man Daten per SPI futtern. > Die Treiber müssen natürlich auf Anzeigerplatine sein. Mir ist völlig bewusst was du meinst. Aber das war nicht die Anforderung! Es ging darum, die Anzeigen statisch zu treiben, OHNE Treiber an den 7seg Anzeigen. Sondern mit Treibern auf der Steuerplatine. Das das völliger Quark und Quatsch ist, ist richtig, aber so war die Diskussion. Deswegen kamen die statischen 30 Leitungen ins Spiel. Und gerne nochmal, auch wenn ich mich wiederhole und es auch geht, aber i2c und SPI sind Platinenbusse und nicht für Freilaufende Leitungen gedacht. Wäre ich Dozent und ein Schüler würde mir sein Projekt mit Leitungen länger 10cm und I2C anbringen, würde ich ihn abtreten lassen und dies in einem dafür passenden Protokoll neu aufsetzen lassen. Und wenn jetzt jemand kommt und sagt: "Ja aber SPI geht auch über 50 Meter!" Ja geht, aber dafür ist es nicht gedacht! Dafür gibt es RS232, RS484 oder CAN oder whatever...
>>Mal ganz ab, warum nicht einfach einen zweiten MC für die externen 7seg, >>diese per RS232 ansteuern. Die Platine Huckepack auf die LEDs packen und >>gut ist. Da spielt dann auch der Platz in der "Haupteinheit" keine Rolle >>mehr. > > Sicher, aber das war dem OP ja zuviel Aufwand. > >>Aber wenn wir nun schon angekommen sind, in Hochschulen, zu Lehrzwecken, >>einen Arduino einzusetzen statt ein eigenes Design zu gestalten... Na >>Mahlzeit, unsere Ingenieur von morgen... Traurig :-( > > Quark, der Arduino ist schon OK, das Rumgejammer wegen einer Anpassung > an die serielle Übertragung oder ggf. Schieberegister nicht! Ich Frage, weil ich mich im bereich Konstruktion spezialisiert hab und daher meine Kenntnisse mit MC's und Schaltungen nicht weit über die Grundkenntisse hinausgehen. Aber nett, dass ich deswegen direkt ein schlechter Ingenieur bin! ;) Also, ich hab mir hier mal alles durchgelesen. Das ich wahrscheinlich um Schieberegister nicht herumkomme war mir klar, ich dachte ich Frage einfach ob es auch anders geht. (Hätte mich halt interessiert) m.n. schrieb: > Wie weit liegen denn die große Anzeige und die Ansteuerung voneinander > entfernt? Sobald auch nur ein Meter Kabel dazwischen liegt, würde ich > auf keinen Fall mehr im Multiplexbetrieb ansteuern, sondern immer > statisch. Da kann die Anzeige auch 50 m vom Bedienteil entfernt stehen > und es können beliebig viele Anzeigen parallel betrieben oder auch > kaskadiert werden. Die Anzeigen sind nur ca. 30cm entfernt vom Arduino. Sollte also trotzdem mit Multiplexing funktionieren. > Natürlich, wenn du die dritte Dimension für Steckverbinder und eine fast > leere Platine (=Arduino) vergeudest, denn > Florian M. schrieb: >> Platz auf der Platine zu sparen, da der Bauraum sehr begrenzt ist. ... > Du hast zwar keinen Platz, aber für den Arduino reichts noch? Hast du > dir mal angesehen, wie leer der ist? Wenn du also diesen Platz > ausnutzen würdest, dann wäre dein Platzproblem vermutlich gelöst. Ja, > natürlich müsstest du dann selber eine Platine für diese dritte > Dimension aufbauen. ... Also der Arduino steuert ja natürlich NICHT nur die Anzeigen, dazu kommen diverse andere Komponenten. Deswegen auch einen Mega. Und der "Leere Platz" wird bereits von 2 "Huckepackplatinen" in Beschlaggenommen. Ganz so Blöd bin ich nun auch nicht. Ich denke ich werd das Ganze einfach mit Schieberegistern aufbauen, ist zwar mehraufwand aber ich komme ja scheinbar nicht drum herum. Aber schön zu wissen das hier alle immer so nett sind! =)
:
Bearbeitet durch User
Florian M. schrieb: > Die Anzeigen sind nur ca. 30cm entfernt vom Arduino. Sollte also > trotzdem mit Multiplexing funktionieren. Gut, bei der kurzen Distanz geht Beides. Es gibt auch LED-Anzeigen, die sehr klein oder intern so verschaltet sind, daß nur Multiplexing möglich ist. Da muß man es dann so machen. Bei Dir sind aber selbst die kleinen Anzeigen schon 20 mm hoch, sodaß auch dort (bei den großen sowieso) genug Platz für statische Ansteuerung vorhanden ist. Deshalb würde ich diese Ansteuerung immer bevorzugen. Einige Vorteile: der µC muß nur bei Änderungen neue Werte schreiben; minimale Störfrequenzen; der µC kann 'abstürzen', ohne daß nur noch eine Anzeige leuchtet und u.U. überlastet wird. Die Anzeigen sind kaskadierbar: wird eine weitere Stelle benötigt, wird einfach ein Schieberegister angehängt, oder eine komplette Anzeige an anderer Stelle im Raum. Die statische Ansteuerung ist damit universeller verwendbar. Wie Du siehst, haben einige Leute ein Problem damit, dies zu verstehen. Denk darüber nach und viel Erfolg! Ein Programm zur Ansteuerung ist kein Hexenwerk: http://mino-elektronik.de/progs/avr/Digit_6/Digit_6LED.c Es müßte auf einem Arduino direkt laufen.
Florian M. schrieb: > Ich denke ich werd das Ganze einfach mit Schieberegistern aufbauen, ist > zwar mehraufwand aber ich komme ja scheinbar nicht drum herum. Wenn Du wenig Aufwand willst, warum dann nicht den MM5450 nehmen. Der hat 34 Stromausgänge 16mA, also ideal für 4 Digits.
Peter D. schrieb: > warum dann nicht den MM5450 nehmen. Hmm, weil der seit 30 Jahren nicht mehr hergestellt wird, seine Herstellerfirma pleite ist und schon Einzelstücke bei eBay um 10 EUR kosten ? Dein Wissen aus Kindertsgen ist heute überholt.
MaWin schrieb: > Hmm, weil der seit 30 Jahren nicht mehr hergestellt wird Komisch, daß dann bei Microchip "In Production" steht. Und z.B. Mouser will die sogar verkaufen (1.473 auf Lager, 4,81€). Den PDIP gibst auch als Sample: "We generally accept sample requests from corporate (e.g., .com / .co.uk) accounts and educational email domains such as .edu or .ac"
:
Bearbeitet durch User
@ Florian Mönkediek (flo_m92) >Die Anzeigen sind nur ca. 30cm entfernt vom Arduino. Diese "winzige" Information hätte man auch früher rausrücken können, siehe Netiquette!! >Sollte also trotzdem mit Multiplexing funktionieren. Sicher. >Ich denke ich werd das Ganze einfach mit Schieberegistern aufbauen, ist >zwar mehraufwand aber ich komme ja scheinbar nicht drum herum. Nö, gerade WEIL es nur 30cm sind, kann man das LOCKER mit Einzeldrähten machen. Dazu muss man nur den passenden Treiber für die großen Anzeigen dazwischenschalten. Zeig uns deinen aktuellen Schaltplan und wir zeigen dir, wie man das mit den passenden Treibern ohne zusätzliche Softwareanpassung hinkriegt.
Falk B. schrieb: > @ Florian Mönkediek (flo_m92) > > >>Die Anzeigen sind nur ca. 30cm entfernt vom Arduino. > > Diese "winzige" Information hätte man auch früher rausrücken können, > siehe Netiquette!! sry, hab ich vergessen. >>Ich denke ich werd das Ganze einfach mit Schieberegistern aufbauen, ist >>zwar mehraufwand aber ich komme ja scheinbar nicht drum herum. > > Nö, gerade WEIL es nur 30cm sind, kann man das LOCKER mit Einzeldrähten > machen. Dazu muss man nur den passenden Treiber für die großen Anzeigen > dazwischenschalten. ja, kann man, habe ich mir auch gedacht, aber die ganzen Einzeldrähte krieg ich glaube ich nicht untergebracht. Aktuell ist es schon mit einem 10-Adrigen Flachbandkabel sehr knapp vom Platz. Dafür ernte ich gleich bestimmt wieder einige kritik, ist aber nunmal so. Der Aufbau ist FIX da lässt sich nix dran rütteln. > Zeig uns deinen aktuellen Schaltplan und wir zeigen dir, wie man das mit > den passenden Treibern ohne zusätzliche Softwareanpassung hinkriegt. aktuellen schaltplan hab gerade leider nicht zur verfügung, komme ich erst ab morgen dran denke ich ... Aber ich denke mit Treibern für die großen Anzeigen und Schieberegistern für die Anzeigen generell sollte es Funktionieren, dafür gibt es ja auch genug Bespiele. Schaltplan werd ich heute abend oder morgen hochladen aber im prinzip ist es nach diesem beispiel - sind nicht genau unsere komponenten aber daran haben wir uns ca. gehalten:
:
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.