5V-12V Schaltsignal an MCP23017 absichern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich möchte die Drehzahl eines Motorbootmotors erfassen. Habe dazu einen Drehzahlsensor aus dem KFZ-Bereich vorgesehen. Grundsätzlich verwende ich zum Einsammel von digitalen Signalen einen MCP23017 über I²C. Für Taster und der Gleichen langen da die 3,3V vom Raspberry, der Drehzahlsensor braucht jedoch eine Spannungsversorgung von 5-12V. Meine erste Eingebung war die Verwendung eines Optokopplers, um die höhere Spannung vom Raspberry fernzuhalten. Leider reichen meine Bauelemente Kenntnisse aber nicht so weit, als dass ich jetzt sagen könnte, welchen Optokoppler (Spezifikationen) ich benötige.

    Könnt Ihr mir da ein paar Tipps geben, wie die Aufgabe (für den Raspberry) sicher zu lösen ist?

    Für Bemühungen und Antworten vorab vielen Dank.

    MFG

    corrupted

  • Hallo.


    Meine erste Eingebung war die Verwendung eines Optokopplers, um die höhere Spannung vom Raspberry fernzuhalten. Leider reichen meine Bauelemente Kenntnisse aber nicht so weit, als dass ich jetzt sagen könnte, welchen Optokoppler (Spezifikationen) ich benötige.


    Solange sich Leitungslänge in Grenzen hält (~2m) brauchst keinen Optokoppler.
    Außerdem sind Optokoppler wenig für schnelle Protokolle geeignet.Bei mehr als 10kHz würde ich denen nicht mehr trauen.

    N Levelshifter genügt da vollkommen.

    gruß root

    Einmal editiert, zuletzt von root (26. April 2015 um 19:54)

  • Hallo
    die Idee mit dem Optokoppler ist immer gut. Bei längeren Leitungen als 30 cm verwende ich eigentlich immer Optokoppler für meine Projekte, weil das einfach sicherstellt, dass die GPIO nicht beschädigt witd. Bei der Auswahl des Optokopplers müsste man erst mal die maximal zu übertragende Frequenz berücksichtigen. Liegt die unter 50 Khz sollte ein einfacher ausreichen. Beispielsweise PC816. Einfach das Datenblatt runterladen und die Beschaltung entsprechend dimensionieren. Beim PC816 wähle ich normalerweise ca. 15 mA für die Sendediode (optimale Frequenzübertragung) . und ca. 8 mA für den Empfangsstrom am Kollector des Fototransistors. Entsprechend den Spannungen muss nun der Vorwiderstand berechnet werden. Bei 12 V Eingangssignal ( -1.2V Sperrsannung im Durchlass richtung) = 10.8V / 0,015A = 720 Ohm Vorwiderstand auf der Sendeseite. Nach der selben Berechnung geht das auch auf der Empfängerseite. U/I=R
    Will man keinen Optokoppler verwenden, kann man sich auch mit einem Spannungsteiler bestehend aus zwei Widerständen behelfen. Auch hier hilft das Ohmsche Gesetz bei der Berechnung der Widerstände.

    Gruß Rolf

  • Hallo


    Ich vermute mal, dass es mit einem MCP23017 nicht direkt möglich sein wird, die Motordrehzahl zu erfassen, dafür ist der Motor zu schnell und der I2C Bus zu langsam.


    ...ist ein gutes Argument, es sei denn er benutzt int A/B aber dann kann man sich das Teil gleich sparen.

    Müsste man wissen mit welchem Decoder oder was auch immer die Drehzahl erfasst wird.

    gruß root

  • Zur elektrischen Erfassung
    Wie bereits geschrieben steht - um welche Art des Ausgangs handelt es sich? Open Collector/Emitter?
    Wie wär's mit einer Pegelanpassung per Spannungsteiler mit Schmitt-Trigger (ggf. mit vorgeschaltetem kleinem Tiefpaß, um Störungen wegzufiltern...)

    Zur sicheren Drehzahlerkennung
    Nicht nur die maximale Drehzahl des Motors spielt eine Rolle bei der Abtastung, sondern auch das Pulsbreitenverhältnis zwischen Hi und Low. Handelt es sich zum Beispiel lediglich um einen kurzen Impuls (z.B. von einem Hall-Sensor), dann kann es gut möglich sein, daß Du zunächst einen Zählerbaustein vorschalten mußt, der diese kurze Flanke auch erkennen kann.

  • Hallo,

    ich komme jetzt erst dazu zu antworten. Schon einmal vielen Dank für die Antworten.


    Ich vermute mal, dass es mit einem MCP23017 nicht direkt möglich sein wird, die Motordrehzahl zu erfassen, dafür ist der Motor zu schnell und der I2C Bus zu langsam.

    Die Idee ist, am Motor eine Schaltfahne anzubauen, die pro Umdrehung ein Signal liefert. Bei 5000 U/min sind das 83 Impulse die Sekunde (83 Hz). Das ergibt dann etwa 1 Impuls alle 12ms. Wenn ich nach Shannon alle 6ms den Eingang abfrage sollte ich doch safe sein, oder?

    Es handelt sich um einen Drehzahlgeber mit Hall Effekt von VAG. Ein detailiertes Datenblatt habe ich leider nicht. Laut Angaben eines Freundes (KFZ-Meister) benötigt der Sensor eine Spannungsversorgung von 5-12V.

    Einmal editiert, zuletzt von corrupted (27. April 2015 um 07:37)

  • Natürlich kannst Du entweder die Zeit zwischen zwei Impulsen zählen oder aber die Anzahl der Impulse pro Zeit. Das hängt von der Zeitauflösung und der Geschwindigkeit ab. Dennoch bleibt das Problem, den Impuls überhaupt erst mal sicher zu erfassen.

    Ein Beispiel - Dein Motor dreht mit 1Hz. Dein Hallsensor sitzt auf einer 1m dicken Welle (das ist jetzt absichtlich übertrieben!). Dann beträgt der Umfang 3,14m. Nehmen wir an, Dein Hallsensor ist 1mm groß. Dann hast Du ein Verhältnis von 1mm/3140mm. D.h. Deine Pulsbreite beträgt 0,32ms und Deine Auszeit 0,99968s. Um die Pulsbreite von 0,32ms zu erfassen müßtest Du mit 0,16ms abtasten. Das entspricht 6280Hz.

Jetzt mitmachen!

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