Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Ich arbeite an einem Näherungssensor für meine Garage und verwende einen HC-SR04-Ultraschallsensor, um die Entfernung zu messen. Der Mikrocontroller, den ich verwende, um alles zu steuern, ist ein PIC16F88. Ich habe eine erste Version, die einwandfrei funktioniert, die Entfernung ist genau und konsistent.
Ich plane jedoch, das Projekt über eine Batterie mit Strom zu versorgen (noch nicht sicher, welche Art von Batterie), und daher möchte ich den Stromverbrauch so weit wie möglich reduzieren. Im Ruhezustand zieht der Abstandssensor ca. 3mA, was zu viel ist. Ich habe angefangen, das Projekt zu ändern, um den Schlafmodus des PIC zu verwenden, dieser Teil funktioniert gut.
Ich versuche jetzt, den HC-SR04 über einen Pin des PIC und einen MOSFET (2N7000) mit Strom zu versorgen. Ich habe den Sensor wie folgt verkabelt:
Der MOSFET ist wie folgt verdrahtet:
Die Logik meines C-Programms ist folgende:
Das Problem ist, dass die gemessenen Entfernungen überhaupt nicht konsistent sind. Es scheint um die richtige Entfernung herum zu variieren, geht aber 10 bis 20 Zentimeter über und unter die tatsächliche Entfernung. Wenn ich das Gate des MOSFET an +5V anschließe, dann funktioniert es einwandfrei und ich habe konsistente, korrekte Abstände. Ich habe versucht, bis zu 500 ms zu warten, nachdem ich das Gate auf +5 V eingestellt hatte, bevor ich die Entfernung gemessen habe, aber es hat das Problem nicht behoben.
Hat jemand ähnliches erlebt, oder hat eine Idee, was ich versuchen könnte, um den HC-SR04 auf diese Weise mit Strom zu versorgen?
Ich danke Ihnen für Ihre Hilfe!
Nach langem Experimentieren sieht es so aus, als wäre alles darauf zurückzuführen, dass die Steckbrettverbindungen nicht stark genug waren. Wenn ich versuche, den MOSFET und die daran angeschlossenen Drähte so zu "drücken", dass sie sich berühren, scheint es viel konsistenter zu sein. Wenn ich eine gute Verbindung bekomme und das Board nicht bewege, ist die Entfernung sehr stabil. Ich habe auch einen Kondensator zwischen +5 V und Gnd für den HC-SR04 hinzugefügt, um alle Inkonsistenzen im Signal zu absorbieren, das vom Pin des PIC und des MOSFET gegeben wird. Ich werde bald alles auf eine Prototypenplatine löten und bestätigen können, dass dies das Problem war.
Die Aufwachzeit des HC-SR04 scheint etwa 60 ms zu betragen. Die empfohlene Mindestzeit zwischen 2 Maßnahmen zur Vermeidung von Kollisionen mit einem vorherigen Signal beträgt etwa 60 ms, also habe ich versucht, auch nach dem Einschalten des Sensors 60 ms zu warten. Wenn Sie weniger warten, erhalten Sie einige falsche Werte, daher würde ich empfehlen, jedes Mal, wenn Sie den Sensor wieder einschalten, sowie zwischen jeder Messung eine Verzögerung von 60 ms oder mehr einzuhalten.
Ich denke, die Lösung ist einfach, dass der HC-SR04 mit einem stabilen Signal betrieben werden muss, was bei meinem Steckbrett nicht der Fall war. Jedenfalls vielen Dank für die Hilfe!
Es ist ein bisschen weit hergeholt, aber Sie könnten erwägen, Ihre E / A-Pins, die mit dem HC-SR04 verbunden sind, auf hohe Impedanz zu stellen, bevor Sie den FET abschalten, falls Sie Strom in den HC-SR04 lecken, wenn dies der Fall ist angeblich ab. Das Modul könnte in diesem Fall in einen irren Zustand geraten, denke ich.
jsotola
Ron Beyer
Asct20
Asct20
Olin Lathrop
Asct20