Forum: Mikrocontroller und Digitale Elektronik DA Wandler an Atmega 8 mit hohem I out


von Stefan W. (ark77)


Angehängte Dateien:

Lesenswert?

Hallo zusammen, ich benötige ein wenig Hilfe.

Ich möchte meine Eisenbahn über einen yC steuern. 0-12 Volt aufgeteilt 
auf 64 Schritte ( Fahrstufen ).

Ich möchte mir hierfür ein Programm schreiben welches in Abhängigkeit 
zweier Tasten die Fahrstufen entweder herauf oder herunter zählt. Das 
Ganze natürlich mit Zeitschleifen damit das ganze nicht gleich auf 
Fahrstufe 64 springt.

Jetzt bekomme ich am Ausgang des yC 5 Volt.

Ich benötige aber eine Aufteilung auf 0 bis 12 Volt und natürlich auch 
eine höhere Ausgangsleistung.

Das R-2R Netz das ich auf Eurer Seite gefunden habe liesse sich ja auf 6 
bit erweitern um auf 64 Fahrstufen zu kommen.

Die Frage ist kann man zb die Massen 2 er Stromquellen ( 5 V und 12 V) 
zusammenlegen und dann mit Basiswiderstand die Widerstände über einen 
Transistor auf 12 Volt Schalten und dann das Endsignal auf einen OP 
geben welcher diese Ausgangsleistung hat. Ich spreche hier von 
mindestens 300 mA, besser mehr falls ich mal 2 Loks auf der Gleichen 
Strecke betreiben möchte. Hintergrundgedanke ist es nachher durch 
verschiedene Programmabläufe Loks automatisch fahren zu lassen.

Oder halt von Hand die Geschwindigkeit selbst über Tasten zu regeln. 
Zusätzlich wollte ich dann noch die 6 Ausgänge des yC dazu verwenden um 
mit einem weiteren Programm und einem weiteren yC die 64 Fahrstufen auf 
7 Segmentanzeigen anzuzeigen.

Wie ich das allerdings mache weiss ich schon.

Mein Problem ist die technische Geschichte aus 6 bit 5 Volt 0-12 Volt 
mit höheren Strömen regeln zu können.

von Karl H. (kbuchegg)


Lesenswert?

Stefan Waiblinger schrieb:

> Ich möchte mir hierfür ein Programm schreiben welches in Abhängigkeit
> zweier Tasten die Fahrstufen entweder herauf oder herunter zählt. Das
> Ganze natürlich mit Zeitschleifen damit das ganze nicht gleich auf
> Fahrstufe 64 springt.

Zietschleifen sind Unsinn.
Benutze eine ordentliche Entprellung wie die Komfortroutinen von hier
Entprellung
und das 'Problem' löst sich in Luft auf.

> Die Frage ist kann man zb die Massen 2 er Stromquellen ( 5 V und 12 V)
> zusammenlegen und dann mit Basiswiderstand die Widerstände über einen
> Transistor auf 12 Volt Schalten und dann das Endsignal auf einen OP
> geben welcher diese Ausgangsleistung hat.

Lass den DAC wie er ist. Beschäftige dich lieber damit, wie du aus den 0 
bis 5V eine Spannung von 0 bis 12V machen kannst.
Ein Verstärker (OpAmp ist schon mal gut) mit einer entsprechenden 
Spannungsverstärker ist schon mal ein guter Ansatz.

> Oder halt von Hand die Geschwindigkeit selbst über Tasten zu regeln.
> Zusätzlich wollte ich dann noch die 6 Ausgänge des yC dazu verwenden um
> mit einem weiteren Programm und einem weiteren yC die 64 Fahrstufen auf
> 7 Segmentanzeigen anzuzeigen.

kein weiterer µC!

Es ist ein Trugschluss zu glauben, die Dinge werden einfacher, wenn man 
2 µC einsetzt, wenn einer alleine die Aufgabe problemlos wuppen kann. 
Die 7-Segmentanzeigen macht dein Haupt-µC problemlos mit. Da kommt der 
noch nicht mal ins schwitzen.
Wenn dein µC nicht genügend Ausgangspins hat, dann benutze einen Typ der 
sie hat. Du brauchst 6 + 7 + 2 Ausgänge und 2 Eingänge. Minimum. Wenn 
dann noch was dazu kommt, dann kann das noch in die Höhe gehen.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Lass den DAC wie er ist. Beschäftige dich lieber damit, wie du aus den 0
> bis 5V eine Spannung von 0 bis 12V machen kannst.
> Ein Verstärker (OpAmp ist schon mal gut) mit einer entsprechenden
> Spannungsverstärker ist schon mal ein guter Ansatz.

Du suchst einen nicht invertierenden Verstärker
http://www.elektronik-kompendium.de/sites/slt/0210151.htm

Achte darauf, dass der OpAmp ein sog. "rail to rail Typ" ist. d.h. er 
kann die Ausgangsspannung bis zu den Maxima/Minima seiner 
Versorgungsspannung einstellen.

: Bearbeitet durch User
von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

PWM kommt dafür nicht in Frage?
Das wäre meiner Einschätzung nach wesentlich einfacher als ein DAC per 
Widerstandsnetzwerk.

Etwas schwieriger stelle ich mir die Fahrtrichtungsumschaltung vor, dann 
muss wahrscheinlich die Stromrichtung gewechselt werden.

von Stefan W. (ark77)


Lesenswert?

Hallo, die Zeitschleifen wollte ich nicht zum entprellen benutzen 
sondern um ein langsames hochzählen der Fahrstufen bei betätigter taste 
zu erzeugen.


>Lass den DAC wie er ist. Beschäftige dich lieber damit, wie du aus den 0
>bis 5V eine Spannung von 0 bis 12V machen kannst.
>Ein Verstärker (OpAmp ist schon mal gut) mit einer entsprechenden
>Spannungsverstärker ist schon mal ein guter Ansatz.

Hier benötige ich ein wenig Hilfe, ich kenne mich mit den OPs noch nicht 
so gut aus. Was ist ein OpAmp. Mein Problem ist das ich nicht so recht 
weiss wie ich das Schaltungstechnisch aufbauen soll.

von chris (Gast)


Lesenswert?

nutz doch einfach eine hardwarepwm im modus fastpwm damit kannst du 
direkt nen transistor steuern und über die tasten einfach auf/abzählen 
und diesen wert in das entsprechen OCRnX schreiben der den dutycycle 
festlegt

                     12V
                      |
                      |
                      R=10Kohm
                      |------------------------ UB variabel
                      C            |
  AVR-Pin---10Kohm---B   TR1       C=10µF
                      E            |            °
                      |            |            |
                     GND          GND          GND

von Stefan W. (ark77)


Lesenswert?

Die Fahrtrichtung ist relativ einfach zu wechseln, entweder per 2 
poligem Wechselschalter, oder sobald ich das primäre Problem der 
Signalumsetzung gelöst habe, kann ich mit einem Ausgang des yC über 
einen Transistor ein 2 pol Relais umschalten welches die Polung an den 
Gleisen einfach herumdreht.


Eine PWM Steuerung hatte ich mir auch Überlegt die wäre sogar um ein 
vielfaches einfacher da ich hier einfach über einen Transistor in einem 
bestimmten Puls Pausenverhältnis die Geschwindigkeit der Loks regeln 
könnte. Müsste dann halt nur ein entsprechendes Verhältnis austesten, 
das wäre auch kein Problem.


Ich habe allerdings vor die Fahrstufen auf 2 Siebensegmentanzeigen 
anzeigen zulassen.

Desweiteren habe ich ein Soundmodul bestellt, welches Dampflokgeräusche 
in Abhängigkeit der Fahrspannung erzeugt. Das heisst zb. 3 Volt = 
Geräusch der Zylinder langsam, und 8 Volt Geräusch der Zylinder 
schneller.

Und das würde meiner Auffasung nach mit einem PWM Signal nicht 
funktionieren.

Ich stoße nur leider mit meinem bisherigem Wissen ein wenig an meine 
Grenzen was die Umsetzung von 6 bit auf 0-12 Volt mit entsprechender 
Ausgangsleistung angeht. Bräuchte da mal einen schweren Wink mit nem 
Zaunpfahl. Eventuell das eine oder andere Bauteil oder einen Schaltplan 
wie so etwas aufzubauen wäre.

von Karl H. (kbuchegg)


Lesenswert?

Stefan Waiblinger schrieb:
> Hallo, die Zeitschleifen wollte ich nicht zum entprellen benutzen
> sondern um ein langsames hochzählen der Fahrstufen bei betätigter taste
> zu erzeugen.

Nochmal.
Benutz eine ordentliche Entprellung wie die angegebene.

Dann brauchst du den ganzen Käse mit Zeitschleifen nicht.

Zeitschleifen sind was für Anfänger, damit sie überhaupt mal was 
programmieren können. zeitschleifen (in dieser Größenordnung) sind aber 
kein taugliches Mittel für Programme zum Einsatz in der realen Welt. Die 
sind so gesehen ganz großer Müll!

Die Entprellung holt dir einzelne Tastendrücke raus und hat einen 
Autorepeat. Mehr brauchst du nicht.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Stefan Waiblinger schrieb:

> Ich habe allerdings vor die Fahrstufen auf 2 Siebensegmentanzeigen
> anzeigen zulassen.

Ist kein Argument.
Du kannst ja die PWM nach wie vor in 64 Stufen einstellen. Dann benutzt 
du eben nicht alle möglichen PWM Werte, sondern nur 64 davon.

> Und das würde meiner Auffasung nach mit einem PWM Signal nicht
> funktionieren.

Du gibst ja das PWM Signal nicht direkt auf die Schiene sondern glättest 
es vorher zu einer Gleichspannung.

von chris (Gast)


Lesenswert?

wie wäre es mit ner H-Brücke somit kannst du in 64-stufen über ne PWM 
vorwärts und rückwärts fahren lassen.

ähm von wieviel leistung reden wir hier eigentlich?

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

chris schrieb:
> nutz doch einfach eine hardwarepwm im modus fastpwm damit kannst du
> direkt nen transistor steuern und über die tasten einfach auf/abzählen
> und diesen wert in das entsprechen OCRnX schreiben der den dutycycle
> festlegt

Seh ich auch so. Das macht der Mikrocontroller mit links. Wertvolle 
Infos:
AVR-Tutorial: PWM
AVR PWM
Motoransteuerung mit PWM

Zum Fahrtrichtungswechsel:
https://de.wikipedia.org/wiki/Vierquadrantensteller

von Stefan W. (ark77)


Lesenswert?

Stefan Waiblinger schrieb:

> Ich habe allerdings vor die Fahrstufen auf 2 Siebensegmentanzeigen
> anzeigen zulassen.

Ist kein Argument.
Du kannst ja die PWM nach wie vor in 64 Stufen einstellen. Dann benutzt
du eben nicht alle möglichen PWM Werte, sondern nur 64 davon.

> Und das würde meiner Auffasung nach mit einem PWM Signal nicht
> funktionieren.

Du gibst ja das PWM Signal nicht direkt auf die Schiene sondern glättest
es vorher zu einer Gleichspannung


--------------------------

Da hat du Recht ! ich könnte 64 pwm Signale speichern die ich dann 
durchfahre und zu jedem entsprechenden PWM Signal gibts die 
entsprechende Fahrstufe auf die 7 Segmentanzeige.

Hmmpf auf die Idee bin ich garnicht gekommen.


2 weitere Fragen:

ich kann das PWM Signal zu einer Gleichspannung Glätten. Unter Glätten 
versteh ich jetzt einfach mit einem Kondensator das Rechtecksignal 
auszugleichen, seh ich das halbwegs richtig ? Also so wie bei einer 
Spannungsquelle.


Zum Thema PWM Signal werden Euch jetzt die Haare zu Berge stehen.
Ich weiss das meine kleinen yC Kameraden einen PWM Ausgang besitzen, die 
Funktion des selbigen werd ich mir nachher mal durchlesen, ich hatte die 
PWM Geschichte eigentlich abgeschlossen, als ich eben Euren Tipp gelesen 
habe, fiel mir natürlich als erstes ein ein PWM Signal mit Zeitschleifen 
zu erzeugen.

Das ist aber sicher nicht das was ihr gemeint habt oder ?

: Bearbeitet durch User
von Stefan W. (ark77)


Lesenswert?

Danke für die Infos und die Links, lese mir erstmal durch!

von Karl H. (kbuchegg)


Lesenswert?

Stefan Waiblinger schrieb:

> 2 weitere Fragen:
>
> ich kann das PWM Signal zu einer Gleichspannung Glätten. Unter Glätten
> versteh ich jetzt einfach mit einem Kondensator das Rechtecksignal
> auszugleichen, seh ich das halbwegs richtig ? Also so wie bei einer
> Spannungsquelle.

Ich bin schon auf der Suche nach einer entsprechenden Endstufe

Mit den Suchbegriffen
"eisenbahn pwm analog fahrspannung"
hab ich jetzt erst mal Goggle gequält.

Über diverse Links bin ich bei
http://www.mec-krefeld.de/elektronik.html
gelandet.

Die scheinen sowas zu haben. Abschnitt Blockstreckenfahrregler

Ich hab hier aber kein Eagle auf der Maschine, so dass ich mir die 
Schaltun dazu noch nicht ansehen konnte, ob man sich da die 
PWM->Spannungsumsetzung raus klauen könnte.

von Karl H. (kbuchegg)


Lesenswert?

Stefan Waiblinger schrieb:

> habe, fiel mir natürlich als erstes ein ein PWM Signal mit Zeitschleifen
> zu erzeugen.

Oh Mann.
Du schreibst jetzt 100 mal: Zeitschleifen sind Scheisse!

>
> Das ist aber sicher nicht das was ihr gemeint habt oder ?

Nein.
Nenn halt mal deinen µC beim Namen!

So ein kleiner AtMega kostet ein paar Euro und spielt alle Stückchen die 
du brauchst und dabei langweilt der sich noch. Wenn du keinen Brenner 
hast, der mit den AVRs umgehen kann, und du auch keinen kaufen willst, 
dann eben ein kleiner Arduino als Hardware. die gibts in China zum 
Gegenwert von eine paar kleinen Bier und die haben schon einen 
Bootloader drinnen.

: Bearbeitet durch User
von Stefan W. (ark77)


Lesenswert?

Keine Sorge Zeitschleifen sind jetzt ausverkauft hier!

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Stefan Waiblinger schrieb:
> Keine Sorge Zeitschleifen sind jetzt ausverkauft hier!

Die sind bestimmt noch auf dem Schwarzmarkt zu haben   =)

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
Noch kein Account? Hier anmelden.