ahoi! ich hab ein kleines Problem, das ich mit mikrokontroller oder, besser, mit analoger Schaltung loesen will: Ein 433Mhz Empfaenger soll von einem Arduino ausgewertet werden, problem dabei ist: dieser soll soviel und solange wie moeglich im standby verharren. Leider verursacht der Empfaenger staendige Interrupts im Arduino, wohl verursacht durch einen Empfindlichkeitsanstieg beim Empfang von Signalen oder so...whatever, diese "Glitches" oder Noise wecken den Arduino und dass soll nicht passieren. Nun ueberlege ich krampfhaft, was ich dagegen tun kann, komme aber auf keinen gruenen Zweig. Nen RC-Glied? eine Art Timerschaltung mit NE555? Irgendeine logische Verknupefung von einem Taktsignal mit dem Ausgang des Empfaengers? IM Endeffekt is folgendes verhalten gefragt: ignoriere kurzes Noise vollstaendig. aktiviere den Interrupt-Eingang fuer eine gewisse Zeit, wenn eine Praeambel von gewisser dauer empfangen wird(-xmal solang wie nen seeehr kurzer Noise) Jemand eine Idee? Gruesse, randaley
...mit dem Noise liegt der Hase auf der Nase. Du willst etwas empfangen und schaltest den INT ab? Lieber nicht.
Ich kenne das konkrete HF Modul nicht. Im allgemeinen ist es jedoch so, dass PLL basierte Funkempfänger lautes Rauschen empfangen, wenn der Sender inaktiv ist. Deswegen macht es wenig Sinn, den Ausgang des Empfänger direkt mit dem Interrupt-Eingang des Mikrocontrollers zu verbinden. Bevor wir uns hier clevere Lösungen ausdenken, beantworte erstmal folgende Fragen: - Wie hoch ist die Stromaufnahme des Empfängers? - Wie hoch ist die Stromaufnahme des Mikrocontrollers? - Wie viel Rauschen (pulse pro Sekunde) gibt der Empfänger in der Zeit aus, wo die Schaltung eigentlich inaktiv sein soll?
Ahoi! Zu den Fragen: - Wie hoch ist die Stromaufnahme des Empfängers? 0,3mA Wie hoch ist die Stromaufnahme des Mikrocontrollers? Arduino pro mini, untertaktet auf 1Mhz ca. 1mA, im sleep natuerlich bei weitem weniger. Wie viel Rauschen (pulse pro Sekunde) gibt der Empfänger in der Zeit aus, wo die Schaltung eigentlich inaktiv sein soll? Ich hab die Pulse leider nicht gezählt, mir nur einmal visualisiert - es sind zu viele;) sagen wir, der Arduino wird 10mal in der Sekunde unnötig aufgeweckt... Tiefpass hab ich als Idee anliegen, aber noch nicht ausprobiert... grüsse, randalay
Das verhältnis der Stromaufnahmen legt nache, den Mikrocontroller möglichst schlafen zu legen. Das lohnt sich ganz sicher. 10 Interrupts pro Sekunde sind fast gar nichts. Wenn du das Programm geschickt schreibst, werden sich selbst 100 Interrupts pro Sekunde nur marginal auf die Stromaufnahme auswirken. Du musst einfach dafür sorgen, dass Störsignale schnell erkannt werden, so dass der Mikrocontroller sich schnell wieder schlafen legen kann. Du könntest auch eine externe CMOS Schaltung vorsehen, die den Mikrcoontroller nur dann aufweckt, wenn ein gültiges Signal empfangen wird. Das kann möglicherweise eine simple Timerschaltung sein, die das Präambel erkennt.
Allenfalls sollte man das Signal mal mit dem Oszilloskop anschauen, und mit dem gewuenschten Signal vergleichen, bevor man irgendwelche Massnahmen trifft.
:
Bearbeitet durch User
randaley schrieb: > Ein 433Mhz Empfaenger soll von einem Arduino ausgewertet werden, problem > dabei ist: dieser soll soviel und solange wie moeglich im standby > verharren. Leider verursacht der Empfaenger staendige Interrupts im > Arduino Dazu gibt es verschiedene Lösungsansätze, ich skizziere mal zwei davon: - Den Empfänger für eine definierte Zeit an- und abschalten, zum Beispiel 100ms an und 500ms aus. Wenn in den 100ms irgendeine sinnvolle Bitfolge erkannt wird, dann weiter an lassen und decodieren. Das funktioniert aber nur wenn das Sendesignal ausreichend lang ist bzw. wiederholt wird und wenn das Rauschen des Empfängers nicht zuviel Pseudosignal produziert. - Den Empfänger mit einer Squelch-Schaltung ergänzen, d.h. der NF-Ausgang wird nur bei anliegendem HF-Signal freigeschalten. Diese Methode funktioniert wiederum nur, wenn nicht zuviel Stör-HF in der Luft ist. Dein Problem hat schon ganze Horden von Ingenieuren beschäftigt und ist immer wieder aktuell. Sinnvoll ist es, gleich von vorneherein auf minimale Stromaufnahme der beteiligten Komponenten zu achten, was Du ja anscheinend getan hast.
randaley schrieb: > wohl verursacht durch einen Empfindlichkeitsanstieg beim Empfang von > Signalen oder so Geraten? Gemessen? > IM Endeffekt is folgendes verhalten gefragt: ignoriere kurzes Noise > vollstaendig. aktiviere den Interrupt-Eingang fuer eine gewisse Zeit, > wenn eine Praeambel von gewisser dauer empfangen wird(-xmal solang wie > nen seeehr kurzer Noise) Zahlen? Was ist "kurz", was "lang"? Jetzt Nicht schrieb: > sollte man das Signal mal mit dem Oszilloskop anschauen Damit das Ratespiel mal wenigstens Hand und Fuß bekommt. Man sollte doch, bevor man etwas bekämpfen will, wissen, was man bekämpfen will...
Ahoi nochmals, @Lothar: 1. recherchiert, 2.kurz oder lang in relation zueinander ist erstmal ausreichend;) dimensionierung kommt, sobald ich einen Loesungsansatz verfolge. @Micha: den ersten Ansatz verfolge ich zusaetzlich, um weiter Strom zu sparen. Den zweiten Ansatz schaue ich mir genauer an, da ich (seit heute) sowieso eine Loesung mit NE555 bzw einem LOWCurrent Derivat als zweiten Loesungsansatz verfolgen moechte. Danke erstmal fuer die Hilfe! Ich werd mich entweder mit neuem Problem oder meiner verwendeten Loesung zurueckmelden!:) Gruesse, randaley
Lothar Miller schrieb: > Man sollte doch, bevor man etwas bekämpfen will, wissen, was man > bekämpfen will... Oder man weiß auf was man reagieren will, dann baut man sich ein Tor, dass nur das durch lässt, was man empfangen will.
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.