--- /dev/null
+from RPi import GPIO
+from time import sleep
+
+clk = 23
+dt = 24
+sw = 27
+
+GPIO.setmode(GPIO.BCM)
+GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
+GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
+GPIO.setup(sw, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
+
+counter = 0
+clkLastState = GPIO.input(clk)
+swLastState = GPIO.input(sw)
+
+try:
+
+ while True:
+ clkState = GPIO.input(clk)
+ dtState = GPIO.input(dt)
+ swState = GPIO.input(sw)
+ if clkState != clkLastState:
+ if dtState != clkState:
+ counter += 1
+ else:
+ counter -= 1
+ print counter
+ clkLastState = clkState
+ if swState != swLastState:
+ print "Pushed"
+ swLastState = swState
+ sleep(0.01)
+finally:
+ GPIO.cleanup()