GPIO.setup pull_up_down

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

GPIO.setup pull_up_down

Beitragvon Moon » Montag 25. Dezember 2017, 10:22

Hey,

ich habe versucht mein Script zum Laufen zu bringen. Ich überprüfe im Script ob ein HIGH Signal ansteht.
Nun wenn ich die GPIOs verbinde mit der 3.3 Volt Versorgung des Raspberry Pis kommt immer ein LOW Signal heraus.

Nun habe ich gelesen, dass man einen Wiederstand setzen muss mit einem optionalen Parameter bei GPIO.setup();
Der Parameter lautet pull_up_down. Zu dem habe ich gelesen, wenn man GPIO.PUD_UP diesem zuweist, dass es dann von
0 auf 1 hochgezogen wird und wenn man GPIO.PUD_DOWN diesem zweist es von 1 auf 0 runtergezogen wird.

Nun wird mir aber beim GPIO.PUD_UP immer ein HIGH-Signal gegeben, obwohl auch keine Spannung ansteht.

Habt ihr denn Ideen wie man dies lösen kann?

Mein Script:

  1. #!/usr/bin/python
  2. # -*- coding: utf8 -*-
  3.  
  4. import RPi.GPIO as GPIO
  5.  
  6. import logging
  7. from marrow.mailer import Message, Mailer
  8. logging.basicConfig(level=logging.INFO)
  9.  
  10.  
  11. # Benötigte Werte:
  12. # GPIO.LOW (alles ok)
  13. # GPIO.HIGH (fehler)
  14.  
  15. GPIO.setmode(GPIO.BOARD); # Pin-Nummern aus dem Layout benutzen (siehe gpio.jpg)
  16.  
  17.     # input setzen auf Pin-Nummer: 18 = GPIO 24
  18. GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP);
  19.  
  20. #Überprüfung ob input einen low oder high status hat   == GPIO.HIGH
  21. gpioInput = GPIO.input(18)
  22. if gpioInput == GPIO.HIGH:
  23.     # Mailversand
  24.     mail = Mailer({
  25.         'manager.use': 'futures',
  26.         'transport.use': 'smtp',
  27.         'transport.host': 'smtp.gmail.com',
  28.         'transport.tls': 'ssl',
  29.         'transport.username': '',
  30.         'transport.password': '',
  31.         'transport.max_messages_per_connection': 5
  32.     })
  33.  
  34.     mail.start()
  35.  
  36.     message = Message([('Information', '')], [('Ich', '')], "test", plain="test")
  37.  
  38.     mail.send(message)
  39.     mail.stop()
  40.     print gpioInput
  41.     print "Fertig"
  42.    
  43. else:
  44.     print "Signal is not high"
  45.     print gpioInput
Benutzeravatar
__deets__
User
Beiträge: 2175
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: GPIO.setup pull_up_down

Beitragvon __deets__ » Montag 25. Dezember 2017, 11:32

Naja, das ist eben was ein PULL-UP macht - den Pegel auf High ziehen. Wenn du da eine Veränderung erzielen willst, musst du den PIN auf Masse bringen.

Wenn du den Pull-Down verwendest, sollte es funktionieren wie gedacht.
Sirius3
User
Beiträge: 7067
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: GPIO.setup pull_up_down

Beitragvon Sirius3 » Montag 25. Dezember 2017, 12:12

@Moon: die Idee hinter pull-up/-down ist, dass im Normalfall kein Strom fließt, sondern nur wenn z.B. ein Taster gedrückt wird. Dabei kommt es eben darauf an, wie Deine elektronische Schaltung aussieht. Und ohne Widerstand an einen Port 3.3V anzulegen ist keine gute Idee. Um Dein Board nicht zu schrotten, brauchst Du ein paar Elektronikgrundlagen.
Benutzeravatar
__deets__
User
Beiträge: 2175
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: GPIO.setup pull_up_down

Beitragvon __deets__ » Montag 25. Dezember 2017, 12:15

@Sirius3 man kann sehr wohl ohne widerstand 3.3V anlegen. Die Impedanz regelt das von alleine. Sonst wäre das Schaltungsdesign unerträglich.

Als Ausgang darf man nicht mehr als 16mA treiben. Da muss man Vorsicht walten lassen.
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

Re: GPIO.setup pull_up_down

Beitragvon Moon » Montag 25. Dezember 2017, 16:22

Aso ok. Gut zu wissen.

Obwohl ich jetzt pull_up_down auf GPIO.PUD_DOWN gesetzt habe kommt immer noch 0 raus obwohl die 3.3V Versorgung des Raspberry Pis richtig angeschlossen wurde. Und wenn ich dies weglasse kommt auch immer 0 raus.

Aber das kann doch nicht sein. Es wurde doch mit der 3.3 Volt Versorgung des Raspberry Pis verbunden.
Benutzeravatar
__deets__
User
Beiträge: 2175
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: GPIO.setup pull_up_down

Beitragvon __deets__ » Montag 25. Dezember 2017, 17:37

Ich würde ja mal auf falschen GPIO tippen.
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

Re: GPIO.setup pull_up_down

Beitragvon Moon » Montag 25. Dezember 2017, 20:05

Das habe ich auch erstmal gedacht. Dann habe ich im Internet nach einem Bild mit Beschreibung der GPIOS geschaut. Und habe dies gefunden: http://raspberrypiguide.de/howtos/raspberry-pi-gpio-how-to/ (Die Grafik). So habe ich die beiden Kabel angeschlossen. 1 Kabel mit aufsatz auf den GPIO und das andere auf die 3.3 Volt Versorgung.
Benutzeravatar
__deets__
User
Beiträge: 2175
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: GPIO.setup pull_up_down

Beitragvon __deets__ » Dienstag 26. Dezember 2017, 09:54

Ich kenne den pinheader des PI zu genüge. Der hilft nicht beim problemlösen. Ein Foto DEINES Kabels auf dem Pi würde das.
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

Re: GPIO.setup pull_up_down

Beitragvon Moon » Dienstag 26. Dezember 2017, 15:25

Hey,

ich habe jetzt mal andere GPIOs ausprobiert und siehe da es funktioniert.

Danke für die schnelle und gute Hilfe :)

Grüße,
Moon

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder