Untitled
unknown
python
a year ago
1.1 kB
4
Indexable
import RPi.GPIO as GPIO from time import sleep class WiegandReader: def __init__(self, d0_pin, d1_pin): self.D0 = d0_pin self.D1 = d1_pin self.buffer = [] GPIO.setmode(GPIO.BCM) GPIO.setup(self.D0, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(self.D1, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.add_event_detect(self.D0, GPIO.FALLING, callback=self.read_bit, bouncetime=10) GPIO.add_event_detect(self.D1, GPIO.FALLING, callback=self.read_bit, bouncetime=10) def read_bit(self, channel): if channel == self.D0: self.buffer.append(0) else: self.buffer.append(1) def get_data(self): data = ''.join([str(bit) for bit in self.buffer]) self.buffer.clear() return data if __name__ == "__main__": reader = WiegandReader(d0_pin=18, d1_pin=23) # Pinos GPIO try: while True: if reader.buffer: print(reader.get_data()) sleep(0.1) except KeyboardInterrupt: GPIO.cleanup()
Editor is loading...
Leave a Comment