Hallo, Wolte fragen ob jemanden shon mall mit nem mega Ein frequenz gemessen hat. Bin total unbekant wie ich dass machen konte. Ich mochte gerne mit eine tiny2313 oder enlicht ein 420Hz, frequens aus nem audio signal (ca. 0.20 volt) erkennen konnen, sodas ich dan etwas schalten kan. ich weis ist nicht einfach aber werh weis hat shon jemand dass mall gemacht. mfg. Rene
Ich muss aug kucken dass dass signal 3 mall im 0.5 sec takt da ist. also da aug andere frequenzen da sind nur am ende kommen ein pahr stucke fon ca 420 hz wonach lass sagen 3 mall ein relais geschalted werden solte. also signal spache.-darnach 420hz(0.5)-0.5-niks(0.5)-420hz(0.5)-0.5-niks(0.5)-420hz(0.5)-0.5-niks(0. 5) dan relais um schalten. der NE567 ist intressant leider hat mein Hollandsche elktroladen die nicht.... und morgen ist hier ein freien tag.. wahr aug ans denken an einen.LM358 aber der wahr aug nicht su bekommen .. habe nur UA741 und lm324 aber weis nicht wie oder was ich damit tun konte.
Hallo, Ist da fieleigt etwas mocklich mit dem ICP port. Ich weis nich ob der aug ein 0,20 V ac signal erkennen kan. dan konte ich die positive pulse zahlen. grusse Rene
@Rene Ich will ja nicht meckern aber probier mal folgendes: -Firefox 2.0 Browser installieren. -Sprachpaket Plug-In Deutsch (de-de) installieren. -Automatische Rechtschreibprüfung aktivieren. Ein Tüte Deutsch hat mich auch gehelft.
Hallo, Currywurst. ich finde dass ich nog recht guht su lesen und su begreifen scheibe fuhr ein Hollander. bis jetz habe ich nie probleme gehabt. groetjes Rene.
Oh, sorry Rene! Ik kan niet weten waar jij vandan komt. We hebben hier heel vaak mensen die niet so goed Duits schrijven kunnen howel se Duitsers zijn. Dat moet jij erder vertellen, anders denkt iemand dat jij een Forum Troll of so iets bent. Zie het niet als een anraking van jou eer.
@Currywurst Gute Reaktion von Dir! Nicht schlecht, aber niederländisch nicht ganz korrekt ;-)) Voldoende .. Tot volgende keer ..
Hallo Currywurst,
Oh doch - Du hättest es im 2. Post lesen können:
> Hollandsche elktroladen
Gruß Otto
Das geht auch mit dem ADC man muss nur die nulldurchgänge zählen. Gar nicht so schwierig wenn man sich etwas damit beschäftigt.
Vielleicht sollte ich mal was zum Thema beitragen. Also, man könnte eine primitive DFT basteln. Man Tastet das Signal mit dem Vierfachen der gesuchten Frequenz ab. In diesem Fall 420 x4 = 1680. Die geraden und die ungeraden Samples werden jeweils für gewisse Zeit Integriert. Die zwei Ergebnisse der Integrationen enthalten Real- und Imaginärteil des gesuchten Signals. Da sogar Festkomma- Division und Multiplikation etwas zu heftig für einen Tiny sind kann man den Betrag mit einer Faltung des Vektors auf die Reale Achse ermitteln. Dazu kann man einen iterativen Kordic-Algorithmus auf den Vektor anwenden bis der Imaginärteil gegen Null tendiert. Oder man wertet den Real und Imaginärteil direkt über einen Schwellenwert aus nur um festzustellen ob die gesuchte Frequenz vorhanden ist. Dadurch schwankt die Empfindlichkeit zwar mit der Phasenlage aber es Funktioniert noch einigermaßen. Das ganze ist dann natürlich durch Aliasing empfindlich für einige Harmonische von 420Hz. Also nicht ganz optimal. Man kann auch einen analogen Tone-Decoder verwenden. Wie zum Beispiel NE567. Dieser ist ein echter Phase Locked Loop mit einem zweitem Demodulator für die Auswertung. Kostet mit allen Bauteilen nur etwas Platz, ein paar Milliampere und 30 Cent extra.
Habe mir eine NE567 geholt. Aber jezt wie berechne ich dem C1 und R1 aus fuhr 420 herz. ich begreife dem formel nicht fo=1\1.1R1C1 also 420=...... ? grusse Rene
Hooi, Rene! Yup, dit is juist! fo = 1 / (1.1 R1 C1) ==> 420 Hz = 1/ (1.1 R1 C1) ==> C1 = 1 / (1.1 R1 420) oder auch: ==> R1 = 1 / (1.1 C1 420) Das heißt: 1. Du legst a) R1 oder b) C1 fest 2. Dann kannst Du a) C1 oder b) R1 berechnen Groetjes Kai Markus
und dabei hilft: "Frequency determining resistor R1 should be between 2 and 20k" Otto
Wenn man nur eine einzige Frequenz erkennen möchte, dann geht das ohne eine komplette DFT mit dem Goertzel-Algorithmus. Das sollte auf einem AVR problemlos machbar sein, benötigt aber sicherlich mehr Einarbeitungszeit als wenn man einfach den NE567 verwendet.
Genau das! Vraag de wiskundige naar de bijwerkingen :-) Also: 1. R1 of C1 willekeurig opleggen (maar naleven: 2k < R1 < 20k !) 2. met de formule C1 of R1 becijferen. Groetjes Kai Markus
super,, aber in wekchen einheit rechnet man dann in Ohm, oder kilo ohm. und fuhr condersator ? farat nf uf ? bin nicht so guht ins umrechnen. habe hier potmeter liegen fon 1k und 100K also am beste nehme ich dem 1k und noch ein extra wiederstand aber condensator sind swieriger su bekommen in dem richtigen werde. wasss da hier liegen habe ist 40nf,1uf,460nf,70nf,10nf,100nf, ist aber swierig ...
also ich meine lass sagen der R1 wird 11K (10k poti und 1k wiederstand) C1 = 1 / (1.1 11 420) =0.0001967 oder C1 = 1 / (1.1 11000 420) =0.0000001 und muss ich aug noch aus suchen was fuhr ein condensator am pin 2 und 1 kommen dass er swischen ungefahr 410 und 430 herz schalted. gruss Rene
Die Einheiten in der Formel sind Ohm, Farad und Hertz. Mindest-widerstand ist 2 Kiloohm. Für 420 Hz würde ich 4.7K in reihe mit eine 10K Trimmer und einen 220n Kondensator nehmen. Die Frequenz ist dann von 280 bis 880Hz Einstellbar.
Danke Currywurst, Werde mir morgen die teile hollen, da habe ich was an... und die 2 an pin 1 und 2 ? die sind fuhr dem band breite. also ich trimme mit dem 10k trimmer auf eine 420hz ton. unddie 2 auf pin 1 und 2 sorgen fuhr dem breite oder so <420 und >420. wie berechnet man dieser ? ich fand c2 470nf und c1 1nf . http://www.oe5.oevsv.at/basteln_js/technik/projekte/funkrelais/beschreibung.pdf oder 10nf und 1nf http://www.rason.org/Projects/impdecod/impdecod.htm
Beinahe richtig. C2 ist mindestens 470nF und C1 mindestens 1uF. C1 kann ein Elektrolytkondensator sein. Formel für C2 ist 130uF / Frequenz. Und C1 = 2 * C2.
Jezt nog eine weiterefrage, Dass mit den 567 habe ich noch nicht ans laufen, brauche denklich ein besserem potti( genauer). wehn ich im einstelle auf 420 herz funkt ok, aber bei 840 herz tut er es aug. aber habe jetz signal das mein tiny lesen kan via einen ua741. wie kan ich mit dem tiny2313 via den ICP port gleigzeitig dem frequenz messen und die seit die dieser puls hat also solte nur auf ein 420hz puls reagieren fon 0,5 sec. habe mall versucht mit folgenden. aber ich bekomme nur 148 im display mit 420hz 146 bei 425hz und 150 bei 415hz also muss quarz andern nach 8mhz oder prescaler andern. aber muss aug dem seit des sigales messen konnen gruss Rene
entshuldige wahr dem code vergessen. 'Config Pind.6 = Output Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising Dim Wtime As Byte Dim Timercounter As Word On Capture1 Captmr Wtime = 100 Timercounter = 0 Enable Interrupts Enable Capture1 Do 'Set Portd.6 Waitms Wtime 'Reset Portd.6 Waitms Wtime Cls Lcd "pwidth: " ; " " ; Capture1 Loop Captmr: Timercounter = Capture1 Timer1 = 0 Return End
Niemanden ? also der code erkent bei mir jetz die 420hz ton direkt mit dem ICP pin. aber jezt mochte ich nog ein weg finden um die dauer fon diesem siganl zu controlieren so dass ich weis dass der ton 0,5 sec gedauert hat. Ich mochte mit diesen schaltung ein telefoon pfost bedienen. der mit ein druk knof ein relais schalted ( also telefoon aufnemen und contact machen mit einen centrale) wehn niemanden aufniht solte er nach x mall ausschalten. oder wehn jemanden aufnimt solte er warten bis er 3 mall dem 0,5 sec 420hz bekomt ausschalten. ich tapfe dass signal fom speaker ab fon den teurpfosten so habe ich nicht die hohe spannung fom elefoon netz. speaker liefert signal fon ca 4 volt ac grusse Rene
Gehst du mit den 4 Volt direkt an den Eingang? Der ist nicht für große Signale. Das sollten maximal 20mV bis 100mV sein.
>so dass ich weis dass der ton 0,5 sec gedauert hat.
Du könntest in deiner Interrupt-Routine eine Variable hochzählen.
0,5 Sekunden ergeben 210 Auslösungen dieser Routine bei 420Hz.
Wenn man ca. 200 erkannt hat, kann man ja ein Flag setzen, das anzeigt,
dass die korrekte Dauer erkannt wurde.
Dann mußt du nur noch eine Möglichkeit finden, wie du feststellst, dass
die 420Hz nicht mehr anliegen.
Es wäre einfacher, wenn die 420Hz mindestens über eine bestimmte Zeit
anliegen müssten, um eine Aktion auszulösen (Puls < 2 Sekunden ==> Keine
Aktion, Puls >2 Sekunden ==> Aktion starten).
Leider kann ich kein Holländisch, ich hoffe, es wird dir trotzdem klar,
wie ich es meine.
@currywurst ist fuhr dem Tiny die 4volt nicht via dem 567. Hallo, Also dan solte ich nicht via dem ICP arbeiten (der jetz kuckt ob da eine 420hz signal ist)sonder durch ein dem PD3 Int1. dem acktivieren fuhr 1 secunde und kucken ob da 420 pulse drauf gekommen sind und direkt wieder dass selbe 3 mall also bis er dass relais schalted. guht aber wie schreibe ich das im bascom dem ich weis leidernicht ob ich int0, int1 nutzen kan und aug gleichseitig mit timer 0 oder timer1 arbeiten kan, sind die verbunden an ein Interupt? gruss Rene
ICP "misst" eigentlich nur die Zeit zwischen zwei Flanken. Da du nur auf die eine Flanke triggerst (soweit ich das BASCOM-Programm verstehe), misst du nur die Zeit einer Halbwelle. Die muss halt entsprechend lang sein. (Kriterium, um die 420Hz zu erkennen) Wenn du dann 210 gleiche Flanken gezählt hast, sind 0,5Sekunden um. Dann musst du darauf warten, dass die nächste Flanke auftritt und die Zeit zwischen beiden bestimmen. Die Zeit sollte wieder bei 0,5s liegen. Du hast also das Problem, dass du zwei Zeiten erkennen musst: Die kurze Zeit einer Halbwelle des Sinussignals und den Abstand zwischen zwei Signalpaketen. Das lässt sich eigentlich problemlos mit einem einizigen Timer und ein paar weiteren Variablen realisieren. Deine Lösung ist übrigens auch gut.
Danke Rahul, Ich habe es jetz soweit ans laufen. Also program erkent ein 420hz ton fon 0,5 sec und der 420hz ton fon 1 secunde. Leider dem nachteil ist dass er aug noch 420hz erkent als 1 sec wehn er langer dauert. weil ich jeden pro secunde sahle. aber denke dass macht niks da dass nicht oft fohr komt. audio signale werden nicht erkant die uber oder unter 420hz liegen. wehn noch jemanden lust hat im software etwas su bessern gerne. fieleigt ein formel um anstat 10mhz kristal einfach aus su tauchen gegen 8 oder 4mhz dan konte ich dem aug noch ausparen und der interner nutzen. o und sorry fuhr dass hollandisch im text. wahr fuhr freund gemeint. $regfile = "ATtiny2313.dat" $crystal = 10000000 $framesize = 32 $swstack = 32 $hwstack = 32 Dim A As Word 'int0 teller Dim B As Word 'tijdelijke int0 waarde Dim C As Byte 'waarde voor 0,5 Dim D As Byte 'waarde voor 1 Config Portd.0 = Output 'maak pin D5 uitgang voor relais via bc547 (4k7) Config Portb.7 = Output 'maak pin D5 uitgang voor relais via bc547 (4k7) Config Pind.6 = Input 'maak pind0 ingang voor druk knop Portd.6 = 1 'gebruik pullup weerstand intern Relais Alias Portd.0 Led Alias Portb.7 Knop Alias Pind.6 Config Int1 = Rising 'config Int0 op high Level On Int1 Isr_von_int0 'bij hoge puls ga naar> Config Timer1 = Timer , Prescale = 256 'config Timer1 10000000\256=39062.5 On Timer1 Isr_von_timer1 'bij overloop timer ga naar> 'Interrupts aanzetten Timer1 = 26472 'is 1 sec 10000000\256=39062.5 65535-39062.5=26472.5 C = 0 Start: While Knop = 1 Wend Gosub Neemop 'aanzetten van Interrupt Int0 Cls Do If B => 209 Then 'kijk of waarde binnen de 420hz 0,5sec norm is If B =< 211 Then 'zo ja tel 1 op bij c en maar waarde weer 0 C = C + 1 B = 0 End If End If If B > 1 Then 'kijk of waarde buiten norm 420hz 0,5 valt If B < 209 Then 'zo ja reset gegevens If B > 211 Then B = 0 C = 0 End If Else C = 0 End If C = 0 End If If B > 0 Then 'kijk of waarde buiten norm 420hz 1 sec valt If B > 415 Then 'zo ja reset gegevens If B < 425 Then B = 0 D = D + 1 Else D = 0 End If End If End If If D => 15 Then Gosub Legneer 'telefoon wordt opgenomen na x keer If C => 5 Then Gosub Legneer 'telefoon neergelgt na x keer Loop End Isr_von_int0: 'isr van Int0 Enable Timer1 A = A + 1 Return Isr_von_timer1: 'isr van timer1 Disable Timer1 B = A A = 0 Timer1 = 26472 Return Neemop: D = 0 C = 0 B = 0 A = 0 Enable Interrupts Enable Int1 Set Relais Set Led Return Legneer: Reset Relais Reset Led Disable Int1 Goto Start
Hallo, Habe nog ein problem. bin umgeschalted auf der interner Quarz fon 8mhz anstat 10000000 laut berechnung habe ich folgende gemacht 8000000\256 fon prescaler bekomme ich 31250 also pro secunde 31250 pulse. da ich dem 16 bit counter nutze 65535-31250=34285 wehn ich dem jetz nutze bekomme ich bei 420hz signal nicht meine 420 im lcd sonder 394 wo liegt dies an ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.