Hallo an alle, bin relativ neu in dem gebiet µController und wollte für mein erstes kleineres Projekt nachfragen. Zu meinem anliegen: Ich möchte eine 4-Stellige 7 Segment Anzeige ansteuern. Durch das Tutorial auf dieser Seite habe ich einmal das Multiplexing gesehen und einmal die Lösung mit dem Schieberegister. Nun wollte ich mit möglich wenig Pins auskommen. Im anhang habe ich eine Schaltung gelegt. Wäre dieser Aufbau so möglich? Ich würde natürlich auch noch vorwiederstände nutzen für die einzelnen Segmente. Folgende überlegungen habe ich mir für das Programm gemacht: 1. Muster von dem ersten Digit in das Schieberegister laden und ausgeben 2. Transistor von dem ersten Digit durchschalten und ausschalten 3. Muster von dem zweiten Digit in das Schieberegister laden und ausgeben 4. Transistor von dem zweiten Digit durchschalten und ausschalten usw. Würde das so funktionieren?
> Wäre dieser Aufbau so möglich? VCC gehört nicht an den Kollektor der BC547 > Ich würde natürlich auch noch vorwiederstände nutzen für die einzelnen > Segmente. War das Einzeichnen jetzt so schwierig und die Angabe, welche Displays mit welchen Kenndaten es sind ? Denn mit so mangelhaften Angaben kann es dir niemand ausrechnen. Offiziell verträgt der 74HC595 nur 70mA durch VCC, also 10mA pro Segment. Da ein Segment nur 1/4 der zeit an ist, führt das zu einer Helligkeit als ob die Anzeigen mit 2.5mA dauerhaft durchflossen werden. Nicht besonders viel. Immerhin verträgt der 74HC595 bis 35mA aus einem Ausgang, man könnte also 8.75mA durchschnittlich durch die LEDs fliessen lassen wenn man den Strom durch VCC mit 254mA zulässt. So lange kein Ausgang des 74HC595 wieder in andere Logikbausteine geht, ist diese Überlastung normalerweise tolerabel. Deine BC547 müssten diese 254mA dann auch nach Masse ableiten können. Offiziell vertragen die aber nur 100mA. Korrekterweise müsste man also BC337 nehmen. Um 254mA gut durchzuschalten, braucht man 12 bsi 24mA Basisstrom, also 220 Ohm Basisvorwiderstand. Software funktioniert so.
MaWin schrieb: > VCC gehört nicht an den Kollektor der BC547 Müsste ich dann dort anstatt Vcc z.B. eine externe Batterie anschließen? MaWin schrieb: > War das Einzeichnen jetzt so schwierig und die Angabe, > welche Displays mit welchen Kenndaten es sind ? Es wurde sehr unübersichtlich deshalb habe ich es nicht eingezeichnet. Vorwiederstände würde ich 330 Ohm nehmen. Die Wiederstände an der Basis 1 kOhm, diesen Wert habe ich aus dem Tutorial. Wechsle jedoch dann die Transistoren zu den vorgeschlagenem BC337. Die Displays sind: SA 08-11 RT von Kingbright
Orhan E. schrieb: > MaWin schrieb: >> VCC gehört nicht an den Kollektor der BC547 > > Müsste ich dann dort anstatt Vcc z.B. eine externe Batterie anschließen? Das würde nix ändern. SA 08-11 RT sind 7-Segment mit gemeinsamer Anode. Der der Strom immer von der Anode zur Kathode fliesst, bedeutet das, dass du über den Transistor diesen Anschluss mit Vcc verbinden müsstest. In diesem speziellen Fall kannst du dir den Transistor wie einen Schalter vorstellen, der, wenn er gedrückt ist, den A-Anschluss mit Vcc verbinden muss. Dein Transistor macht das aber nicht. Wenn dein Transistor durchschaltet, dann verbindet er Vcc direkt mit GND und sowas nennt man im Allgemeinen einen Kurzschluss. Hast du aber 7-Segment mit einer gemeinsamen Kathode, dann müssste der Transistor diesen Ausgang nach GND durchverbinden. Welche der beiden Schaltungsvarianten notwendig sind, kann man aber ohne Kentnis des konkreten Typs von 7-Segment nicht sagen. >> War das Einzeichnen jetzt so schwierig und die Angabe, >> welche Displays mit welchen Kenndaten es sind ? > > Es wurde sehr unübersichtlich deshalb habe ich es nicht eingezeichnet. Das ist kein Grund. Man kann das alles auch so zeichnen, dass es eben nicht unübersichtlich wird. Dazu darfst du dann eben nicht beim ersten Entwurf stehen bleiben, sondern musst dir ein wenig überlegen, welche Bausteine du ein wenig verschiebst, so dass du auf der Zeichnung den Platz bekommst um die Leitungen kreuzungsfrei und mit allen Bauteilen einzuzeichnen. Mit der Eagle Gruppen-Funktion ist es gar nicht mal besonders schwer, einen ganzen Bereich inklusive Veschaltung auszuwählen und gemeinsam zu verschieben. Nur tun muss man es!
Karl Heinz Buchegger schrieb: > Welche der beiden Schaltungsvarianten notwendig sind, kann man aber ohne > Kentnis des konkreten Typs von 7-Segment nicht sagen. Ich habe auf jeden Fall eine gemeinsame Anode. Eine neue Version ist im Anhang. Diese ist von der Anordnung her bestimmt sehr verbesserungswürdig aber ich finde es schon übersichtlicher als vorher. Jetzt dürfte es doch funktionieren oder?
> Jetzt dürfte es doch funktionieren oder? Versuch's jetzt aber mit PNP BC328 wenn du schon "umpolst".
Hallo, ich habe letzte Woche einen erfolgreichen Test mit einer 4-fach LED Anzeige mit gemeinsamer Anode und einem atTiny2313 ohne weitere Außenbeschaltung gemacht. Die LED-Anzeige wird mit 1000Hz gemultiplext, so dass jede der 4-Stellen mit 250Hz ein 'update' erhält. Über den seriellen Eingang lassen sich mit 9.600 Baud,8,N,1 einfach Zeichenketten in die Anzeige schreiben. Beispiel: "Hallo Welt heute ist der 27.09.2011\r" Ist der Text länger als 4 Zeichen, so wird die Text der Anzeige automatisch nach links gescrollt, also das Sichtfenster nach rechts. Der atTiny2313 wird im Grenzbereich betrieben ! und ein Unschönheit soll auch nicht verschwiegen werden, eine "1" ist heller als eine "8". D.h. je mehr Segmente der LED-Anzeige leuchten, desto dunkler sind diese, somit ist der Strom über ein I/O Pin begrenzt ist. Die übersetzte FW als HEX-Datei kann ich zusenden. .
Hallo, ich habe die ganze Diskussion nicht durchgelesen. Hast du mal über die Verwendung eines MAX7219 nachgedacht? Das ist ein IC zur Ansteuerung von bis zu acht Sieben-Segment-Anzeigen. Gruß, Alex
Hallo, noch ist noch ein vollständiger Schaltplan einer 8-stelligen LED-Anzeige. Daraus solltest Du das für dich nötige ableiten können. Da ich auch einige Platinen angefertigt habe, kann ich auch ein Bild, ein PDF mit den Bauteilen und den Bauteilwerten beisteuern. .
Uwe S. schrieb: > Hallo, > > ich habe letzte Woche einen erfolgreichen Test mit einer 4-fach LED > Anzeige mit gemeinsamer Anode und einem atTiny2313 ohne weitere > Außenbeschaltung gemacht. Wenn du das für dich privat machst, so ist das deine Sache. Aber bitte propagier sowas nicht in einem Forum. Du empfiehlst ja einem Fahranfänger auch nicht, mit 160km/h unangeschnallt durch den Wald zu brettern, nur weil dir nichts passiert ist. Danke.
Uwe S. schrieb: > Da ich auch einige Platinen angefertigt habe, kann ich auch ein Bild, > ein PDF mit den Bauteilen und den Bauteilwerten beisteuern. Bist Du sicher auch die im Schaltpaln angegebenen Werte bestückt zu haben? Zumindest die Vorwiderstände sehen für mich nicht nach 330 Ohm aus! Grüße Timo
Hallo Timo, danke fürs genaue hinsehen. im Original haben die Widerstände die Farbringe: orange-orange-schwarz-schwarz-braun Das ist also 330 Ohm 1% "Rechner für 5 (6) Farbringe" http://www.dieelektronikerseite.de/Tools/Widerstandsrechner.htm Mit dem Ohmmeter habe ich dies in der Schaltung überprüft. .
Uwe S. schrieb: > im Original haben die Widerstände die Farbringe: > > orange-orange-schwarz-schwarz-braun > > Das ist also 330 Ohm 1% Ok dann täuscht das Bild. Ich hatte das jetzt für braun - braun - schwarz ..... gehalten, also 110 Ohm. Grüße Timo
Hallo Timo, ja Braun sind Orange sind sich sehr änhlich. Ich habe gerade in die atTiny2313 4-fach LED-Anzeige 68Ohm Reihenwiderstände eingebaut. Somit ist der atTiny nicht mehr im Grenzbereich. Beitrag "Re: 7 Segment mit 4 Stellen - Schieberegister und Multiplexing"
Hallo nochmal, habe nun die Schaltung aufgebaut und versucht mal mit zwei Stellen zu probieren. Im Anhang ist das Programm, welches ich geschrieben habe für die zwei Stellen. Jedoch ist es nun so, das bei der 1. Stelle die 2. Stelle erahnt werden kann. Also die 2. Stelle ist schwächer leuchtend in der 1. Stelle zu sehen. Woran kann das liegen?
Du musst den Aufruf von qAusgabe solange verzögern, bis keine Anzeige mehr freigeschaltet ist. while(1) { //Erste Stelle ausgeben schreibe1(); PORTB &= ~(1<<DigitII); //DigitII ausschalten ----> hier Aufruf von qAusgabe PORTB |= (1<<DigitI); //DigitI einschalten //Zweite Stelle ausgeben schreibe2(); PORTB &= ~(1<<DigitI); //DigitI ausschalten ----> hier Aufruf von qAusgabe PORTB |= (1<<DigitII); //DigitII einschalten } ansonsten reagiert die jeweils falsche Stelle bereits auf die Ausgabe vom Schieberegister. Aber im Endeffekt wird das alles sowieso nicht so bleiben, sondern in eine Timer-ISR ausgelagert.
Ähm. Ich hoffe jetzt aber ganz stark für dich, dass du jetzt keine schreibe1() schreibe2() schreibe3() ... schreibe9() schreibe0() Funktionen machst. Das ist der falsche Weg. Du brauchst eine einzige Ausgabefunktion, der du ein Byte übergibst und die dieses Byte Bit für Bit an das Schieberegister raustaktet. Welche Segmente dann leuchten sollen bestimmt der Bytewert, der an diese Funktion übergeben wird.
Ich habe immer einen MAX7219 für 6€ http://www.maxim-ic.com/datasheet/index.mvp/id/1339 verwendet. Alles ist drin und man braucht nur SPI Steurung. Sogar die Helligkeit ist steuerbar.
Hallo, bin erst seit gestern wieder an meinem kleinen Projekt dran. Vielen dank für den tipp mit dem einen Byte welches ich einfach raustakte. Habe aber seit gestern mit einem anderen Problem zu kämpfen. Ich habe nun die Schaltung erstmal so aufgebaut, das die gemeinsamen Anoden der vier Stellen einfach an der Versorgung sind. Ich schalte also nicht mit den Transistoren, die Stellen müssten alle die selbe Zahl anzeigen. Die Stellen A bis G + Dp habe ich an dem 74HC595. Leider ist es so das ich nichts an meinem Siebensegment Anzeige sehe. Es klingt komisch, aber wenn ich mit meinem Finger den 74HC595 berühre, dann leuchten meine Stellen auf. Was kann das sein? Im Anhang ist der derzeitige Quellcode. Vielen dank.
> aber wenn ich mit meinem Finger den 74HC595 berühre, > dann leuchten meine Stellen auf Es weiß natürlich niemand, welche Schaltung du nun aufgebaut hast, aber vielleicht solltest du mal alle Eingänge des 74HC595 anschliessen, so auch G.
Tach auch, eigentlich wollte ich keine Antwort auf die Ursprüngliche Frage liefern, mir widerstrebt es aber, für meine Frage ein extra Beitrag zu erstellen. Ich prinzip habe ich das selbe vor wie der TE. Nur benötige ich lediglich 3 * 7 Segmentanzeigen. Kann man diese Schaltung so übernehmen: Beitrag "Re: 7 Segment mit 4 Stellen - Schieberegister und Multiplexing" ? Es ist nicht 100% zuortbar, warum da noch eine ganze Weile gemeckert wurde. Im Prinzip sehe ich da kein Fehler und würde es genauso machen. Oder passt da was nicht? Ich würde mich auf eure Antworten freuen :) LG Hummel.
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.