12528浏览
查看: 12528|回复: 1

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

[复制链接]
本教程教会你使用树莓派控制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会很慢。

丄帝De咗臂  高级技匠

发表于 2016-2-29 07:24:42

66666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail