(警告!我没有受过这个主题的教育)

嘿伙计。我之所以在这里发布,是因为我有一个非常需要她的项目帮助的朋友。我对脚本很熟悉,但是对编程却不太了解。我从事IT工作,所以我会尽力提供必要的信息。她正在尝试使用Python 3对Raspberry Pi Zero进行编程,以控制步进电机。

她遵循了这些教程。看起来她使用了#1的零件和接线以及#2的代码:

有用的注释:她提到她在电源和L293D驱动器IC之间未使用电阻。

使用的零件:

-Raspberry Pi Zero(建议使用Pi 2或3,但Zero与2和3具有相同的引脚排列。她只需焊接自己的双接头即可)

-12V直流电源

-带跳线的面包板(Du!)

她正在使用的代码如下。当她尝试运行它时,电动机只是振动。似乎它反复地向前和向后退了一步。没有收到错误代码。她还尝试使用另一台汲取2A电流的Nema 17步进电机,但下降到汲取.4A的Nema 17并获得相同结果。

import RPi.GPIO as GPIO

import time

#variables

delay = 0.05

steps = 500

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)

#Enable GPIO pins for ENA and ENB for stepper

enable_a = 18

enable_b = 22

#Enable pins for IN1-3 to control step sequence

coil_A_1_pin = 17 #black

coil_A_2_pin = 4 #green

coil_B_1_pin = 24 #red

coil_B_2_pin = 23 #blue

#Set pin states

GPIO.setup(enable_a, GPIO.OUT)

GPIO.setup(enable_b, GPIO.OUT)

GPIO.setup(coil_A_1_pin, GPIO.OUT)

GPIO.setup(coil_A_2_pin, GPIO.OUT)

GPIO.setup(coil_B_1_pin, GPIO.OUT)

GPIO.setup(coil_B_2_pin, GPIO.OUT)

#set ENA and ENB to high to enable stepper

GPIO.output(enable_a, True)

GPIO.output(enable_b, True)

#function for step sequence

def setStep(w1, w2, w3, w4):

GPIO.output(coil_A_1_pin, w1)

GPIO.output(coil_A_2_pin, w2)

GPIO.output(coil_B_1_pin, w3)

GPIO.output(coil_B_2_pin, w4)

#loop through step sequence based on number of steps

for i in range(0, steps):

setStep(1,1,0,0)

time.sleep(delay)

setStep(0,1,1,0)

time.sleep(delay)

setStep(0,0,1,1)

time.sleep(delay)

setStep(1,0,0,1)

time.sleep(delay)

#reverse previous step sequence to reverse motor direction

for i in range(0, steps):

setStep(1,0,0,1)

time.sleep(delay)

setStep(0,0,1,1)

time.sleep(delay)

setStep(0,1,1,0)

time.sleep(delay)

setStep(1,1,0,0)

time.sleep(delay)

运行代码段Hide results

如果有任何我想念的内容或您需要的更多信息,请告诉我,我会尽快答复!任何帮助是极大的赞赏!提前致谢!

解决方案

看起来您已经完成大部分工作了……但是特定的顺序并没有使您迈出一步。使用L293D时,IO引脚的值实际上就是我们用来驱动线圈的东西,我想这里的coil_A和coil_B是两个线圈,两端分别是1和2(在双极步进电机中典型的是两个线圈)。因此,您已应用的状态是:

1100====Nopower0110<<>>both coils energised0011====Nopower1001>><

这不会为电机提供方向性指南,很可能会导致振动。尝试一个完整的步进模式,在该模式下,您一次翻转一个线圈的方向:

fullsteps=((0,1,0,1),(0,1,1,0),(1,0,1,0),(1,0,0,1))foriinrange(0,steps):forpatterninfullsteps:setStep(*pattern)time.sleep(delay)

下一个可能尝试的变体是半步,我们让线圈分两步从一个方向过渡到另一个方向:

halfsteps=((0,1,0,1),(0,1,0,0),(0,1,1,0),(0,0,1,0),(1,0,1,0),(1,0,0,0),(1,0,0,1),(0,0,0,1))

乍一看,这实际上是第一个链接中使用的模式(正好在注释“如果不同时调整”下方-刚好相反,并且与此处的版本相差两个半步)。

在任何时候都至少为一个线圈供电,以防止电动机掉入未知位置。

defsetStep(w1,w3,w2,w4):GPIO.output(coil_A_1_pin,w1)GPIO.output(coil_A_2_pin,w2)GPIO.output(coil_B_1_pin,w3)GPIO.output(coil_B_2_pin,w4)

python控制步进电机转动_用Python编程:控制步进电机+ Raspberry Pi零+ L293D IC相关推荐

  1. python语音控制电脑程序_用Python编程实现语音控制电脑_天津SEO

    天津SEO 电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比 ...

  2. python之禅 中文_《Python之禅》中对于Python编程过程中的一些建议

    <Python之禅>中对于Python编程过程中的一些建议 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  <Python之禅>中对于Pyt ...

  3. 机器人 python 极客入门_机器人Python极客编程入门与实战

    Python是一种面向对象.解释型的计算机程序设计语言,其简洁实用.高效,拥有众多模块库,可移植,跨平台,简单易学,易于上手.随着计算机深入发展,Python逐渐成为最适合青少年做创意设计的语言,也同 ...

  4. python加入中小学课程_【python即将进入中学课堂,编程从小抓起,竟然在这几点上应验了】- 环球网校...

    [摘要]我们都知道,不论是我们使用的app,还是各种各样的游戏,小程序,都离不开编程软件的贡献,其中python占据了半壁江山,随着大家对python的重视,python即将进入中学课堂,这究竟是好是 ...

  5. 使用python开发网页游戏_四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程...

    原标题:四大游戏编程网站,边玩游戏,边学Python,拒绝枯燥快乐编程 前言 学习编程虽然对有些人来说是件乐事,但是对大多数人来说仍然是一件比较枯燥困难的事情.当然,面临这样困惑的人,并不是只有你一个 ...

  6. python语言好不好_《python编程基础》这本书怎么样

    <python编程基础>这本书怎么样 发布时间:2020-11-11 12:01:06 来源:亿速云 阅读:73 作者:小新 小编给大家分享一下<python编程基础>这本书怎 ...

  7. 哪些软件是python编写出来的_用Python编程需要什么软件?

    用Python编程需要什么软件?Python编程是一门适合新手入门的编程语言,现在有不少程序员业余时间学习Python编程语言,学习Python找到好工具会大大提高学习的效率.好用的Python编程软 ...

  8. 利用python处理dna序列_利用Python编程提取基因组基因序列

    生物技术. DOI: 10.16660/j.cnki.1674-098X.2019.11.141 利用Python编程提取基因组基因序列 ① 庞雪原 张婷婷 (东北农业大学生命科学学院 黑龙江哈尔滨 ...

  9. python语言程序设计编程题_《python语言程序设计》_第一章编程题

    题目1.1 :显示"welcome to python " 答案:print('welcome to python') 题目1.2:显示"welcome to pytho ...

最新文章

  1. 获得每日,每周,每月的0点和24点的时间戳
  2. linux centos 7 安装中文字体
  3. Android之Menu动态改变文字
  4. Java 多文件上传
  5. 苹果开发者账号可以创建多少测试证书_ios苹果企业账号你所不知道的那些点
  6. java 线性表的表示和实现_线性表中顺序表的的理解和实现(java)
  7. springmvc注解小示例(转)
  8. 鸿星尔克捐款前后仓库对比
  9. 【征稿通知】CCF第37届中国计算机应用大会 CCF NCCA 2022
  10. 电路串联和并联图解_串联电路和并联电路
  11. 百度识图API教程一:使用百度api识别物体
  12. 中国首台超级计算机“天河一号,我国首台超级计算机“天河一号”超负荷运行...
  13. 笔记本连接无线却找不到服务器,笔记本win7系统无线网络找不到无法连接wifi怎么办...
  14. 有没有便宜一点的网站服务器,有便宜一点的云服务器卖吗
  15. vue 中provide的用法_vue高阶用法之provide与inject
  16. 大数据技术人员工具包之—常见数据挖掘分析处理工具
  17. 2021年芒种是几月几号?芒种习俗有哪些 ?
  18. qt QLabel设置行间距
  19. STM32与SYN6288语音合成模块的使用
  20. 做毕设途中遇到了问题,求大神指教。

热门文章

  1. iOS xcode9中framework静态库的创建以及xib和图片的使用记录
  2. python地铁查询系统_基于Python的苏州实时公交/地铁接口调用代码实例
  3. 基于web的在线考试系统的设计与开发
  4. python第二课list基本命令
  5. 用C语言做见缝插针游戏
  6. HTTP常见状态码(404、400、500)
  7. 半导体物理实验 04 - | 椭圆仪测量薄膜厚度
  8. 关于在英伟达官网下载 CUDA 10.0 win10版本失败原因探索
  9. 【HTML 教程系列第 11 篇】HTML 中常用的文本格式化标签
  10. BugkuCTF之分析题之中国菜刀