Probleme mit dem Erzeugen von Tönen
|
03.01.2020, 13:58
Beitrag #1
|
|||
|
|||
Probleme mit dem Erzeugen von Tönen
Bisher habe ich wirklich alle Probleme meines Projektes mit der Hilfe von euch lösen können. Dafür zunächst mal herzlichen Dank!
Nun komme ich an den wahrscheinlich letzten Punkt meines Projektes. Entweder verstehe ich die Funktionsweise des Befehls falsch (ist recht wahrscheinlich so) oder der ESP32 Devkit V1 ist einfach nicht das geeignete Bauteil um dieses Problem zu lösen. Problembeschreibung: Ich möchte aus dem Steigwert eines Segelflugzeugs ein akustisches Signal machen. Die Tonfrequenz ist abhängig vom Steigwert. Wenn der Steigwert negativ ist, soll der Ton anhaltend sein. Ist der Steigwert positiv, soll der Ton einige ms anhalten und dann für 10ms unterbrochen werden. Hier ein Beispiel: https://www.youtube.com/watch?v=uwpnXf916gM Ich habe versucht dies mit ledcWrite zu lösen: Code: if ((E > 0) && (E <= 8) && (E != Ealt)) { Die delays sind dazu gedacht, den Ton bei positiven Steigwerten zu unterbrechen, führen aber dazu, dass das Programm extrem hinterher hinkt. Das ist also keine gute Lösung. Ohne delay bekomme ich aber gar keinen Ton, weil das Programm wahrscheinlich kontinuierlich einen neuen Ton erzeugen möchte, und es dadurch zu Überlagerungen kommt. Also habe ich statt in der if-Anweisung ein delay nach der Abfrage des Wertes E eingefügt, der dann für alle Bereiche der Tonerzeugung gilt: Code: if (DataString.startsWith("$POV")) { Logisch, dass dann alle Töne 100ms lang sind, und dann eine Unterbrechung kommt. Also entweder eignet sich dieser Weg absolut gar nicht für mein Vorhaben, oder ich muss es anders lösen. Wenn es z.B. die Möglichkeit gäbe, den Ton bspw. 10s lang ausgeben zu lassen, ihn aber abzubrechen, wenn es erforderlich ist. Dann wären die andauernden Töne bei negativen Steigwerten nicht unterbrochen, soll aber ein anderer Ton erzeugt werden, würde er vorzeitig abgebrochen, und das Programm würde nicht so langsam werden wie mit delay. Hat jemand eine Idee, in welche Richtung ich da gehen sollte? Oder gibt es eine andere Hardware, die vielleicht besser geeignet ist? |
|||
03.01.2020, 15:14
Beitrag #2
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
(03.01.2020 13:58)Gerdchen03 schrieb: Hat jemand eine Idee, in welche Richtung ich da gehen sollte? Mach es ohne "delay()". Hilfreich zur Umsetzung ist die Nachtwächtererklärung! Gruß Fips Gruß Fips Meine Esp8266 & ESP32 Projekte |
|||
03.01.2020, 18:57
Beitrag #3
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Danke!!
Für die gepulsten Töne funktioniert das mega. Nun bleiben noch die anhaltenden, die aber kontinuierlich die Frequenz ändern sollen, ohne dass der Ton dabei unterbrochen wird. ![]() |
|||
03.01.2020, 19:04
Beitrag #4
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Dann zeige doch mal Deinen aktuellen Sketch.
Was verstehst Du unter "kontinuierlich ändern"? Eine gewisse Zeit lang muss der Ton schon gleich bleiben. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
03.01.2020, 19:57
Beitrag #5
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Code: // VarioSound is a programm to generate the vario sound using NMEA Output of OpenVario. Es geht speziell um diesen Bereich. Code: if ((E >= -8) && (E <= -2) && (E != Ealt)) { Ich meine sowas wie eine Tonleiter. Am Besten du schaust dir das mal in dem Video ab der 7. Sekunde an. Da zeigt das Vario kurz sinken an, und da ist der nicht gepulste Ton, dessen Frequenz sich aber mit zunehmendem Sinken verändert. |
|||
03.01.2020, 20:01
Beitrag #6
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Da musst Du schauen, wie weit Du die 300 verringern kannst, bis nichts Sinnvolles mehr zu hören ist.
Etwas anderes dürfte wohl kaum möglich sein. Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
03.01.2020, 20:06
(Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2020 20:07 von Tommy56.)
Beitrag #7
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Ergänzung: Videos interessieren mich nicht.
Gruß Tommy "Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt) |
|||
03.01.2020, 20:11
Beitrag #8
|
|||
|
|||
RE: Probleme mit dem Erzeugen von Tönen
Zitat:Da musst Du schauen, wie weit Du die 300 verringern kannst, bis nichts Sinnvolles mehr zu hören ist. Hab ich schon mit rumgespielt, wird aber dann eben sehr abgehackt. |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste