mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Buzzer am Olimexboard LPC2148


Autor: Franjo Rupcic (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

okay irgendwie stelle ich hier glaube ich die dümmsten Fragen ^^ aber
ich bin dankbar das sich trotzdem immer jemand Zeit nimmt und meistens
komme ich dann auch alleine zurecht.

Also ich lerne (üb) gerade am hier Angebotene OLIMEX LPC2148 Board.
Bin zufrieden. Speichertest prog war erfolgreich, UART tut, LEDs und
Buttons kein problem. Aber der Buzzer macht mir zu schaffen ^^

Ich finde die Beschreibung von OLIMEX aber auch wirklich mager. Das
einzigste was ich weiß kam vom Schaltplan und da ich kein Elektroniker
bin weiß ich net wirklich was ich tun soll. PWM puls ist nicht das
problem sondern : WARUM GEHEN 2 PORTS auf den Buzzer??? sollte es nicht
1ner sein und der ausgang geht auf Masse?? Welchen soll ich den nun
Pulsen? Beide? ich blicks einfach net.

Autor: Franjo Rupcic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s. Skizze findet man im Anhanf. Anschlüsse gehen auf P0.12 & P0.13

Autor: Marko B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um den Buzzer anzusteuern gibt man immer abwechselnd low und high auf
die beiden Pins, der Buzzer wird also jedesmal umgepolt. Dadurch
bekommt der Buzzer im Mittel eine doppelt so hohe Spannung wie wenn man
nur einen Pin schalten würde. Er wird also lauter.

Man kann mit dieser Beschaltung auch nur einen Pin schalten. Damit hat
man zwei Lautstärkestufen.

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Dadurch bekommt der Buzzer im Mittel eine doppelt so hohe Spannung
>>wie wenn man nur einen Pin schalten würde.

im Mittel ist die Spannung 0. Das soll ja auch bezweckt werden.
Der DCWert an einem Lautsprecher sollte auch 0 sein.
Wie schon gesagt die Spannung wird jeweils umgepolt.
Also HIGH ->LOW spannung +Vtarget, Membran beim Buzzer wird
rausgedrückt
LOW->HIGH spannung -Vtarget, Membran wird reingedrückt
der Widerstand dient zur Strombegrenzung. Durch das Umpolen wird
jeweils die Stromrichtung geändert.

Autor: Franjo Rupcic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antworten. Marko seine hab ich zuerst probiert und
festgestellt es klappt net ^^ aber das hat mich auch schon auf die
richtige Spur gebracht ---> Versuch es umzupolen ^^ von daher hat
Wolfram hier recht behalten. Ich spiel gerade mit den Tönen rum aber
naja ein Datenbaltt währe mir schon recht. Hier mal mein kleiner Code
ausschnitt:

<CODE>
#define fnBUZZ1()  {  IO0CLR = 0x00002000;  \
        IO0SET = 0x00001000;  }
#define fnBUZZ2()  {  IO0CLR = 0x00001000;  \
        IO0SET = 0x00002000;  }
...

f_ton = 2000;

for( k=0; k<10; i++)       //Anzahl wiederholungen = k * T
{
  fnBUZZ1();
      while( f_ton > 0){ --f_ton;  }
  fnBUZZ2();
      while( f_ton < 2000){ ++f_ton;  }
}

</CODE>

Frage: da kein Datenblatt enthalten ist weiß ich nicht welche
Frequenzen ich abspiele.
Meine Theorie: Disassembly --> die Dauer der Befehle zusammenaddiere
und Ein/Ausschaltzeiten PIN, in Abhängigeit der CPU Frequenz
(hier 60 MHz). Währe das richtig?? oder gibt es einen einfacheren Weg?

Trotzdem jetzt schon vielen dank

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also prinzipiell geht das schon das du im Disassembly die befehlzeiten
addierst, wird halt nur sehr unschön wenn du einen Befehl (in C)
änderst.
Entweder nimmst du eine delay funktion (wenn vorhanden) oder du benutzt
die Unterstützung in der Hardware. Stichwort: Timer
Da stellst du die Anzahl von Takten ein die gezählt werden soll und
überprüfst deinen Zähler oder läßt dir nach Ablauf der Zählzeit ein
Flag setzen, dass du abfragst.

Autor: Franjo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi ,

danke Wolfram. War eher nur ne theoretische Frage aber natürlich hast
ud recht. Mit nem Timer ist das ganze viel eleganter. Nochmals an alle
Teilnehmer des Threads DANKE

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.