TinyTx und HC-SR04

  • Hallo zusammen,

    ich versuche nochmal hier mein Glück ;)

    Ich möchte gerne einem HC-SR04 Ultraschallentfernungssensor an einen TinyTx Sensor anschliessen. (wie in den Threads von meigrafd oder ps915 habe ich dies mit verschiedenen anderen am Laufen).

    Beim HC-SR04 will es einfach nicht. Aktuelle Sketch unten beigefügt.
    - Vcc/GND vom Tiny (D10) (geschaltet) => ich bekomme immer falsche Werte
    - Vcc (egal ob 5V oder 3,3V)/GND vom Pi => hier bekomme ich korrekte Werte (auch komplett am Pi angeschlossen funktioniert der Sensor korrekt)

    - ich habe dem Sensor am Tiny nach den Einschalten von Vcc auch zum testen extra Zeit gegeben:
    digitalWrite(VCC_PIN, HIGH);
    delay(3000);
    hilft aber nicht

    Nun habe ich vorhin folgenden Thread gefunden, der - wenn ich den richtig verstanden habe - ein vergleichbares Verhalten beschreibt und dort wird erwähnt, den HC-SR04 per MOSFET aus- und einzuschalten, wenn er für die Messung gebraucht wird:

    http://forum.arduino.cc/index.php?topic=216079.0

    Wenn dem so ist, kann mir mal jemand skizzieren, wie ich den MOSFET in Verbindung mit dem Tiny und dem HC-SR04 einzusetzen habe?

    Vielen Dank für Infos und Hinweise...

    P.S. Ich habe unten auch noch einen zweiten Sketch beigefügt, der nicht so umfangreich ist, jedoch bzgl. der Vcc Versorgung identisches Verhalten aufweist.


    Aktuelle Sketch, zusätzlich mit SoftwareSerial zum Debuggen:

    Weiterer Sketch, der minimierter ist aber sich gleich verhält bzgl. Vcc:

  • Hi,
    zunächst mal gibts hier ein Mikrocontroller Subforum ... da gehört das schon mal rein, denn das mit dem RPi nix zu tun.
    In o.g. Forum findest Du z.B. -> dieses <- Beispiel ... das ist zwar jetzt ein bisschen oversized aber die Grundfunktionen für das Ultraschall-Handling kannst Du Dir da auch mal anschauen.
    Vielleicht findest Du ja einen Fehler ...
    Wenn nicht ... schauen wir mal weiter ...

    cu,
    -ds-

  • Den ATtiny hast du aber mit 5V an VCC angeschlossen, oder? Mess doch mal die Spannung die aus einem I/O raus kommt. Soweit ich weiß kommt das raus was auch rein geschickt wird (Volt).
    Der Sensor brauch soweit ich weiß 5V um richtig zu funktionieren

    Es funktioniert auf jedenfall, siehe dazu:
    http://electronut.in/talking-to-ult…ng-an-attiny84/
    http://www.instructables.com/id/Talking-to-…r-HC-SR04-usin/

  • Danke für die Antwort.
    Au man, kannst den Thread ja verschieben. Hab' dann hierher fehlleiten lassen, da die Tiny Sammelbestellung und Entwicklung: Temperatur Funk Sensor auch hier geführt werden.
    Ich werde mir das Beispiel anschauen, scheint aber tatsächlich etwas oversized... aber wer weiss.
    Edit: dort werde die Sensoren sicherlich dauerhaft anbleiben und nicht "schlafen" gelegt wenn nicht benötigt, oder? Wenn ich nur z.B. alle 5 min. den Füllstand eines Tankes lesen will, dann möchte ich in der Zwischenzeit den Sensor "schlafen" lassen, sodass nicht unnötig Strom verbraucht wird. Der Ansatz/Ziel ist ja mit Tiny und portabler Stromversorgung per Batteriepack. Mit Dauerversorgung des HC-SR04 (vom Pi 5V oder sogar 3,3V) funktioniert es ja schon...


    Den ATtiny hast du aber mit 5V an VCC angeschlossen, oder? Mess doch mal die Spannung die aus einem I/O raus kommt. Soweit ich weiß kommt das raus was auch rein geschickt wird (Volt).
    Der Sensor brauch soweit ich weiß 5V um richtig zu funktionieren

    Es funktioniert auf jedenfall, siehe dazu:
    http://electronut.in/talking-to-ult…ng-an-attiny84/
    http://www.instructables.com/id/Talking-to-…r-HC-SR04-usin/

    Ja, ich habe den Tiny mit 5V betrieben. (Batteriepack oder auch Netzteil mit 5V)
    Das der Sensor 5V braucht steht in den Datenblättern, ja.
    Aber wie ich bereits geschrieben habe, kann ich den HC-SR04 statt am Tiny - direkt vom Pi mit Strom versorgen. Dann hat er dauerhaft Vcc 5V vom Pi und funktioniert. Selbst wenn der Sensor direkt mit nur 3,3V (dauerhaft) vom Pi versorgt wird liefert er korrekte Werte.
    Nur über den Tiny(D10) geschaltet funktioniert er nicht. Ich könnte noch mal testen wie es sich verhält, wenn der VCC_PIN dauerhaft auf HIGH bleibt...

    Du wolltest ja mal einen von Deinen 6 die noch rumliegen getestet haben. Dann hätten wir einen Sketch der auf dem Tiny funktioniert (Vcc über Tiny/Batteriepack). Leider bis Du aber wohl noch nicht dazu gekommen.


    Na ja, ich werde nun mal Eure Links durchforsten und schauen, vielleicht finde ich ja doch noch etwas ...

    Einmal editiert, zuletzt von giovanne (26. März 2015 um 22:47)

  • Bin nun endlich mal dazu gekomme, bei dem Thema weiter zu machen.

    Ich kann das aus dem im Ausgangsthread verlinkten Thread von meiner Seite derzeit nur bestätigen.
    Über den ATtiny Pin (z.B. D10) bekomme ich es nicht hin den HC-SR04 so mit Strom zu versorgen (obwohl Vcc dort anliegt, wenn geschaltet), dass er sinnvolle Werte liefert.

    Der HC-SR04 funktioniert korrekt, wenn er entweder direkt mit an die Batteriepack-Versorgung oder den Vcc Pin des TinyTx mit Dauerstrom versorgt ist. Dies kommt jedoch nicht in Frage, da er dann dauerhaft Strom verbraucht.

    Also habe ich heute mal über den D10 einen in der Sammelkiste verfügbaren BC337-16 Transistor angeschlossen. Dieser fungiert als Schalter und schließt den Stromkreis des HC-SR04 zum Batteriepack wenn eine Messung vorgenommen werden soll.
    Edit: Ach ja, und wie in Thread beschrieben den TriggerPin bei Nichtgebrauch zum Input machen, ansonsten zieht der Hc-SR04 weiter Strom.

    Nun geht es ans Feintuning und Beobachtung des Vcc-Verbrauchsverhaltens.
    Bei der nächsten Bestellung wird dann noch ein IRF530 oder vergleichbarer MOSFET mitbestellt und getestet.

    Meine Funk-Füllstandermittlung und Übertragung per TinyTx rückt näher ;)

    Einmal editiert, zuletzt von giovanne (30. März 2015 um 23:41)

  • Ja und?
    Mosfet auf Halde legen oder evtl. die pos. Erfahrungen der Wissenden nachvollziehen und möglichst wenig Strom verbrauchen.
    Danke für den Link, aber nicht wirklich was neues :sleepy:

    So ich bin zufrieden und es geht voran :)
    Kannst Dir nun weitere Kommentare die mich nicht weiter bringen sparen, habe keine Lust mehr darauf und möchte lediglich Interessierten hier Infos hinterlassen.

    Einmal editiert, zuletzt von giovanne (30. März 2015 um 23:43)

  • Naja, sie haben afaik bei niedriger Steuerspannung eine schlechte Leistungskurve.
    Kann also sein, dass eine Schaltung, die mit einem BC??? noch klaglos funktionierte, mit einem MOSFET plötzlich nicht mehr tut.


    Kannst Dir nun weitere Kommentare die mich nicht weiter bringen sparen, habe keine Lust mehr darauf und möchte lediglich Interessierten hier Infos hinterlassen.


    Au weia ... Sakra ... jetzt habe ich schon wieder ein Fauxpas geliefert :daumendreh2:
    Entschuldigung ... ich konnte ja nicht ahnen, dass nur Deine Infos den Wissensdurst der Interessierten hier stillen können ... :blush:
    Ich nehme natürlich sofort alles zurück und bitte alle Mitleser, meine Kommentare hier tunlichst zu ignorieren. Aber da sie sowie uninteressant sind, habe ihr das natürlich sofort gemerkt und sie eh schon überlesen :fies:

    cu,
    -ds-

  • Deshalb würde ich es mit nem Mosfet testen. Bei lesen des verlinkten Threads würde man zumindest merken, dass dort mit angesprochenem Mosfet Erfolg erzielt wurde.
    Wenn es nicht funktioniert, dann auch eine Erkenntnis, die ich hier kund tun würde um anderen teilhaben zu lassen. Aber ohne testen, werde ich es wohl nicht erfahren und jemand anderes hat bzw. will es bisher ja auch nicht testen.

    Weiterbringende Kommentare darfst gerne abgeben, bisherige hier im Thread haben aber immer alle gleich neg. Touch hinsichtlich Sinn, ...

    Also wenn es auch mal jemand testen will, gerne und her mit der Erfahrung ...

  • Für alle TinyTx Interessierten, die auch einen HC-SR04 Sensor betreiben möchten, mein aktueller Zwischenstand:

    - HC-SR04 über Transistor (z.B. BC337-16; GND schalten) ein-/ausgeschaltet, statt über einen Pin des ATtiny funktioniert (Bild Aufbau unten)
    - Verlässliche Werte mit NewPing (1.6beta) Library http://forum.arduino.cc/index.php?topic=106043.0 (mit pulseIn(...) teils nicht)
    - damit der HC-SR04 im Ruhemodus des TinyTx Board kein Strom zieht, trigPin und VccPin auf "INPUT" ziehen (pinMode(trigPin, OUTPUT); pinMode(VCC_PIN, OUTPUT))
    - ersten Wert jeweils nach dem "Aufwecken" des HC-SR04 verwerfen, da sich der Sensor erst wieder "initialisieren" (in einen definierten Zustand bringen) muss
    - zuvor angesprochene Test mit MOSFET bisher nicht durchgeführt, da mit BC337 aktuell top funktioniert (Stromverbrauch wird beobachtet)

    Konstruktive Hinweise/Tipps sind gerne gesehen...

    Anbei mein aktueller Test-Debug-Sketch, den es nun evtl. weiter zu optimieren gilt, bevor er in einen Temp-Sketch gemerged wird und draussen zum Einsatz kommt:

    Anbei auch ein Bild vom Aufbau:

    Einmal editiert, zuletzt von giovanne (4. April 2015 um 08:54)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!