Pi empfängt Signal an GPIO Pin obwohl Kreislauf nicht geschlossen ist

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

    ich habe folgendes (Verständnis-) Problem:

    Gerne würde ich den Raspberry Pi einsetzen um bei uns in der Produktion die produzierten Teile einer Maschine zu tracken. Bisher habe ich das mit einem NodeMCU gemacht, der an einen potentialfreien Kontakt angeschlossen wurde. Also ganz simpel GPIO + GND an den Kontakt des Impulsgebers und jedes Mal wenn der Stromkreis geschlossen wurde, wird ein Teil produziert. Mit etwas Debouncing lies sich auch das Rauschen gut entfernen.

    Simulieren kann man das logischerweise mit einem Kabel, dass den GPIO Pin sowie GND verbindet - bei jeder Berührung wird der Kreis geschlossen und ein Teil "produziert".

    Nun wollte ich auf den Raspberry umsteigen, da ich hier einfacher mit der Datenverarbeitung sowie -speicherung umgehen kann.

    Jedoch ist es nun so, dass sobald mein Draht (oder Büroklammer, ummantelt oder nicht) den GPIO Pin berührt, bereits das Signal aufgenommen wird. Dadurch kann ich mit der Konstruktion leider nichts anfangen. Getestet habe ich es mit den pigpio sowie onoff node packages (da ich Javascript bevorzuge).

    Habt ihr irgendeine Idee woran das liegen könnte? :(

  • Pi empfängt Signal an GPIO Pin obwohl Kreislauf nicht geschlossen ist? Schau mal ob du hier fündig wirst!

  • Vielen Dank für die Info. Mir ist eben aufgefallen, dass wenn der Draht fest befestigt ist, ich durch Verbinden des anderen Endes mit GND recht gute Ergebnisse erziele. Gibt es denn einen "empfohlenen GPIO" Pin für solch eine Anwendung?

  • Alles klar, das dachte ich mir schon. :)

    Wir haben hier eine Art Terminal Touchscreen mit integriertem Raspberry (Clone) geholt. Siehe hier.

    Kannst Du mir sagen, ob es eine Möglichkeit gibt einen der unteren Anschlüsse (RS232C - COM1/2 oder I2C1) für meine Anwendung zu nutzen? Hier könnte ich nämlich Drähte an den Schraubklemmen befestigen statt Aufsteck-Pins zu verwenden.

    Oder gibt es eine kostengünstige und elegante Art eine sichere Kabelbefestigung am 40-PIN Terminal auf der Rückseite vorzunehmen?

    Vielen Dank dafür, dass du dir die Zeit nimmst.

    • Offizieller Beitrag

    Naja, die Sonderfunktionen COM, I2C1 und SPI (GPIO 7 - 11) würde ich mir freihalten für eventuelle spätere Erweiterungen des Systems und man sollte darauf achten, dass diese im device tree (dt) nicht aktiviert sind. Für einen Clone möchte ich auch nicht meine Hand ins Feuer legen, da könnte es Unterschiede zum Original geben. Ein Beispiel dafür ist GPIO 03 (Pin 5).

    Bei Jumperkabeln gibt es IMHO extreme Unterschiede was die Qualität betrifft, da ist u.U. selber bauen eine Alternative. => Stichwort: Dupont

    Evtl. passt auch ein "altes" IDE-Kabel an den 40-Poligen, dass Du am anderen Ende weiter bearbeiten könntest... :denker: Eine elegantere Art fällt mir im Moment nicht ein.

  • Moin!

    Nur kurz. Pull-Up-Widerstand!

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Laut Beschreibung ist es kein Clone, sondern ein Pi Compute Module. Also keine Verbrennungsgefahr für irgendwelche Hände.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Bei den Temperaturen heute braucht es schon was zum wärmen. ;)

    Laut Ankündigung ist ein CM3 lite verbaut, von dem es imho ebenfalls (wie imho von CM1 und allem seit seit dem RPi2) keine Clone gibt - also keine, die Raspberry irgendwas heißen. In der Beschreibung klingt das so, als wär das was ganz ordentliches (geschützte GPIO usw.) - bei dem Preis erwarte ich das aber auch.

    Mit für den "normalen" RPi gedachten Standard(Aufsteck)boards wäre ich vorsichtig. Das sieht so aus, als ob die nicht ans Gehäuse passen. Auf Flachbandkabel aufgecrimpte Buchsenleisten (das geht auch ohne Spezialwerkzeug) sollten es aber ohne Probleme tun, die gibts zu kaufen. Und eine Sicherung der Buchsen haben die ja eingebaut. Die originalen Boards werden genau so angeschlossen. Achtung, bei alten IDE Kabeln muss erst der Pin 20 aufgepopelt werden, der ist bei den meisten Kabeln als Verpolungssicherung verschlossen, daher würde ich die nicht nehmen.

    Gruß, STF

  • Vielen Dank für all die hilfreichen Antworten. Ich habe heute das Aufsteckboard erhalten, jedoch stellt mich dieses vor neue Herausforderungen.

    Vorher: GPIO4 + GND = SIGNAL

    Jetzt: INPUT4 + GND = KEIN SIGNAL

    Eine Idee was hier das Problem sein könnte? Laut Handbuch sollen die GPIO Pins ja direkt gemappt sein. Werde aus der Zeichnung leider nicht so recht schlau... :(

  • Laut Handbuch sollen die GPIO Pins ja direkt gemappt sein. Werde aus der Zeichnung leider nicht so recht schlau...

    Was auch immer Du mit "direkt gemappt" meinst, da ist schon noch a weng Logik dazwischen. Hier sehr gut zu sehen.

    Und da steht auch, was passiert:

    • Input OFF Level: <1.8VDC
    • Input ON Level: >2.5VDC

    Ich würd jetzt mal sagen, die Eingänge reagieren wie sie sollen. Was genau geht denn jetzt nicht?

    Grüße, STF

  • Bitte entschuldige, dass ich mich so blöd anstelle, nur sind meine Kenntnisse was Elektrotechnik angeht (noch) extrem beschränkt. Ich würde gerne das Board an einen potentialfreien Kontakt einer Maschine (bzw. eines Impulsgebers der Maschine) anschließen, damit ich die Impulse tracken kann. Ohne das Aufsteckboard ließ sich das relativ simpel simulieren durch das Verbinden von GPIO-Pin und GND. Das war im Grunde hinterher auch genau das, wie es an den potentialfreien Kontakt angeschlossen wurde. Nun mit dem Aufsteckboard, weiß ich nicht wie ich dies zu bewerkstelligen habe. Wenn ich hier einen der INPUT Ports (z.B. 4 -> GPIO4?) mit GND verbinde, wird kein Signal empfangen (also kein Impuls generiert/simuliert).

    Grüße und vielen herzlichen Dank,

    MaKin

  • Wenn ich hier einen der INPUT Ports (z.B. 4 -> GPIO4?) mit GND verbinde, wird kein Signal empfangen (also kein Impuls generiert/simuliert).

    Das Board funktioniert so: legst Du an einen Pin einen Pegel von mehr als 2,5V gegenüber COM an, wird ein ON erkannt. Legst Du den Pin auf Masse (COM), dann bleibt der so, wie er ist: OFF. Du musst also zusehen, wie Du den potenzialfreien Kontakt dazu bekommst, mehr als 2,5V (also auch 3,3V) auf den Eingang zu geben. Da ich Deine Maschine nicht kenne, solltest Du jemanden fragen, der zu dieser was sagen kann. Vielleicht reicht es ja auch, den Eingang per pull up auf 3,3V zu legen und über den Schalter auf Masse.

    Grüße, STF

  • Zitat

    Vielleicht reicht es ja auch, den Eingang per pull up auf 3,3V zu legen und über den Schalter auf Masse.

    Kannst Du mir sagen, wie ich hierzu vorgehen sollte? Würde ich dies programmatisch im System ändern?

    Ich würde gleich Mal unseren Elektriker befragen bzgl. des potentialfreien Kontaktes. Der COM Port sollte also mit 3,3V versorgt werden, damit er reagieren kann (weil der Pi mit 3,3V arbeitet?), was ist wenn es mehr wären?

    Nochmals vielen Dank lieber STF!

    Einmal editiert, zuletzt von MaKin (15. März 2018 um 20:09)

  • Kannst Du mir sagen, wie ich hierzu vorgehen sollte? Würde ich dies programmatisch im System ändern?

    Ich würde gleich Mal unseren Elektriker befragen bzgl. des potentialfreien Kontaktes. Dieser sollte 3,3V auf den Eingang geben (weil der Pi mit 3,3V arbeitet?), was ist wenn es mehr wären?

    Das Datenblatt sagt:

    • Voltage Range: 12 ~ 24V
    • Absolute Min/Max Voltage Range: 3.3 ~ 28V

    Mehr ist wohl kein Problem, 3,3V und 5V sind nur leicht verfügbar.

    Grüße, STF

  • Moin MaKin,

    es muss ein Widerstand zwischen 3,3Volt und GPIO4 geschaltet werden. Damit liegt der Pin auf High. Wird nun der Schalter geschlossen liegt Masse/GND an dem Pin. Über dem Widerstand fließt dann ein minimale Strom.

    Ich glaube wir haben uns auf einen Widerstandrichtwert geeinigt. Nicht grösser wie 5Kohm und nicht kleiner als 1Kohm.

    In dem Programm musst dann auf eine fallende Flanke gewartet werden.

    Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt?

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hat jetzt geklappt. Es lag an der Verkabelung bzw. der Stromversorgung. Vielen lieben Dank für eure Hilfe! Jedoch nutze ich an diesem IO-Terminal keinen Widerstand (ist einer verbaut) und es funktioniert.

    Könnt ihr mir verraten, wofür der Pull-Up Widerstand benötigt wird (in meinem Szenario)? Geht am Arduino ja auch ohne. :)

    Würde mich nämlich auch gerne mal am Raspberry Pi Zero versuchen (ohne Display-Terminal) und dafür das Original Case verwenden - ohne Breadboard.

    Und könnt ihr mir erklären wofür diese IO-Boards überhaupt eingesetzt werden? Kam auch nicht wirklich dahinter was es mit I2C auf sich hat. Siehe dieses Terminal Breakout Board für I2C. Ich bin leider überwältigt von der Informationsflut. :(

Jetzt mitmachen!

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