Forum: Mikrocontroller und Digitale Elektronik Frequenz und Piezolautsprecher


von Achim S. (achims)


Lesenswert?

Hallo Gemeinde
habe ein Problem mit einem Piezolautsprecher und der Frequenz. Ich meine 
nicht die Piezoschwinger, die auf einer bestimmten Frequenz schwingen 
wenn man +5V anlegt, sondern einen Lautsprecher. (Lsp auf PC7)
Nehme ich z.B. den Code
1
while(1)
2
  {
3
    PORTC &=~(1<<PC7);  
4
    _delay_ms(1);     
5
    PORTC |=(1<<PC7);  
6
    _delay_ms(1);   
7
  }
erzeuge ich damit an meinem PC7 ein ein- und ausschalten des Lsp.
Die Zeit _delay_ms() kann ich verändern und damit die Tonhöhe.
Das kann von einem sehr tiefen Ton bei _delay(1000) bis zu einem sehr 
hohen Ton bei z.B. _delay_us(5) gehen.
Eine Schwingung besteht dabei immer aus 2 Teilen - ein+aus.
Wie kann ich das berechnen?

        Frequenz
delay = --------  (ms)
           2

Soll das stimmen? wie ist es bei us ?
achim

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Achim Seeger schrieb:
>         Frequenz
> delay = --------  (ms)
>            2

Frequenz in Hertz, Delay in Sekunden. Dann sollte da stehen:
            1
Delay = ------------
        Frequenz * 2

von Achim S. (achims)


Lesenswert?

Was ist mit dem Unterschied bei delay mit us und ms?

von Lutz (Gast)


Lesenswert?

Der beträgt Faktor 1.000 ;-)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim Seeger schrieb:
> Wie kann ich das berechnen?
>
>         Frequenz
> delay = --------  (ms)
>            2

 Mal abgesehen davon, dass die Rechnung falsch ist, richtig ware:

             1000
 delay = -------------  (ms)
          Frequenz * 2

 wird das Tastverhältnis auch nicht immer 50/50 sein, somit sind An-
 und Aus Zeiten auch nicht gleich.
 Besser wäre es, 2 delays zu benutzen.

von Achim S. (achims)


Lesenswert?

Verstehe ich das so richtig?
Habe in dem Code oben 2 delays drin. Eine für ein und eine für aus

Kurzer überschlag:

1000 Hz sind 1000 Schwingungen pro Sekunde, das ist 1 Schwingung pro 1 
ms
Eine Schwingung beträgt 500us ein und 500 us aus
Delay 1 also 500us ein
Delay 2 also 500us aus

Deine Rechnung:

1000 : ( 1000 Hz x 2 ) = 0,5 ms = 500us je delay

bei 5000 Hz suînd das 5000 Schwingungen pro Sekunde dann ist ein 
Schwingung 0,2 ms

Kontrolle_

1000 : ( 5000 Hz x 2 )= 0,1 ms = 100us je delay

richtig?

achim

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim Seeger schrieb:
> richtig?

 Ja.
 Aber bevor du dich totrechnest, lass Excel das für dich machen, dann
 kannst du auch Tastverhältnis einstellen.

von Achim S. (achims)


Lesenswert?

Was bewirkt eine Veränderung des Tastverhältnis genau?

von 346623574 (Gast)


Lesenswert?

Tasterverhältnis ändert die Lautstärke im gewissen Grenzen.
Grüße

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.