Ja, schon wieder ich
Mit folgender Lösung läßt sich ein einfacher Schwinkreis aufbauen um vom ATmega aus einen Piezo-Signalgebers anzusteuern.
Die Lösung ist so aufgebaut, dass man nur einen Ausgang vom ATmega benötigt ohne zusätzliche Ressourcen zu verschwenden.
Eine andere Lösung wäre die Verwendung einer PWM. Dazu benötigt man aber einen Timer den ich z.B. in meinem Projekt nicht mehr habe da alle Timer mit anderen Funktionen belegt sind. Somit ist die folgende Lösung entstanden da ich auch ohne PWM piepen möchte.
Die Frequenz die ausgegeben werden soll läßt sich durch das vorhandene Poti in definierten Grenzen einstellen.
Habe noch ein bissle BASCOM-AVR Beispielcode hinzugepackt der mit einer einfachen Funktion den Pin setzt, rücksetzt. Eine Funktion der ich eine Zeit überkeben kann ist auch noch mit dabei.
Ist meines Erachtens eine kleine, schlanke aber sehr schöne Lösung und sie piept
Zur Funktion:
Das zur Ansteuerung des Piezo-Signalgebers erforderliche Signal wird nicht direkt vom Controller über PWM erzeugt. Für eine ausreichende Amplitude wäre sowieso eine Treiberstufe erforderlich. Deshalb ist mit zwei NANDGattern (IC1) und R1+R2, C1 ein Oszillator aufgebaut, der bei Ausgabe eines High-Signals an Port 1.4 je nach Potieinstellung schwingt.
Der Piezo wird mit einer Spannung von 5V betrieben (das reicht auch aus). Er kann aber auch 12V.
Was gibts im Anhang?
- Schaltbild
- BASCOM-AVR Code-Schnipsel
- Bild vom Prototyp auf Lochratser
Bemerkung:
Der von mir verwendete Piezo schwing auch selbst. Im Bild vom Prottyp findet Ihr Jumper und einen 12V Anschluss. Den könnt Ihr vernachlässigen. Ich habe mit dem Prototyp auch ausprobiert wie es sich anhört wenn ich den Piezo mit fixen 12V Betreibe. Is a bissle lauter
Grüße,
Markus
Mit folgender Lösung läßt sich ein einfacher Schwinkreis aufbauen um vom ATmega aus einen Piezo-Signalgebers anzusteuern.
Die Lösung ist so aufgebaut, dass man nur einen Ausgang vom ATmega benötigt ohne zusätzliche Ressourcen zu verschwenden.
Eine andere Lösung wäre die Verwendung einer PWM. Dazu benötigt man aber einen Timer den ich z.B. in meinem Projekt nicht mehr habe da alle Timer mit anderen Funktionen belegt sind. Somit ist die folgende Lösung entstanden da ich auch ohne PWM piepen möchte.
Die Frequenz die ausgegeben werden soll läßt sich durch das vorhandene Poti in definierten Grenzen einstellen.
Habe noch ein bissle BASCOM-AVR Beispielcode hinzugepackt der mit einer einfachen Funktion den Pin setzt, rücksetzt. Eine Funktion der ich eine Zeit überkeben kann ist auch noch mit dabei.
Ist meines Erachtens eine kleine, schlanke aber sehr schöne Lösung und sie piept
Zur Funktion:
Das zur Ansteuerung des Piezo-Signalgebers erforderliche Signal wird nicht direkt vom Controller über PWM erzeugt. Für eine ausreichende Amplitude wäre sowieso eine Treiberstufe erforderlich. Deshalb ist mit zwei NANDGattern (IC1) und R1+R2, C1 ein Oszillator aufgebaut, der bei Ausgabe eines High-Signals an Port 1.4 je nach Potieinstellung schwingt.
Der Piezo wird mit einer Spannung von 5V betrieben (das reicht auch aus). Er kann aber auch 12V.
Was gibts im Anhang?
- Schaltbild
- BASCOM-AVR Code-Schnipsel
- Bild vom Prototyp auf Lochratser
Bemerkung:
Der von mir verwendete Piezo schwing auch selbst. Im Bild vom Prottyp findet Ihr Jumper und einen 12V Anschluss. Den könnt Ihr vernachlässigen. Ich habe mit dem Prototyp auch ausprobiert wie es sich anhört wenn ich den Piezo mit fixen 12V Betreibe. Is a bissle lauter
Grüße,
Markus