-
Also alle meine Entchen sollte man zum laufen kriegen, ich blick nur bei der Berechnung nicht durch.
Pulses = 250 ist ein hoher Ton
Pulses = 2000 ein niedriger
Aber welche Frequen haben die Töne, wie ist der Zusammenhang mit der Quarzfrequenz?
Hat nicht einer mal nen Frequenzmesser und kann für 2 Werte die Frequenz bestimmen, dann könnte man sich den Rest vermutlich denken. Bzw. wie errechnet sich Time? Time müsste einen Wert von 0,xxx oder so haben.
MFG Moritz
-
Hi,
ich bin am Freitag wieder an der FH und könnte das dann in Angriff nehmen.
Schreib mir doch bitte nen kurzes Programm, welche Töne Du haben willst.
Mache das mit RN-Control, nem ATMega32 und nem 16MHz Quarz. Hab noch nen 8er alternativ.
-
Also wenn ich jetzt keinen Denkfehler gemcht habe, müsste der Zusammenhang zwischen Frequenz und Pulse (also die komische Zahl die die Tonhöhe angibt) ungefähr so aussehen:
C[Konstante]/Frequenz[Hz]=Ton[in Bascom (Pulse)]
Ich hoffe jedemfalls mal, dass C auch konstant ist ;-)
Dazu bräuchte man am besten 2 oder 3 Wesswerte, vielleicht
Sound Portd.6 , 1000 , Ton
und für Ton dann mal 2000; 1000 und 500
Am besten wäre es natürlich noch, wenn man es mit verschiedenen Quarzen testen würde.
Außerdem ist mir nicht klar, wie sich Duration errechnet.
Wie lange Dauert
Sound Portd.6 , 1000 , 1000
genau?
Also es wäre super, wenn du das mal anchrechnen könnte, dann könnte man daraus ne Tonleiter aufstellen und dann Liedchen schreiben ;-)
MFG Moritz
EDIT:
Das Beispiel aus der Hilfe erzeugt bei mir übrigens nur ein klacken.
Richtige Töne krieg ich nur mit sowas raus:
Sound Portd.6 , 1000 , 1000
-
Also "Alle meine Entchen läuft" ;-)
Hier mal das Programm:
Code:
Do
Sound Portd.6 , 130 , 1916
Sound Portd.6 , 146 , 1706
Sound Portd.6 , 164 , 1520
Sound Portd.6 , 174 , 1433
Sound Portd.6 , 293 , 1276
Sound Portd.6 , 6250 , 10
Sound Portd.6 , 293 , 1276
Sound Portd.6 , 6250 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 783 , 1276
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 200 , 1136
Sound Portd.6 , 450 , 10
Sound Portd.6 , 783 , 1276
Sound Portd.6 , 170 , 1433
Sound Portd.6 , 450 , 10
Sound Portd.6 , 170 , 1433
Sound Portd.6 , 450 , 10
Sound Portd.6 , 170 , 1433
Sound Portd.6 , 450 , 10
Sound Portd.6 , 170 , 1433
Sound Portd.6 , 450 , 10
Sound Portd.6 , 325 , 1520
Sound Portd.6 , 500 , 10
Sound Portd.6 , 325 , 1520
Sound Portd.6 , 500 , 10
Sound Portd.6 , 145 , 1706
Sound Portd.6 , 450 , 10
Sound Portd.6 , 145 , 1706
Sound Portd.6 , 450 , 10
Sound Portd.6 , 145 , 1706
Sound Portd.6 , 450 , 10
Sound Portd.6 , 145 , 1706
Sound Portd.6 , 450 , 10
Sound Portd.6 , 261 , 1916
Wait 2
Loop
Das ganze ist aber Quarz-abhängig ich habs mal unter 4 und 10 Mhz laufen lassen:
Unter 4: langsam
Unter 10: wie diese kleinen Aufklappkarten
Leider schluckt das Programm in dieser Struktur ganze 66% meine 2313ers.
Allerdings ist die Struktur ja nicht besonders sinnvoll. Das aufwendige daran ist vermutlich der Soaundbefehl, vielleicht könnte man dazu eine besser Funktion schreiben, die auch die blöde Tonlängenberechnung ersetzt, z.B. Ton(C, 4)
Also ton C und eine viertel lang. Dazu müsste man nur ein par Constanten benennen und ein par Berechnungen machen. Dann ist das Programm mit Sicherheit übersichtlicher und kleiner. Aber heute Abend habe ich dazu keine Lust mehr.
MFG Moritz
-
@albundy
Du bist offensichtlich ein schlaues Kerlchen mit wahrem Durchblick.
Toll, so Leute im Forum zu haben. mfg robert
-
Ich habe mal die Sound-Pulszeiten mit einem Tongenerator über Soundkarte verglichen. Die Werte sind also nur durch akustischen Vergleich entstanden. (Es war nicht leicht Sinus mit Rechteck zu vergleichen)
Die Impulslänge im Soundbefehl war trotz fest eingestelltem Wert, bei jeder getesteten Pulszeit anders. Wobei ich nicht sagen kann, ob der Wert linear angestiegen ist.
Quarz = 4MHz
Sound Ausgabe,1000,500 -> 670 Hz Tonlänge etwa 4 Sek
Sound Ausgabe,1000,600 -> 560 Hz
Sound Ausgabe,1000,1000 -> 325 Hz
Sound Ausgabe,1000,1200 -> 280 Hz
Sound Ausgabe,1000,1500 -> 220 Hz Tonlänge etwa 6 Sek
Die Werte sind nicht mal umgekehrt proportional, sodass man sich auch keine Zwischenwerte ausrechnen kann.
-
Also ich habe mal ne Linearisierung gemcht und der Zusammenhang ist wie ich vermutet habe:
Pulse=C / Frequenz
Pulse ist dabei der Ton
C eine Konstante und Frequenz der eigentliche Ton in Hz.
Bei C komme ich durchschnittlich auf 332400.
Leider sind da einige Schwankungen drin, wäre schön, wenn wir aufs Hz genaue Werte hätten.
Die Tonlänge steht mit dem ganzen ebenfalls in Zusammenhang.
Wenn du Duration x Pulse nimmst, kommst du auf C. Daher stimmt auch die Aussage 4 und 6 Sec. D.h. aber auch, dass man für jeden Ton eine bestimmte Duration nehemn muss, wie in meinen Lied oben. Dieser ließe sich natürlich über C leicht errechnen (von einem Programm).
Schön wäre, wenn man mal rausbekäme, bei welchem wert genau 1 sec. ist. Hätte ich doch nen Oszi oder so da.
MFG Moritz
-
hallo!
ihr redet vom quarz.
leider bin ich ein anfänger, und hab keine ahnung, was ich im basecom bei den fusebits einstellen muß, um einen 16 mhz quarz zu verwenden.
kann mir das mal einer bitte möglichst genau sagen. ich hab schon überall nachgesehen, und einen atmega32 zerstört.
wäre eine super sache, auch wenns nicht zum thema passt.
danke schon mal
-
-
kennt jemand einen kleinen, evtl. piezo schallwandler, der ähnlich wie ein lautsprecher funktioniert? ich hab bis jetzt nur solche gesehen die eine feste Frequenz haben.
gruß werner...