digitalWrite anstatt tone()

Mein tone() funktioniert wegen einer Bibliothek nicht, ich habe im Internet gesehen, dass man auch digital Write benutzen kann für einen buzzer.

Also habe ich es ausprobiert. Aber es funktioniert nicht.

Kann man einen Buzzer mit digitalWrite benutzen?

Ja kann man, wenn es ein aktiver Buzzer ist.
Damit will ich Dir sagen : es gibt 2 Arten von Buzzer.

  1. die passiven Buzzer, die benötigen eine frequenz, ein Tonsignal, damit sie was von sich geben. Vorteil: Du kannst bestimmen was für ein Ton aus dem Ding kommt.

  2. die aktiven Buzzer, diese benötigen nur eine Gleichspannung , also ohne Frequenz um einen Ton von sich zu geben. Vorteil: mann kann sie einfach an einen Digital-Pin des arduino anschliessen und mit digitalWrite() einschalten.

Wenn Dein Buzer mit digitalWrite also keinen Ton von sich gibt, dann hast du einen Passiven und must eine Frequenz an ihn ausgeben, damit Du was aus ihm hören kannst. Oder Du besorgst Dir einen aktiven Buzzer.

LG Stefan

Aber es funktioniert nicht

Dann machst du was falsch.

Mein tone() funktioniert wegen einer Bibliothek nicht.

Eventuell kannst du wegen dieser Bibliothek auch nicht jede ms ein digitalWrite (abwechselnd HIGH und LOW) ausgeben. Dann würde auch ein passiver Buzzer, genauso wie mit tone(), funktionieren.

Kann man einen Buzzer mit digitalWrite benutzen?

Ja. Steht ja auch im Internet. (Jetzt hier und, wie du schon bestätigt hast, auch woanders)

Mal im Ernst: wie, meinst du, soll man dir mit deinen Angaben genauer helfen?

Nachtrag:

  1. Woher weißt du, dass dein Piezo-Piepser überhaupt funktioniert?
    Schreib einen kurzen Beispiel-Sketch. Welchen Piepser schließt du wie an?
  2. Erweitere den Sketch so, dass es nicht mehr geht. (Aber dir unklar ist, warum. Was passiert stattdessen?)
  3. Wenn du dazu Bibliotheken einbindest: Welche und Warum brauchst du das so?

@Deltaflyer: Ein aktiver Buzzer (der selbständig mit seiner eingebauten Tonhöhe piepst) funktioniert übrigens nur sehr eingeschränkt mit tone().

(deleted)

michael_x:
@Deltaflyer: Ein aktiver Buzzer (der selbständig mit seiner eingebauten Tonhöhe piepst) funktioniert übrigens nur sehr eingeschränkt mit tone().

Das hat er nirgendwo behauptet.

Gruß Tommy

Wenn Tone nicht funktioniert, dann kann analogWrite() für bestimmte Pin's auch nicht funktionieren.
Beide verwenden Timer.
Grüße Uwe

Folgende Library erzeugt Töne ohne Timer direkt zu verwenden: TimerFreeTone
Details siehe:
https://forum.arduino.cc/index.php?topic=235774.0
https://bitbucket.org/teckel12/arduino-timer-free-tone/wiki/Home

Vielleicht einen Versuch wert.

(deleted)