Ich habe eine ziemlich einfache Schaltung, die perfekt auf dem Steckbrett funktioniert, aber ich habe große Probleme, sie auf eine Leiterplatte zu übertragen. Ich sehe ein sehr seltsames Verhalten, das außerhalb meiner aktuellen Erfahrung liegt, und hoffe, einen Rat zu bekommen.
Die Schaltung implementiert einen WLAN-Bewegungssensor, obwohl das Problem, das ich habe, erst auftritt, bevor ich zum HF-Teil oder sogar zum uC-Teil des Diagramms komme:
Ich habe den Teil eingekreist, der Probleme hat.
R3 ist ein Pulldown-Widerstand, der erforderlich ist. B / c AMN42121 treibt den Ausgang auf HIGH, wenn eine Bewegung erkannt wird, lässt ihn jedoch für keine Bewegung hängen, sodass ein Pulldown erforderlich ist.
Ich habe C1 verwendet, um den Übergang zwischen Bewegung und Nichtbewegung zu glätten. C1 bewirkt, dass der Ausgangspegel langsam und gleichmäßig auf LOW geht, sodass der Zustand "keine Bewegung" nach einigen Sekunden ohne Bewegung erreicht wird.
Der Wechselrichter ist da. Die externen Interrupts von b / c attiny werden durch den LOW-Pegel ausgelöst, daher muss ich die Logik invertieren. Es ist bedauerlich, dass ich für einen Wechselrichter ein so großes DIP-Paket verwenden musste, aber ich konnte nichts anderes finden.
Ich habe eine doppelseitige Leiterplatte für diese Schaltung hergestellt, die so aussieht:
Auch hier habe ich bisher nur den eingekreisten Bereich zusammengestellt.
Nach dem Löten von S1, R3 und C1 erhalte ich folgendes Signal vom Sensorausgang:
Genau das möchte ich sehen, also ist bis zu diesem Punkt alles in Ordnung.
Als nächstes habe ich eine Buchse für IC2 eingelötet und den Wechselrichter eingesteckt. Hier beginnen die Geheimnisse. Anfangs war alles in Ordnung, aber nach einer Weile des Spielens mit der Platine funktionierte die Schaltung plötzlich nicht mehr. Wenn ich eine Sonde am Sensorausgang platziere, sehe ich anstelle des oben gezeigten netten Signals Variationen der folgenden zwei Beispiele:
Beispiel 1:
Beispiel 2:
Beachten Sie, dass im Gegensatz zum ersten Beispiel das Signal im zweiten Beispiel nicht durch Bewegung erzeugt wird - diese Sägezahnform entsteht nur von selbst, ohne dass ich etwas unternehme.
Nach vielen Tests konnte ich Folgendes feststellen:
- Wenn Sie den Wechselrichter aus der Steckdose ziehen, funktioniert der Sensor wieder ordnungsgemäß.
- Wenn der Wechselrichter unter Spannung steht, während er angeschlossen bleibt, funktioniert der Sensor.
- Die Verwendung eines anderen Wechselrichters hat keine Auswirkung.
- Wenn Sie die Platine mit Flussmittelentferner oder Aceton übergießen und mit einer Bürste schrubben, funktioniert der Sensor manchmal wieder, aber nur sehr kurz. Irgendwann konnte ich das Signal durch aggressives Schrubben mit einer Zahnbürste so aussehen lassen:
Beachten Sie, dass das Signal auch in diesem letzten Bild nicht vollständig auf den NIEDRIGEN Pegel zurückkehrt. Der Effekt verschwand fast, sobald ich aufhörte zu bürsten.
Bisher deutet dies auf einen Lötfehler hin, außer dass ich das Problem wirklich nicht sehen kann. Ich bin mit starker Vergrößerung sorgfältig über das Brett gegangen und habe alle Stellen, die mir in den Sinn kamen, auf Kontinuität getestet - alles wird überprüft. Hier ist eine Nahaufnahme des Lötauftrags an der IC-Buchse und am Sensor:
Ich habe jetzt keine Ideen mehr, daher wäre jeder Rat sehr dankbar. Danke.
BEARBEITEN:
Ich habe gerade etwas Interessantes entdeckt. Eine genauere Untersuchung von Beispiel Nr. 2 (das Sägezahnformsignal) zeigt, dass die Abwärtsneigung ein Segment der erwarteten C1-Entladungskurve ist. Wenn sich der Spannungspegel der Schwelle des Wechselrichters nähert und dort zu viel Zeit verbringt, scheint der Wechselrichter verwirrt zu werden! Es erzeugt diesen kleinen Rauschstoß und unternimmt dann etwas, um den Eingang auf HIGH zurückzuschalten, oder bleibt einfach in diesem "unbestimmten" verrauschten Zustand auf unbestimmte Zeit hängen, bis der Sensorausgang b / c der Bewegung wieder HIGH wird (Beispiel 1).
Um diese Theorie zu testen, habe ich C1 durch eine 10-mal kleinere Kappe ersetzt, wodurch die Entladungskurve viel steiler und "voila!" - Der Wechselrichter wird nicht mehr verwirrt und die Schaltung funktioniert!
Dies macht natürlich den Zweck von C1 zunichte, da es jetzt nicht so viel Verzögerung bietet, wie ich möchte. Ich bin nicht sicher, warum ich dieses Problem mit dem Wechselrichter auf dem Steckbrett nicht hatte, aber es deutet darauf hin, dass es eine sehr einfache Lösung geben könnte, die dieses Problem beheben kann. Ich habe gelesen, dass Steckbretter eine große "Streukapazität" haben, also muss ich vielleicht strategisch irgendwo mehr Kondensatoren hinzufügen? Irgendwelche Ideen?
EDIT 2: Bereitstellung einer Draufsicht, da einige Kommentatoren danach gefragt haben:
quelle
Antworten:
BEARBEITEN - wegen meiner Fehlinterpretation der Schaltung bearbeite ich die Antwort, um mich auf den Ausgang des Sensors zu konzentrieren - verwenden Sie den Analogausgang, um in den Wechselrichter einzuspeisen - wenn Sie es sind, sollten Sie vielleicht einen Schmitt-Trigger wie einen 74HC14 versuchen
quelle
Ohne Ihre Schaltung genau zu untersuchen, ist es offensichtlich, dass Sie keine Entkopplungskondensatoren haben.
Löten Sie einen über die Stromanschlüsse jedes Chips.
Außerdem deutet Ihr Kommentar zum Schrubben darauf hin, dass Sie irgendwo eine trockene Verbindung oder eine intermittierende Verbindung haben. Überprüfen Sie alle Ihre Lötarbeiten sorgfältig.
Wenn ein DIL-Chip zu viel des Guten ist, hätten Sie einfach einen Transistor verwenden und das Zeitverzögerungsmaterial in die Software einfügen können.
quelle
Ihr Hauptanliegen scheint die Reduzierung des Stromverbrauchs zu sein.
Der AMN42121 verbraucht kontinuierlich ca. 50uA. Der 74HC04 verbraucht kontinuierlich ca. 20uA. Der ATTINY85 verbraucht zeitweise etwa 300 uA, wenn er aufgewacht ist. Das Radio verwendet beim Senden Milliampere.
Wie oft wird der Sensor ausgelöst? Haben Sie Leistungsberechnungen durchgeführt, um die Batterielebensdauer abzuschätzen?
Ich schlage vor, dass Sie den Wechselrichter entsorgen und den Kondensator verlangsamen, den Sensor mit einem 10K-Pulldown gemäß Sensordatenblatt direkt an die MCU anschließen und die Zeitverzögerungslogik in die MCU schreiben.
[EDIT] Obwohl Sie ein bisschen falsch liegen, bin ich froh zu sehen, dass Sie Ihre Schaltung stufenweise testen. Es ist so viel einfacher als zu versuchen, ein abgeschlossenes Projekt fehlerhaft zu finden.
quelle