【转帖】树莓派使用ULN2003 驱动板和28BYJ-48-5V减速步进电机

2016-02-281.7万
AI 快速预览详细 收起
本教程详细介绍了如何使用树莓派控制ULN2003驱动板和28BYJ-48-5V减速步进电机。所需材料包括母对母杜邦线、ULN2003驱动板和28BYJ-48-5V减速步进电机。通过具体的连线步骤和Python代码示例,帮助你轻松实现步进电机的控制。特别提示:步进电机在未启动程序时,驱动板上的灯不会亮,这是正常现象。
本教程教会你使用树莓派控制ULN2003 驱动板、28BYJ-48-5V减速步进电机。
所需材料:
母对母杜邦线:至少6根
ULN2003 驱动板 1个
28BYJ-48-5V减速步进电机  1个。
小白说明:步进电机在连结好驱动板,启动树莓派之后,在没启动程序时,驱动板上的灯是不会亮的。之前很多人认为不亮就怀疑板子有问题。
1、连线:
驱动板      树莓派
IN1     接   GPIO 17
IN2     接   GPIO 18
IN3     接   GPIO 21
IN4     接   GPIO 22

+        接   5V
-         接   GND


2、连结好线之后,进入打开树莓派桌面上的LXT终端(本文用的远程PUTTY),输入如下命令:sudo nano bujindianji.py
打开后,输入如下内容:
  1. #-----------------------------------
  2. # Name: bujindianji
  3. # Created: 03/16/2014
  4. #-----------------------------------
  5. #!/usr/bin/env python
  6. # Import required libraries
  7. import time
  8. import RPi.GPIO as GPIO
  9. GPIO.setmode(GPIO.BCM)
  10. StepPins = [17,18,27,22]
  11. # Set all pins as output
  12. for pin in StepPins:
  13.   print "Setup pins"
  14.   GPIO.setup(pin,GPIO.OUT)
  15.   GPIO.output(pin, False)
  16. # Define some settings
  17. StepCounter = 0
  18. WaitTime = 0.02
  19. # Define simple sequence
  20. StepCount1 = 4
  21. Seq1 = []
  22. Seq1 = range(0, StepCount1)
  23. Seq1[0] = [1,0,0,0]
  24. Seq1[1] = [0,1,0,0]
  25. Seq1[2] = [0,0,1,0]
  26. Seq1[3] = [0,0,0,1]
  27. # Define advanced sequence
  28. # as shown in manufacturers datasheet
  29. StepCount2 = 8
  30. Seq2 = []
  31. Seq2 = range(0, StepCount2)
  32. Seq2[0] = [1,0,0,0]
  33. Seq2[1] = [1,1,0,0]
  34. Seq2[2] = [0,1,0,0]
  35. Seq2[3] = [0,1,1,0]
  36. Seq2[4] = [0,0,1,0]
  37. Seq2[5] = [0,0,1,1]
  38. Seq2[6] = [0,0,0,1]
  39. Seq2[7] = [1,0,0,1]
  40. # Choose a sequence to use
  41. Seq = Seq1
  42. StepCount = StepCount1
  43. # Start main loop
  44. while 1==1:
  45.   for pin in range(0, 4):
  46.     xpin = StepPins[pin]
  47.     if Seq[StepCounter][pin]!=0:
  48.       print " Step %i Enable %i" %(StepCounter,xpin)
  49.       GPIO.output(xpin, True)
  50.     else:
  51.       GPIO.output(xpin, False)
  52.   StepCounter += 1
  53.   # If we reach the end of the sequence
  54.   # start again
  55.   if (StepCounter==StepCount):
  56.     StepCounter = 0
  57.   if (StepCounter<0):
  58.     StepCounter = StepCount
  59.   # Wait before moving on
  60.   time.sleep(WaitTime)
复制代码

然后按ctrl+x 按y 回车 达到保存目的
然后输入命令:
udo python bujindianji.py
就可以看到电机在转动了。LXT终端也会有数字变化,如下图。 代码中的,WaitTime = 0.02  可以调节0.02来控制转速。。。0.5会很慢。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
丄帝De咗臂
丄帝De咗臂
66666666666
- 没有更多了 -