-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Töne über PWM?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118

    Töne über PWM?

    Anzeige

    Hallo,
    ich möchte einen Ton mit dem Atmega8 auf einem der PWM-Ports ausgeben. Nicht mit der Funktion "Sound", sondern über einen der Timer mit PWM.
    Mein Problem liegt darin, dass wenn ich einen Lautsprecher an den PWM-Ausgang gegen GND lege(was ja so stimmen müsste) und eine PWM-Frequenz festlege, der Ton immer gleich ist. Egal welche PWM-Frequenz ich angebe.
    Muss da noch irgendwas an der Hardware geändert werden? Momentan nur VCC/GND und der Lautsprecher an PB.0 gegen GND.
    Wie muss der Code aussehen? Eigentlich reicht doch ein Programm, dass mir einen Timer als PWM-Timer definiert und dann die "Frequenz" festlegt.
    Vielen Dank für eure Antworten schon mal im vorraus.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Du darfst nicht die Frequenz ändern, sondern den Tastgrad (Verhältnis Puls-Pause)

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Wie meinst du das, 021aet04? Sind die PWM-Frequenz und der Tastgrad nicht das Gleiche?
    Könntest du mir bitte ein Code-Beispiel geben?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Nein das ist nicht das Gleiche. Hier ist PWM beschrieben. http://www.rn-wissen.de/index.php/Pwm
    1Hz =1 Periode pro Sekunde

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    OK... Aber wie lege ich nun einen Ton fest? Kann mir jemand mal einen Beispielcode schreiben? (soll wenn möglich Hardware-PWM sein).
    Ich bekomme es zwar hin, eine LED über PWM zu "dimmen", aber wenn ich nen Lautsprecher hinhäng bekomm ich bei jedem angegebenen PWM-Wert den gleichen Ton bzw. einen sehr ähnlichen.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    PWM PUlSWEITENMODULATION es regelt die pulsweiten und nicht die frequnz.
    wenn du töne erzeugen willst must du das pwm sinus förmogig mach also laut (länger an als aus) und dann wieder leise (länger aus als an)

    du must dier aber vorher irgendwie sinus nutzen können oder ne tabelle nutzen.
    um zusehen was dein pwm macht solltest du die pwm frequens runternehem und mit deiner Sound karte und einem soudkartenoszi programm anschauen oder man hat ein oszi

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Moment, moment, moment...

    Mit "Normalem" PWM hast Du ein Rechtecksignal mit konstanter Frequenz, dessen Impuls-Pausen-Verhältnis variiert werden kann. Das macht den Ton u.U. laut und leise - aber ändert nix am Ton.

    Um verschiedene Tonhöhen zu erzeugen, muss der Timer im "CTC"-Modus betrieben werden. CTC heißt "Clear Timer on Compare". Heißt also, dass er von 0 bis zum Wert im OCR-Register hochzählt, und beim Erreichen dieses Wertes auf 0 zurückgesetzt wird. Bei jedem Rücksetzen wird der OC-Pin getoggelt. Somit wird der Ton umso höher, je niedriger der OC-Wert ist.

    Die Formel kann man sich überlegen, sie heißt f = Xtal/(Prescaler * OCR * 2).

    Bascom (zumindest meine Version) unterstützt den CTC-Modus nicht, das musst Du direkt auf Registerebene lösen.

    Klar?

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    ich meinte damit aus den Rechtreck pulsweiten ein sinus zu machen

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Erstmal danke für deine Antwort Sauerbruch!
    Habs zwar noch nicht ganz verstanden, aber ich hab mal nach Bascom und CTC gesucht und das hier gefunden: http://www.roboternetz.de/phpBB2/viewtopic.php?p=359346
    Das ist doch das, was du meinst?

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Genau. Mit welchem Controller arbeitest Du denn, welchen Timer verwendest Du und in welchem Bereich sollen die Frequenzen liegen?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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