www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Retro Game Ping Pong modifizieren Atmega8


Autor: Stefan Westermann (tito)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bin hier neu im Forum und hätte mal eine Frage an die Spezialisten unter 
euch.
Ich habe mir das Retro Game Ping Pong zugelegt und habe dieses nun auf 
größere weiße LED´s umgebaut. Nun leuchten die LED´s aber durch das 
multiplexen nicht besonders hell. Um das zu ändern war nun mein Gedanke 
hinter die Schieberegister (siehe Schaltung) jeweils einen ULN2804 zu 
packen und zwischen Controller und Led-Zeilen jeweils einen BC337 um die 
LED´s dann mit höherer Spannung bzw. Strömen zu versorgen.
Das funktioniert aber nicht so recht. Sobald ich den Pin9 (Masse) des 
ULN anklemme leuchtet die gesamte angesteuerte Zeile, klemme ich ihn 
wieder ab wird sie normal angesteuert. Allerdings dann auch nur mit 
geringer Helligkeit.
Habe den ULN laut Datenblatt verbunden und den BC337 mit Basis an den 
Contoller, Kollektor an plus und Emitter an die LED Zeile.
Was läuft da verkehrt?

Hoffe Ihr könnt mir helfen.

Gruß
Tito

Autor: Freeed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann mach ma den Schaltplan mit ULN sichtbar :=)

Autor: Freeed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:
> BC337 mit Basis an den
> Contoller,

Das ist ein NPN-Typ - in deiner Beschaltung brauchst du einen PNP, also 
den 327

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:

> Habe den ULN laut Datenblatt verbunden und den BC337 mit Basis an den
> Contoller, Kollektor an plus und Emitter an die LED Zeile.
> Was läuft da verkehrt?
>
> Hoffe Ihr könnt mir helfen.

Zeichne mal ein Schaltbild was du da genau wie verbunden hast.

BC337 ist ein NPN Transistor. Für einen LowSide Treiber wäre aber ein 
PNP angebracht
Hast du keinen Basiswiderstand?
Welche Vorwiderstände benutzt du für die LED?
und last but not least, mit welcher Spannung gehst du an den Transistor? 
Immer noch 5V oder bist du höher gegangen? (Eng damit verknüpft ist die 
Frage nach den Vorwiderständen der LED)

Autor: Freeed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> LowSide Treiber

Hi-Side

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Freeed schrieb:
> Karl heinz Buchegger schrieb:
>> LowSide Treiber
>
> Hi-Side

Ich bring die beiden immer durcheinander. Keine Ahnung warum. Meine 
Denke ist immer: Auf welcher Seite ist die Last
Sollte aber sein: Auf welcher Seite ist der Treiber von der Last aus 
gesehen.

Sorry for that.

Autor: Stefan Westermann (tito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Anworten.

Zeichnung kriege ich auf die schnelle jetzt nicht hin.
Ich habe aber den Transistor hinter den Controller und vor den 
Vorwiderstand(R68) der LED Zeilen gestzt, ohne Basiswidertand. Den ULN 
zwischen Schieberegister und LED Spalten. Als Zusatzspannung habe mal 9 
Volt probiert.

Autor: Freeed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:
> Den ULN
> zwischen Schieberegister und LED Spalten.

Dadurch verringerst du doch die Leistung nurnoch weiter...Das macht kein 
Sinn. Wenn dann die Ausgänge vom Schieberegister an die Eingänge vom ULN 
und den gegen Masse.

Stefan Westermann schrieb:
> Ich habe aber den Transistor hinter den Controller und vor den
> Vorwiderstand(R68) der LED Zeilen gestzt

Das ist auch OK, jedoch bekommst du dadurch nicht die volle Spannung an 
deine Zeilen...nimm lieber nen PNP MIT Basisvorwiderstand.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:
> Danke für die schnellen Anworten.
>
> Zeichnung kriege ich auf die schnelle jetzt nicht hin.

Nicht mal in Paint?
1 Ausgang -> 1 Transistor -> 1 Widerstand -> 1 ULN Eingang
würden ja schon reichen. Muss ja nicht die komplette Matrix sein.

> Ich habe aber den Transistor hinter den Controller und vor den
> Vorwiderstand(R68)

den Vorwiderstand hast du gelassen?

> der LED Zeilen gesetzt, ohne Basiswidertand.

Schon mal schlecht

> Den ULN
> zwischen Schieberegister und LED Spalten.

OK. Bei dem kann man auch kaum was falsch machen.

> Als Zusatzspannung habe mal 9
> Volt probiert.

Das war IMHO keine so gute Idee. Jetzt muss mehr Spannung am 
Vorwiderstand abfallen, damit du den Stromfluss erhöhst. Dazu kommt, 
dass du dann nicht einfach einen PNP Transistor als Treiber nehmen 
kannst, weil du den Transistor dann nicht mehr mit dem µC Output zum 
sperren bringst. Besser wäre es wenn du die Vorwiderstände verkleinerst.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätts überhaupt umgedreht:
den ULN als Zeilentreiber und mit dem Schieberegister die BC337 
(+Basiswiderstand) jeweils 1 Spalte nach Masse durchschalten lassen.

Der ULN ist darauf ausgelegt mittels 5V eine höhere Spannung zu 
schalten. Brauch ich mich nicht selber drum kümmern.

Autor: Freeed (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jo, wie Karl schreibt, oder so wie im Bild - beachte jedoch bei der 
Berechnung, dass über dem ULN noch ca. 1V abfällt, musste mal im 
Datenblatt schauen.

Autor: Freeed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, mit den 9V klappt das so natürlich auch nicht, dass müsste dann 
schon die selbe Spannung wie vom uC sein. Oder eben alles anders herum 
ansteuern.

Autor: Stefan Westermann (tito)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
habe jetzt mal schnell was "gemalt", hoffe das hilft weiter.

Vorwiderstand habe ich gelasssen.

Gut, die Spannung und Widerstände kann man ändern.

Hauptsächlich geht es mir darum das die Schaltung korrekt funtioniert.

Autor: Stefan Westermann (tito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry,  Fehler in der Zeichnung. ULN2803 nicht ULN2804

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:
> Sobald ich den Pin9 (Masse) des
> ULN anklemme leuchtet die gesamte angesteuerte Zeile

Dir ist schon klar, dass der ULN das Signal invertiert und die Software 
entsprechend geändert werden muss???

Autor: Marcus B. (raketenfred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du einen Multiplexer verwendest- dann kannst du doch einfach höhere 
Ströme/Spannungen fahren- wie verhalten sich die LEDs wenn du R1 etc 
verringerst?

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In wie fern invertiert?
Wenn du einen Baisstrom fließen lässt (also eine positive Spannung 
anlegst. Bzw. ein logisches HIGH), dann leuchtet die LED, weil dann der 
Transistor durchsteuert.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon K. schrieb:
> In wie fern invertiert?
> Wenn du einen Baisstrom fließen lässt (also eine positive Spannung
> anlegst. Bzw. ein logisches HIGH), dann leuchtet die LED, weil dann der
> Transistor durchsteuert.

Der ganze Aufbau mit den ULN am Schieberegister ist doch Unsinn. Überleg 
doch mal wie da der Strom fliessen muss und welchen Weg der nimmt! Im 
Grunde kannst du dir den ULN auch sparen und gleich den ganzen Strom im 
Schieberegister versenken. Läuft doch auf genau das gleiche hinaus. Bei 
dir würde der LED-Strom über den Eingang des ULN hereinkommen. Dafür ist 
der aber ganz sicher nicht gedacht.

Wie oben schon gesagt:
Drehs um: Der Strom kommt von +
Geht durch den ULN (der vom µC angesteuert wird) über die Vorwiderstände 
durch die LED und von dort über einen NPN Transistor, der vom 
Schieberegister angesteuert wird (aber diesmal bitte mit 
Basiswiderstand) nach Masse.

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon K. schrieb:
> In wie fern invertiert?
> Wenn du einen Baisstrom fließen lässt (also eine positive Spannung
> anlegst. Bzw. ein logisches HIGH), dann leuchtet die LED, weil dann der
> Transistor durchsteuert.

Ohne ULN würden die LEDs bei Low leuchten! Der Vorschlag von Karl Heinz 
ist die sinnvollste Lösung - einfach die Matrix umdrehen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mea Culpa.

ULN2003 sind Darlington Transistor Arrays, die gegen Masse schalten.
Also ist das gut so, wie du es jetzt hast.

Muss die Hitze sein oder das Unwetter, ich bin komplett daneben 
gestanden.

Einzig die NPN solltest du gegen PNP austauschen, Basiswiderstand dazu, 
als versorgungsspannung 5V (anstelle von 9) und natürlich im Programm 
die Invertierung beachten.

Nochmals: Ich hab mich da komplett verfranst! Sorry for that
Das ist mir jetzt peinlich. Hoffentlich hast du noch nicht angefangen 
den ULN um zulöten.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus 2m5 schrieb:
> Simon K. schrieb:
>> In wie fern invertiert?
>> Wenn du einen Baisstrom fließen lässt (also eine positive Spannung
>> anlegst. Bzw. ein logisches HIGH), dann leuchtet die LED, weil dann der
>> Transistor durchsteuert.
>
> Ohne ULN würden die LEDs bei Low leuchten! Der Vorschlag von Karl Heinz
> ist die sinnvollste Lösung - einfach die Matrix umdrehen.

Ja, also wenn man die LEDs direkt an die Schieberegister dengeln würde. 
Da haste natürlich Recht.

Autor: Klaus 2m5 (klaus2m5)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Muss die Hitze sein oder das Unwetter, ich bin komplett daneben
> gestanden.

Die Grundidee dahinter war schon ganz O.K. denke ich.

Möglicherweise muss man noch einen Vorverstärker für die BC327 einsetzen 
- oder gleich UDN2981.

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Versogungsspannung der Matrix kann man nur erhöhen, wenn auch die 
Schieberegister mit der höheren Spannung betrieben werden.

Die Ausgänge des ATMEGA und des 4094 sind über Dioden auf den 
Betriebsspannungsbereich "geclampt". Damit können sie sich nur zwischen 
Ground-0,6V und VCC+0,6V bewegen und keinen High-Side Treiber mit 
höherer Spannung treiben. Der BC327 würde immer durchgeschaltet sein, da 
zwischen Basis (~5,6V) und Emitter (~9V) immer ein Strom fließen würde. 
Auch mit einem BC337 als Emitterfolger klappt das nicht, da die Spannung 
am Emitter immer ca. 0,6V unter der Basisspannung liegt und die höhere 
Spannung an der Matrix gar nicht ankommt.

Autor: Stefan Westermann (tito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>
> Einzig die NPN solltest du gegen PNP austauschen, Basiswiderstand dazu,
> als versorgungsspannung 5V (anstelle von 9) und natürlich im Programm
> die Invertierung beachten.
>
> Nochmals: Ich hab mich da komplett verfranst! Sorry for that
> Das ist mir jetzt peinlich. Hoffentlich hast du noch nicht angefangen
> den ULN um zulöten.

Habe noch nicht angefangen. Werde mir morgen ein paar pnp Transistoren 
besorgen und das mal ausprobieren.
Allerdings bin ich was das programmieren angeht nicht besonders Firm, 
mal schauen ob ich das geregelt kriege.

Autor: Stefan Westermann (tito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht wäre auch jemand so nett mal in das Programm zu schauen und 
die Invertierung zu ändern.

Autor: Klaus 2m5 (klaus2m5)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan Westermann schrieb:
> Vielleicht wäre auch jemand so nett mal in das Programm zu schauen und
> die Invertierung zu ändern.

Geht nur, wenn der Sourcecode verfügbar ist. Wenn nicht, nimm ein paar 
4049 Inverter und Level-Shifter, um die ULN und Transistoren zu treiben.

Autor: Stefan Westermann (tito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Geht nur, wenn der Sourcecode verfügbar ist.

 Ist vorhanden, kein Problem.

Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wo finde ich den Source-Code?

Grüße

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der komplette Sourcecode des Pong Spiels auf dem Pong "Bausatz" ist 
nicht verfügbar. Aber es sind die wesentlichen Routinen zur Ansteuerung 
der LEDs verfügbar (BASCOM).

Desweiteren sind über ca. 30 verschiedene Projekte mit anderen Spielen 
und Anwendungen auch in Sourceform (BASCOM, C) verfügbar.

Man braucht nur z.B. auf der ELO Webseite nach Pong zu stöbern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.