Hallo,
ich möchte ein PWM Signal mit einer Interrupt-routine am Raserry Pi
mittels python auslesen.
Bei dem einfach Versuch einen Taster an Pin 10 auszulesen funktioniert
das Programm:
high
low
high
low
high
low
Schließe ich den Ausgang des NE555 (siehe Anhang [R_a=150; R_b=150; C=1u
-> f=2.5kHz; duty_cycle=50%) an Pin 10 an, bekomme ich folgendes:
low
high
high
high
low
high
low
low
Nach meiner Logik müsste er aber die gleichen Signale ausgeben wie beim
Taster, nur halt viel schneller.
der Python-Code:
1 | import RPi.GPIO as GPIO
|
2 | from pynput.keyboard import Controller
|
3 |
|
4 | keyboard = Controller() # Create the controller
|
5 | signal_pin = 10
|
6 |
|
7 | def button_callback(channel):
|
8 | if GPIO.input(signal_pin):
|
9 | #keyboard.type("1")
|
10 | print("high")
|
11 | else:
|
12 | #keyboard.type("0")
|
13 | print("low")
|
14 |
|
15 | GPIO.setwarnings(False) #ignore warnings
|
16 | GPIO.setmode(GPIO.BOARD) #use physical pin-numbering
|
17 | GPIO.setup(signal_pin, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) # set pin 10 to input and and pull down initial value
|
18 |
|
19 | GPIO.add_event_detect(signal_pin,GPIO.BOTH,callback=button_callback) # setup event on pin 10 when change
|
20 |
|
21 | message = input("Press enter to quit\n\n") # run until someone presses enter
|
22 | GPIO.cleanup() #Cleaning up
|
Ziel ist es später, die Ausgangs-Signale einer Tastatur mit
ps/2-Anschluss an den GPIO-Pins des Rasperry pi's auszulesen. Dort sind
um die 12.5kHz auzulesen.
Was mache ich falsch?