Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import RPi.GPIO as GPIO
  3. import time
  4.  
  5. SDI = 11
  6. RCLK = 12
  7. SRCLK = 13
  8.  
  9. code_H = [0x00,0xff]
  10. code_L = [0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff]
  11.  
  12. def print_msg():
  13. print 'Program is running...'
  14. print 'Please press Ctrl+C to end the program...'
  15.  
  16. def setup():
  17. GPIO.setmode(GPIO.BOARD) # Number GPIOs by its physical location
  18. GPIO.setup(SDI, GPIO.OUT)
  19. GPIO.setup(RCLK, GPIO.OUT)
  20. GPIO.setup(SRCLK, GPIO.OUT)
  21. GPIO.output(SDI, GPIO.LOW)
  22. GPIO.output(RCLK, GPIO.LOW)
  23. GPIO.output(SRCLK, GPIO.LOW)
  24.  
  25. def hc595_in(dat):
  26. for bit in range(0, 8):
  27. GPIO.output(SDI, 0x80 & (dat << bit))
  28. GPIO.output(SRCLK, GPIO.HIGH)
  29. time.sleep(0.001)
  30. GPIO.output(SRCLK, GPIO.LOW)
  31.  
  32. def hc595_out():
  33. GPIO.output(RCLK, GPIO.HIGH)
  34. time.sleep(0.001)
  35. GPIO.output(RCLK, GPIO.LOW)
  36.  
  37.  
  38. def loop():
  39. while True:
  40. for i in range(0, len(code_H)):
  41. hc595_in(code_L[i])
  42. hc595_in(code_H[i])
  43. hc595_out()
  44. time.sleep(0.1)
  45.  
  46. for i in range(len(code_H)-1, -1, -1):
  47. hc595_in(code_L[i])
  48. hc595_in(code_H[i])
  49. hc595_out()
  50. time.sleep(0.1)
  51.  
  52.  
  53. def destroy(): # When program ending, the function is executed.
  54. GPIO.cleanup()
  55.  
  56. if __name__ == '__main__': # Program starting from here
  57. print_msg()
  58. setup()
  59. try:
  60. count = 0
  61. while count < 10:
  62. loop()
  63. count = count + 1
  64. except KeyboardInterrupt:
  65. destroy()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement