Forum: Mikrocontroller und Digitale Elektronik Sägezahn mit AVR erzeugen?


von Wolf-Ruediger Juergens (Gast)


Lesenswert?

Hallo,
Hat jemand eine Idee wie ich einen Sägezahn so im Frequenzbereich von
1-100Hz mit nem AVR erzeugen kann. Das Signal soll in den X-Eingang von
einem Oszi eingespeist werden und zusammen mit einem gesteuertem
Frequenzsignal einfaches Wobbeln ermöglichen.

Danke
Wolf

von Matthias (Gast)


Lesenswert?

Hi

R2R-DA-Wandler an einen Port bauen und diesen Port in der gewünschten
Zeit binär hochzählen lassen. Für 8 Bit ist das durchaus machbar. Wenns
besser werden soll brauchts aber einen richtigen DA-Wandler.

Schaltplan:
http://www.mikrocontroller.net/forum/read-1-3204.html#3245

Matthias

von Conlost (Gast)


Lesenswert?

Hallo Wolf,
schau mal hier unter Projekte:

http://www.mikrocontroller.net/projects/dds/

Das könnte eventuell helfen.
Gruß,
Arno

von Wolf-Ruediger Juergens (Gast)


Lesenswert?

Danke für die Hinweise

Grüße
Wolf

von Uwe (Gast)


Lesenswert?

Hi!
Ein 4-fach OV reicht und du bist alle Sorgen los. Habe gerade selber
sowas auf dem Steckbrett ,geht recht ordentlich. Mit AVR hast du das
Probl.der Stufung, analog geht besser.
Bei Bedarf mache ich mal einen Plan.

MFG Uwe

von Wolf-Rüdiger Jürgens (Gast)


Lesenswert?

Hallo Uwe,
Das würde mich interessieren, ich vermute die Sägezahnerzeugung frißt
mir zuviel Rechenzeit.

Grüße
Wolf

von Uwe (Gast)


Lesenswert?

Hi!
Ok. Mache ich halt mal einen Plan. Habe übrigens etwas geschwindelt,
brauchst noch einen 4066 dazu und etwas Kleinkram.

MFG Uwe

von Uwe (Gast)


Angehängte Dateien:

Lesenswert?

Hi!
Habe es schnell mal gezeichnet->Anhang
Erzeugt aber Dreieck, weil zum wobbeln besser geeignet.
Den Spannungsregler habe ich allerdings vergessen.
Die 12V müssen jedenfalls stabiel sein.(Schaltschwellen)
Ach ja und als OV LM324 oder 2xLM358 Fet-OV's gehen nicht gut weil
die untere Schaltschwelle nur 2V von GND weg ist.
Der X-Ausgang bringt 5V. Wenn du also am Oszi(X) 0,5V einstellst,
werden in X-Richtung 10 RE erzeugt. Wenn der eine Umschalter auf
"SET"
steht und der andere auf Fmin stellst du an deinem Generator die
minimale gewünschte Frequenz ein. Danach schaltest du auf Fmax und
stellst mit dem "VCO"-Poti die maximale ein.Wenn du jetzt auf RUN
gehst ist ganz links Fmin und ganz rechts Fmax und jede RE entspricht
Delta F / 10.
zB.: DCF-Antenne Soll = 77,5kHz
Fmin = 77kHz
Fmax = 78kHz
Der "Resonanzbuckel" muss dann genau in der Mitte des Bildschirms
sein.(oder die Antenne ist daneben)

Alles klar?

Was ich gerade überlege, mit X-Eingang meinst du doch hoffentlich
X-Eingang in XY-Mode und nicht etwar externes Triggern? - dann kannst
du das alles vergessen.

Nochwas! Du musst erstmal schauen in welchem Bereich dein Generator die
"VCO-Spannung" linear verarbeitet,kann sein du musst dem VCO-Poti
noch einen Vorwiderstand verpassen.

MFG Uwe

von Uwe (Gast)


Lesenswert?

Mist! Da fehlen Knotenpunkte. Hoffe es klappt trotzdem.

Uwe

von Tobias A. (Gast)


Lesenswert?

Hi

ist vielleicht etwas krank die Idee, könnte aber
klappen.
Einfach einen Pin laufend toggeln und diesen an die
Versorgungsspannung eine OP-AMP hängen der als
Integrator beschaltet ist. Gleichzeitig den Pin
auch noch auf den Eingang des Integrators führen.
Wenn also High dann wird der OP mit Strom versorgt
und integriert das High Signal an seinem Eingang.
Wenn LOW bekommt der OP keinen Saft und die Spannung
flällt schnell wieder ab. (sollte das mit den 5 V und dem
OP-AMP nicht klappen dann halt über den Pin einen Transistor
schalten, der den OP-AMP dann versorgt)

Alternativ: DA-Wandler G

Gruß
  Tobi (der hofft das er für die Idee nicht gefressen wird)

von Wolf-Ruediger Juergens (Gast)


Lesenswert?

Hallo Uwe,
Ich denke das kann so funktionieren, ich werde es ausprobieren.

Zu deinem Einwurf, könnte man denn mit externem Triggern einen
ähnlichen Effekt erzielen?

Bloß mal so ins Unreine: Ich setzte die Anfangsfrequenz vom DDS und
erzeuge einen Triggerimpuls vom Atmel. Dann erhöhe ich die DDS Frequenz
bis zum Ende des gewünschten Bereichs (wahrscheinlich sehr schnell
ändern). Je nach X-Auflösung müßte ich doch auch den Verlauf z.b. eines
Filters den ich zwischen DDS Ausgang und Y-Eingang einfüge, sehen?

Grüße
Wolf

von Marco (Gast)


Lesenswert?

Hi

Ich mußte mal einen Sägezahngenerator bauen. Annähernd gleiches Prinzip
wie oben. Du nimmst einen Doppel-OPV (z.B. LM358). Den einen
verschaltest du zu einem Schmitttrigger und den anderen zu einem
invertierenden Integrator. Dann das Ausganssignal des einen an den
Eingang des Anderen... fertig. Wenn Du nun die Rückkopplung des
Integrators aufsplittest in zwei Wege jeweils über ein Poti mit
reihengeschalteter Diode (einmal Hin einmal Rückrichtung der Diode),
kannst du über die Potis die Steilheit der einzelnen Sägezahnflanken
festlegen. Ist jetzt etwas kompliziert beschrieben. Wenn Du möchtest,
suche ich aber meinen Schaltplan raus und stelle den hier rein.

von Sven (Gast)


Lesenswert?

Hi Wolf-Ruediger!

Was Marco meint, findest Du hier:

http://www.e-technik1.uni-rostock.de/deutsch/edu/schalt2/dreieck.pdf
http://www.physik3.gwdg.de/~wedekind/Praktika/Elektronikpraktikum/V134/v134/

Die anderen Vorschläge mit 4066 sind zu aufwändig. Google auch nach:
sägezahngenerator+opv

Mit dem AVR zeitbestimmt (Timer-Interrupt) einen Zähler (1Byte)
hochzählen lassen und als PWM (hardware oder software) ausgeben. Über
den Timer machst Du die Frequenz, bei 1Hz muss der Timer auf 1/256sec,
bei 100Hz auf 1/25600sec gesetzt werden. Bei jeden Timer-Überlauf die
PWM hochzählen und ins PWM-Register ausgeben, PWM-Überlauf von 255 auf
0 macht automatisch die fallende Flanke Deines Sägezahn. PWM-Frequenz
möglichst hoch und Ausgang über Tiefpass (R-C) glätten. Rechenaufwändig
ist das nicht, wenn Du den Interrupt und die Hardware-PWM verwendest,
geht das nebenbei, wenn Du es softwaremäßig machst, mußt Du beachten,
dass Dir andere Prozesse die Zeitschleifen nicht stören.

Sven

von Uwe (Gast)


Lesenswert?

Hi!
>Zu deinem Einwurf, könnte man denn mit externem Triggern einen
>ähnlichen Effekt erzielen?
Naja, eigentlich schon. Wenn du die Ablenkzeit deines Oszis an die
Integrationszeit des Generators angleichst geht das schon. Den
Triggerimp. kannst du am 1.OV Ausgang abnehmen. Mit AVR also das selbe,
Triggerimp. und dann mit der eingestellten Zeit deines Oszis
(x 10 RE) die Freq. bis zum gewünschten Maxwert hochlaufen lassen.

>Je nach X-Auflösung müßte ich doch auch den Verlauf z.b. eines
>Filters den ich zwischen DDS Ausgang und Y-Eingang einfüge, sehen?
Ja, aber du hast weiter das Probl. das du rechnen musst um
festzustellen in welchem Freq-bereich du dich befindest.

Übrigens Sägezahn ist durch Überbrücken des T_X-Potis mit einer Diode
ganz leicht herzustellen. Je nach Einbaurichtung steigender oder
fallender Sägezahn.

@Sven
>Die anderen Vorschläge mit 4066 sind zu aufwändig.
Falsch! Bei den anderen Generatoren kannst du die Schaltpunkte nicht
ausgeben.(für Setup aber ganz wichtig).

MFG Uwe

von Wolf-Ruediger Juergens (Gast)


Lesenswert?

Moin,
Also nach allem was ich hier so gelesen habe werde ich die Variante mit
der externen Triggerung durch den AVR probieren. Sie erscheint mir am
wenigsten aufwendig.

Danke Euch allen für die interessanten Vorschläge und Ideen, manches
davon kann ich sicher auch für andere Projekte noch verwenden.


Grüße
Wolf

von Sven (Gast)


Lesenswert?

@Uwe

>>Die anderen Vorschläge mit 4066 sind zu aufwändig.
>Falsch! Bei den anderen Generatoren kannst du die Schaltpunkte nicht
ausgeben.(für Setup aber ganz wichtig)
Falsch! Die Aufgabenstellung war: "einfaches Wobbeln ermöglichen" Von
Setup war da keine Rede. Aber für häufigere Benutzung ist Deine
Schaltung sicher komfortabler. Oder eben eine AVR-Lösung. Und bei 255
Werten auf 10 DIVs verteilt mit ausreichendem Tiefpass sieht man da
auch keine Stufen, würd ich meinen. Ein Setup ist natürlich mit dem AVR
auch einfach möglich, man muß ja nur die PWM fest auf 0 oder 255
setzen, um Fmin und Fmax einstellen zu können. Eine einfache Lösung ist
das auch nicht mehr, aber flexibel, und wenn er das so haben will...
;-)

Sven

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.