Hi,
ich finde keinen Rat mehr. Ich möchte ganz simple an einen GPIO Port des Raspberry einen Button anschließen, der ein Event auslöst (Testhalber nur Textausgabe).
Das ganze funktioniert auch super, nur dass es ab und zu ein Tastendruck gemessen wird, obwohl da gar keiner war. Ich habe das Problem eingegrenzt.
Es liegt nicht am Button selbst oder am GPIO Pin. Es liegt nicht am Software oder Hardware Pullup.
Ich kann eine Fehlmessung gezielt Auslösen, indem ich meine Schreibtischlampe beispielsweise einschalte.
Ich habe folgendes versucht:
Ansmann Netzteil, ATX Netzteil, Usb Hub mit y Kabel. Immer der Fehler. Beim ATX Netzteil habe ich mir was selbst zusammengelötet und einen 100µF Kondensator DIREKT vor den Usb Pin gebaut. Selbst das half nichts.
Ich habe es im Unteren Stockwerk getestet. Dort der selbe Fehler. Im Haus ist alles miteinander Verbunden, nur dass die Stockwerke einzelne Sicherungen haben. Ich habe auch versucht den Pi im oberen Stockwerk einzuschalten und die Lampe im Unteren. Dann gab es keinen Fehler. Vielleicht war da die Entfernung aber zu groß.
Ich habe einen zweiten Pi aus der gleichen Bestellung getestet (Baugleich, B 512 Hynix Ram), gleicher Fehler.
Was ich noch versuchen werde:
Die Nachbarn fragen, ob ichs da mal testen darf (vllt ist unser Hausnetz scheise)
Die Großeltern fragen, vielleicht liegt es an unseren Stadtwerken
Einen anderen Pi testen, mit anderen Speicher? (habe aber keinen)
Ein Pulldown testen
weniger geräte im raum anhaben
Gibt es irgendeine einfache Lösung für das Problem oder muss ich mir einen unglaublich fetten Kondensator davor einbauen, damit ich sowas simples wie GPIO zuverlässig nutzen kann? Alternativ könnte ich eine Batterie testen, aber so einen schmodder will ich eigentlich nicht. Ist vielleicht mein Pi Model schlecht verarbeitet, wegen dem Hynix speicher?
# Simple script for shutting down the raspberry Pi at the press of a button.
# by Inderpreet Singh
import RPi.GPIO as GPIO
import time
import os
# Use the Broadcom SOC Pin numbers
# Setup the Pin with Internal pullups enabled and PIN in reading mode.
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Our function on what to do when the button is pressed
def Shutdown(channel):
os.system("sudo shutdown -h now")
# Add our function to execute when the button pressed event happens
GPIO.add_event_detect(25, GPIO.FALLING, callback = Shutdown, bouncetime = 2000)
# Now wait!
while 1:
time.sleep(1)
Alles anzeigen