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 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:
Das ganze ist aber Quarz-abhängig ich habs mal unter 4 und 10 Mhz laufen lassen: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
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
guckst du mal hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=4480
hoffe das hilft dir
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...
Lesezeichen