-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: Sinuswelle digital erzeugen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    07.06.2010
    Ort
    Kt Zürich
    Alter
    21
    Beiträge
    31

    Sinuswelle digital erzeugen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo
    Ich frage mich, wie man mit möglichst geringem Material- und Pin-bedarf eine Sinuswelle und am besten auch andere Wellenformen mit guter Auflösung erzeugen kann.
    Ich konnte im Internet keine für Anfänger wie mich leicht verständlichen Informationen finden.
    Mit einem Kondensator allein gehts wohl nicht. Ausserdem könnte man die Wellenform nicht ändern. PWM fällt beim ATMega168, den ich dazu verwende sowieso weg(500Hz).
    Vielleicht könnte man verschiedene Pins mit unterschiedlichen Widerständen im Takt ansteuern?
    Also:
    1 volt Pin, dann 2v, dann 3, 4, 5, und wieder 4, 3, 2, 1?
    Oder gehts mit noch weniger Pins?
    z.B. Software PWM mit >50 khz?
    Oder weniger Rechenintensiv?
    Vielen Dank für eure Antworten!
    Ein Elektron ist das positivste, was ich mir vorstellen kann.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    Hi

    Ja du kannst dir einen DA Wandler aus Widerständen bauen, ist sehr einfach und günstig.
    Oder du benutzt einen fertigen DA Wandler, aber meist teuer.
    Oder du benutzt nen AVR der schon nen DA Wandler drin hat, z.B. nen Xmega.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Mit einen DA-Wandler mit Widerständen, wie ToBiKa empfiehlt, sind sehr
    hohe Frequenzen möglich und das System ist auch frei von eventuellen
    PWM-Resten. DA-Wandler nach der R2R-Widerstandsmethode brauchen
    beispielsweise 8 Pins zur Darstellung von 256 Analogstufen.
    In Frequenzumrichtern wird der "Sinus" mit reiner PWM erzeugt, hierbei
    erfolgt die Glättung mit der Motorinduktivität. VG Micha

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das passende Verfahren heißt DDS. Für die Ausgabe braucht man da einen Digital-Analogwandler, in irgendeiner Form. Der µC ist dabei schon relativ stark beschäftigt.

    Wenn die Frequenz der Sinuswelle nicht so hoch sein muss, kann man auch beim Mega168 einen PWM Ausgang als DA Wandler nutzen. Bei 7 Bit PWM Auflösung kommt man schon auf rund 150 kHz PWM Frequenz (bei 20 MHz takt) und könnte damit auch noch einen Sinus bis etwa 10 kHz darstellen. Am Ausgang braucht man dann als Hardware nur einen Tiefpassfilter - je niedriger die Frequenz, desto einfacher kann der Filter ausfallen.

    Besser wird es mit einem externen DA Wandler oder halt einer R2R Widerstandskette, für wenig PINs ggf. auch am SPI Anschluß.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Bei der R2R-Lösung mit SPI zum DA-Wandlerm wäre SPI jedoch wieder
    ein Nadelöhr, sicher bei niedrigen Frequenzen kein Problem. Ansonsten
    Atmega32 o.ä. und dafür vielleicht 16 Pins vorsehen. Die Parallelausgabe
    durfte nicht so zeitkritisch sein und 16 bit sind ja schon eine quasilineare
    Auflösung. VG Micha

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Vielleicht wäre es am einfachsten den Sinus in einer "lookup table" in Flash ablegen und mit gewünschter Frequenz nur ablesen und per R2R ausgeben.

    MfG

  7. #7
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    So schlimm ist die Begrenzung der Datenrate durch SPI nicht - wenigstens nicht bei einem 8 Bit Wandler. Bei Hardware SPI kommt man bis 2 Zyklen pro Bit - mit einem Bit als Leerlauf (läßt sich nicht oder schwer vermeiden) kommt man da auf 18 Zyklen. Das wären bei 20 MHz Takt schon etwa über 1 MHz Abtastrate für den Ausgang.

    So viel schneller kriegt man die DDS Schleife ohnehin nicht wenn die CPU nebenbei noch irgendwas machen soll. Selbst mit 100% Rechenzeit in der DDS Schleife liegt man auch schon bei wenigstens 9 bis 12 Zyklen.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.04.2010
    Beiträge
    1.249
    So mal ne ganz andere Idee, wie wäre es z.B. einen XR2206 zu benutzen?! Dann musst dich um kaum noch was kümmern.

  9. #9
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    .. und nur mit R2R die Frequenz im Verhältnis 1000:1 ändern ...

    MfG

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    07.06.2010
    Ort
    Kt Zürich
    Alter
    21
    Beiträge
    31
    Danke für die vielen schnellen Antworten.
    Ich möchte unbedingt das Prinzip verstehen und auch nicht neue Bauteile besorgen müssen, deshalb möchte ich es so einfach wie Möglich ohne IC Bauen.

    @Besserwessi:
    Ich verstehe nicht ganz, wie das geht, Ich habe gedacht, die PWM - Frequenz des ATMega168 sei 500 Hz
    Ausserdem möchte ich die Welle auch schnell und unkompliziert ändern können.

    Damit ich es richtig verstehe: Ich nehme z.B. nur 4 Pins
    Ich möchte die ganzen 40 mA des 168 nutzen , also müssen die Widerstände nach dem Ohmschen Gesetz
    Pin 1: 25
    Pin 2: 50
    Pin 3: 75
    Pin 4: 100
    betragen. Der Controller macht also:
    0 an, warten, 0 aus 1 an, ..., 4 aus 5 an, 5 aus 4 an, ...

    Oder gehts effizienter?
    Noch eine ganz andere Frage: wenn ich die Widerstände wie oben dimensioniere, fliessen dann, egal welche Last dran hängt, 40 mA?
    Und was ist R2R?
    Danke
    Ein Elektron ist das positivste, was ich mir vorstellen kann.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •