Forum: Analoge Elektronik und Schaltungstechnik Suche frequenztoleranten Rechteck->Sinus/Dreieck-Wandler


von name (Gast)


Lesenswert?

Hallo,

ich würde während meiner Semesterferien gern ein bisschen basteln und 
über Skype eine Fernsteuerung realisieren. Für den Anfang soll nur eine 
LED ein- und ausgeschaltet werden und dabei zugesehen werden können, 
ohne im selben Raum zu sein. Soweit recht unspektakulär, aber lässt sich 
ja ausbauen, falls es funktioniert.

Grundidee: Mikrocontroller bewacht zwei Poti-Spannungsteiler und misst 
die anliegende Spannung. Die gemessenen Spannungen werden in zwei Werte 
zwischen 0 und 256 umgerechnet und deren Quersumme ausgerechnet. Werte 
und Quersummen werden als Bitpakete gesendet und vom Empfänger 
ausgewertet. Eine 1 wird als hoher Amplitude gesendet, eine 0 als 
niedrige Amplitude. Auswertung mit zwei Komparatoren und 
nachgeschaltetem Mikrocontroller.

Mein kleines Problemchen ist jetzt, dass ich nicht ganz weiß, wie ich 
das Rechtecksignal des ersten Mikrocontrollers so in den Headseteingang 
des ersten Gerätes speisen soll ohne dass dieser Schaden nimmt.

Normal macht man ja ein Dreiecksignal draus und fertig. Klingt nicht 
allzuschön, würde aber für meine Zwecke ausreichen. Der Integrator ist 
aber frequenzabhängig und ich würde ganz gern den eingebauten Taktgeber 
des Mikrocontrollers nutzen, der leider nicht allzu genau ist.

Welche Möglichkeiten gibt es, einen "breitbandigen Integrator" 
aufzubauen oder einen komplett frequenzunabhängigen Wandler, der mir aus 
dem Rechteck einen Sinus oder ein Dreieck macht und die Möglichkeiten 
eines Hobby-Elektronikers mit mäßigen Kenntnissen nicht übersteigt?

Grüße

von Stefan (Gast)


Lesenswert?

Hallo,

sag mal, wir leben mittlerweile in der "digitalen Welt" und du täumst 
immer noch "analog", wie passt das zusammen?

schau mal welche Informationen du noch gleichzeitig über die 
"Verbindung" senden kannst und

wenn es denn inbedingt analog sein soll schau mal nach 
"Impulswahlverfahren" oder auch "Mehrfrequenzwahlverfahren" da gibt es 
schon ICs für die Codierung und Decodierung.
Du musst die Welt nicht neu erfinden!

Gruss

von PdG (Gast)


Lesenswert?

Wenn ich recht verstanden habe, möchtest du die Sollwerte per Potis 
aufnehmen und analog per Skype übertragen?

Dafür gibt es viele Ansätze, z.B. den von Stefan freundlich erwähnten 
MFV-Coder/Decoder, die man auch in MCUs nachbilden kann. Es könnte aber 
ein wenig mit Kanonen auf Spatzen geschossen sein.

Prinzipiell kannst du das Rechtecksignal durchaus in den Audioeingang 
einspeisen, jedoch solltest du die besonderen Eigenschaften von 
Audiosignalen beachten. Beispielsweise mögen die DC-Verschiebungen nicht 
wirklich, die beim direkten Einspeisen von nicht-balancierten 
Rechtecksignalen entstehen. Besser verwendest du ein DC-freies 
Modulationsverfahren, z.B. Manchester-Coding:
http://de.wikipedia.org/wiki/Manchester-Code

Der Audiosignalweg macht dann durch sein Tiefpassverhalten von selbst 
ein "sinus-ähnliches" Signal daraus und der auf die anderen Seite 
lauschende Empfänger-MCU kann einfach auf eine Flanke triggern und dann 
auswerten.

Hilft dir das?
PdG

von name (Gast)


Lesenswert?

@Stefan
Ich möchte erstmal was kleineres machen und mich nicht auch noch um eine 
funktionierende Funkverbindung kümmern müssen. Würde außerdem gern 
selber bisschen was knobeln - sonst lernt man ja auch nix dazu.

@PdG
Zum Teil richtig. Die Sollwerte der Potis werden analog aufgenommen, 
aber vom "Sender" vor dem Einspeisen in Skype noch in einen Wert 
zwischen 0 und 256 umgerechnet und dann als Binärzahl gesendet.

Der Manchester-Code sieht interessant aus, das kannte ich noch nicht. 
Muss ich mir anschauen. Falls ich den nicht verstehen sollte, greife ich 
halt doch auf einen Integrator zurück und nehme ein bisschen Verlust an 
der Amplitude in Kauf.

von PdG (Gast)


Lesenswert?

name schrieb:
> ...Die Sollwerte der Potis werden...
> noch in einen Wert
> zwischen 0 und 256...
>

Nur um ein häufiges Missverständnis auszuräumen: angenommen, du willst 
den Analogwert mit 8bit Auflösung messen. Das entspricht den bekannten 
256 Stufen, wobei die erste Stufe die Nummer 0 hat, die letzte aber 255.
Falls du tatsächlich einen Wert zwischen 0...256 ermitteln willst, 
müsste ein ADC mit einem Bit mehr ran.

> Der Manchester-Code sieht interessant aus, das kannte ich noch nicht.
> Muss ich mir anschauen. Falls ich den nicht verstehen sollte,

Auf Wikipedia ist das zwar knapp, aber recht gut erklärt, auch der 
Verweis auf NRZ/NRZI, die nicht gleichspannungsfrei sind und sich hier 
nicht so gut eignen.

> halt doch auf einen Integrator zurück und nehme ein bisschen Verlust an
> der Amplitude in Kauf.

Nochmals: ein Integrator wäre Overkill für diese Anwendung.
Wenn du es nachrichtentechnisch absolut richtig machen wolltest, 
müsstest du noch einen DSP dazunehmen, die Rechtecksignale per 
Oversampling analysieren und einen hochreinen Sinus daraus erzeugen [+ 
beliebig weitere Super Trouper Funktionen] - genauso Overkill.

Vorschlag: du begrenzt das erzeugte Rechtecksignal durch einen einfachen 
Spannungsteiler (bitte Gesamtwiderstand auf Treiberfähigkeit des 
MCU-Pins abstimmen) und koppelst das Signal kapazitiv auf den 
Audioeingang (100nF sollten etwa reichen).
Wenn du tatsächlich noch integrieren (verschleifen) willst, würde auch 
ein weiterer massesseitiger Kondensator am Spannungsteiler reichen, mit 
dem ein einfacher Tiefpass geformt wird. Das Signal "klingt" dann etwas 
weicher, aber der Empfänger-MCU ist das eigentlich Schnurz.

Übrigens hatte man in den 70ern ein ähnliches Verfahren zur Aufzeichnung 
von Daten auf die damals üblichen Magnetband-Kassetten benutzt, z.B. 
eine 0 als höherfrequente und eine 1 als niederfrequente Vollwelle 
(Rechteck) erzeugt und direkt auf den Audioeingang gegegeben. 
Erstaunlicherweise funktionierte das so gut, dass man in Tunerkreisen 
die ursprüngliche Datenrate von etwa 1500 bit/s erst auf 3kb/s, später 
auf unglaubliche 6kbit/s (Quad-Speed) hochschraubte. Das war allemal 
schneller, als auf Lochbänder zu stanzen. :-)
Kuckste z.B.:
http://en.wikipedia.org/wiki/ZX_Spectrum_software#Basis
Mit heutigen MCUs lässt sich so etwas sehr einfach mit den vorhandenen 
Timern erledigen, ohne dass man wie damals CPU-Zyklen auszählen musste.

Falls du keine Bestätigung für die erfolgreiche Übertragung 
zurückschicken möchtest, solltest du das zu übertragende Datum zur 
Sicherheit mehrmals senden. Auf der Empfängerseite lässt sich dann eine 
Wiederholung einfach herausfiltern.

Viel Erfolg!
PdG

P.S. bei der Gelegenheit möchte ich erwähnen, dass ich damals einen 
Fehler in der Tape-Routine des ZX-Spectrum fand, der zu einer 
Unsymmetrie des erzeugten Signals führte. Als ich das für einen eigenen 
ROM korrigierte, war oben erwähntes Quad-Speed kein Problem mehr und 
sauber zurückzulesen. Nur Octal-Speed scheiterte am Kassettenmaterial 
und den unterschiedlichen Kopfspalt-Einstellungen verschiedener 
Recorder. Haach, das waren noch Forscher-Zeiten... 8-)

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.