Guten abend,
ich möchte gerne mit meinem Mikrocontroller (ESP32) ein Martinhorn simulieren. Das ganze soll über einen passiven Buzzer funktionieren.
Als Frequenz habe ich 420 und 560 Hz genommen. So richtig habe ich keine andere gefunden.
Jetzt möchte ich, wenn ich eine Taste drücke, dass sich die Frequenz immer abwechselt. Am besten sollte die jeweilige Frequenz auch mindestens 1 Sekunde laufen. Habe den Code hier aus einem ähnlichen Beitrag im Forum gefunden, komme aber momentan nicht weiter.
int frq0 = 0;
int frq = 560;
int frq1 = 420;
const long TONDAUER = 1000;
void martinhorn()
{
unsigned long vorhin;
if ((merkerAlarm == true) && (merkerBlaulicht == true))
{
if (jetzt - vorhin >= TONDAUER) {
vorhin = jetzt;
if (frq == 560)
frq = frq1;
else
frq ;
ledcWriteTone(CHANNEL2, frq);
}
}
else
ledcWriteTone(CHANNEL2, frq0);
}
Danke. Ich habs zwar nicht ganz verstanden aber egal. Wenn meine Links einen Kasten bekommen, dann hat das komische System sie als relevant eingestuft. Will ich das überhaupt?
Mir ist das auch schon passiert, ohne es angestrebt zu haben, hat mir aber kein Geld eingebracht, also keine Werbung.
Was ist das?
Das ist eine unspezifische Fehlerbeschreibung zusammen mit einem Programmfragment. Ich habe einen ESP32, kann Dein Programm aber leider nicht ausprobieren.
Mein Programm besteht aus mehreren Tabs. Ich habe über einen LDR ein Licht gesteuert, über Taster bringe ich zwei LEDs zum blinken und wenn das Licht an ist und die LEDs blinken soll halt der Lautsprecher mit zwei Frequenzen Töne abspielen.
Ich hatte das sonst bisher mit delay() als Tonlänge gemacht, aber das wäre ja für den Rest des Programms nicht vom Vorteil.
Hätte nur nochmal eine Frage zu dem Taster. Würde das gern mit dem internen Pulldown-Widerstand machen. Jedoch ist es egal, wie ich den Taster verdrahte, ich kriege immer einen Kurzschluss.
Ich hatte das mal aufgebaut damit, komme aber nicht mehr drauf, wie es funktioniert.
Ich habe einen Microtaster mit 4 Pins. Auf einem Pin setzte ich meine 3V Spannungsversorgung, auf den zussamenhängenden Pin momentan einen 10k-Ohm Widerstand. Auf dem Pin, welcher erst bei Tastendruck eine Verbindung herstellt, ist mein Eingangspin angeschlossen.
Jetzt würde ich gern den Widerstand weglassen.
Im Programm habe ich das folgendermaßen eingegeben.