树莓派4B:控制步进电机

2023-05-16

记录一下驱动两相四线步进电机的过程

文章目录

  • 准备阶段
  • 接线阶段
  • 树莓派python程序

准备阶段

准备以下物品,淘宝都可以买到:

57步进电机(两相四线)
电源开关(220v转24v,3A,72W)
步进电机驱动器 (TB6600)
电源线
电线
杜邦线
树莓派4B一套

具体型号如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接线阶段

整体:接线效果如下图
在这里插入图片描述
电源开关起220v转24v作用,就是一般电源开关的接线方法,输出24v接入步进电机驱动器

步进电机驱动器的 A+ A- B+ B- 按提示接步进电机四线,步进电机上就会有说颜色和A+A-B+B-的对应关系,按提示接线没有的话问卖家或者查型号。 DIR-DIR+PUL-PUL+分别接到树莓派GPIO引脚15 13 18 16

代码用2相励磁方式驱动,下面直接给了运行代码,GPIO和驱动的连接直接规定了,其中的两相四线步进电机驱动的方式原理和代码以后再记录吧
在这里插入图片描述
这里要注意树莓派B版本(不是B+)的板子,只有26Pin,物理引脚BOARD编码<=26才可以用。下图是40Pin引脚图(兼容26Pin的B版本)。观察方向为引脚那部分在板子的右上方。
在这里插入图片描述

树莓派python程序

# 树莓派python程序中不能出现汉字,需要把注释中的汉字换成英文

import RPi.GPIO as GPIO
import time

 # 规定GPIO引脚
IN1 = 18      # 接PUL-
IN2 = 16      # 接PUL+
IN3 = 15      # 接DIR-
IN4 = 13      # 接DIR+
 
def setStep(w1, w2, w3, w4):
    GPIO.output(IN1, w1)
    GPIO.output(IN2, w2)
    GPIO.output(IN3, w3)
    GPIO.output(IN4, w4)
 
def stop():
    setStep(0, 0, 0, 0)
 
def forward(delay, steps):  
    for i in range(0, steps):
        setStep(1, 0, 1, 0)
        time.sleep(delay)
        setStep(0, 1, 1, 0)
        time.sleep(delay)
        setStep(0, 1, 0, 1)
        time.sleep(delay)
        setStep(1, 0, 0, 1)
        time.sleep(delay)
 
def backward(delay, steps):  
    for i in range(0, steps):
        setStep(1, 0, 0, 1)
        time.sleep(delay)
        setStep(0, 1, 0, 1)
        time.sleep(delay)
        setStep(0, 1, 1, 0)
        time.sleep(delay)
        setStep(1, 0, 1, 0)
        time.sleep(delay)
 
def setup():
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
    GPIO.setup(IN1, GPIO.OUT)      # Set pin's mode is output
    GPIO.setup(IN2, GPIO.OUT)
    GPIO.setup(IN3, GPIO.OUT)
    GPIO.setup(IN4, GPIO.OUT)
 
def loop():
    while True:
        print ("backward...")
        backward(0.0001, 1000)   # 发射脉冲时间间隔0.0001(单位秒)   脉冲个数1000
        
        print ("stop...")
        stop()                 # stop
        time.sleep(3)          # sleep 3s
        
        print ("forward...")
        forward(0.0001, 1000)
        
        print ("stop...")
        stop()
        time.sleep(3)
 
def destroy():
    GPIO.cleanup()             # 释放数据
 
if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child function destroy() will be  executed.
        destroy()

之后插上电,步进电机驱动器和电源开关 灯亮。

之后cd到工作路径,python ***.py

步进电机按照要求动起来了

OK了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派4B:控制步进电机 的相关文章

  • ORB-SLAM 学习笔记

    ORB SLAM 基本介绍 ORB SLAM 是西班牙 Zaragoza 大学的 Ra l Mur Arta 编写的视觉 SLAM 系统 它是一个完整的 SLAM 系统 xff0c 包括视觉里程计 跟踪 回环检测 xff0c 是一种完全基于
  • OCR(Optical Character Recognition,光学字符识别)问题

    应用场景 xff1a 在这个过程中由于场景的不确定性 xff0c 比如 xff1a 图片背景极其丰富 亮度不均衡 光照不均衡 残缺遮挡 文字扭曲 字体多样等等问题 xff0c 会带来极大的挑战 自然场景中文本具有多样性 xff1a 文本检测
  • OCR-文本检测方法

    基于回归的文本检测 基于回归文本检测方法和目标检测算法的方法相似 xff0c 文本检测方法只有两个类别 xff0c 图像中的文本视为待检测的目标 xff0c 其余部分视为背景 水平文本检测 早期基于深度学习的文本检测算法是从目标检测的方法改
  • C++中使用__FUNCTION__ ,__TIME__ ,__LINE__ ,__FILE__这几个宏的解释

    FUNCTION xff0c 34 TIME 34 xff0c LINE xff0c FILE 这几个宏是编译器自带的 xff0c 不是那个头文件定义的 FUNCION xff1a 函数名 TIME xff1a 文件运行的时间 LINE x
  • UART串口通信协议详解

    UART xff1a 通信异步收发器 xff0c 串行 异步通信总线 xff0c 两条数据线 xff08 收发 xff09 xff0c 全双工 xff08 可以同时接收和发送 xff09 一 UART帧格式 xff08 UART协议 xff
  • 基于FPGA的DDS信号发生器

    之前的博客讲到了DDS的基本原理 xff0c 现在用Verilog代码实现DDS 能够产生四种波形 xff0c 方波 xff0c 三角波 xff0c 正弦波 xff0c 锯齿波 xff0c 用按键来控制频率和选择波形 其中按键消抖模块来自小
  • C++的命名空间详解

    c 43 43 命名空间详解 命名空间的意义命名空间的定义命名空间的使用 命名空间的意义 在C C 43 43 中 xff0c 变量 函数和后面要学到的类都是大量存在的 xff0c 这些变量 函数和类的名称将都存在于全局作用域中 xff0c
  • 基于Verilog的32位并行进位加法器设计

    1 功能概述 xff1a 先行进位加法器是对普通的全加器进行改良而设计成的并行加法器 xff0c 主要是针对普通全加器串联时互相进位产生的延迟进行了改良 超前进位加法器是通过增加了一个不是十分复杂的逻辑电路来做到这点的 设二进制加法器第i位
  • 基于verilog的处理器设计之寄存器堆

    该寄存器堆是CPU中多个寄存器组成的阵列 xff0c 由32个32位的寄存器构成 xff0c 两个读数据口 Ra gt BusA Rb gt BusB 一个写数据口 Rw gt BusW 写数据受使能信号Wen控制 xff0c 在时钟的下降
  • 使用结构体方式访问寄存器的实践

    朱老师单片机课程学习记录 span class token macro property span class token directive keyword ifndef span GPIO H span span class token
  • MIM,MOM和MOS电容的区别

    ic layout经常会遇到这三种电容 xff1a MOS xff0c MOM xff0c MIM MOS 电容 xff1a 两端结构的mos管 xff0c 电容值不精确 xff0c 可以实现随控制电压变化而变 化的容值 xff0c 上下极
  • 折叠共源共栅放大器Cadence仿真

    仿真原理图如下 xff0c 图中M4的宽长比应该和M5一样 xff0c 为4u 150n m nf为1 2 M8和M9的宽长比为4u 500n 完整的电路图如下 xff1a cascode晶体管的L给小一点 xff0c 电流镜晶体管L给大一
  • 二级运放的Cadence仿真

    基于之前做的折叠共源共栅cascode xff0c 在后面加两个管子 xff0c 变成一个简单的二级运放 二级运放的通带内的增益大于80dB xff0c GBW为大于50M xff0c 相位裕度大于60 为了保证运放的相位裕度 xff0c
  • 射频接收机的参数计算

  • 户外系统原理方框图

  • bandgap中简并点理解与仿真

    综合EETOP论坛上的解答以及自己的仿真 xff0c 一般来说一个电路有可能存在一个以上满足KCL KVL电路方程的解 工作点 这些解中有的是稳定解 有的可能是非稳定解 其区别在于 如果电路目前工作在稳定解 当出现扰动时 比如实际电路中的噪
  • GPS卫星定位基本原理

    GPS定位基本原理 GPS测量定位方法分类 定位模式 xff1a 绝对定位 xff08 单点定位 xff09 相对定位 差分定位 定位时接收机天线的运动状态 xff1a 静态定位 xff0d 天线相对于地固坐标系静止 动态定位 xff0d

随机推荐

  • c++缺省参数,函数重载详解

    c 43 43 缺省参数 xff0c 函数重载详解 缺省参数什么是缺省参数 xff1f 缺省参数的分类 1 全缺省参数 2 半缺省参数 规则 xff1a 缺省参数只能从右往左 xff0c 依次给出 xff08 这是规定 xff09 函数重载
  • 和小白一起学数据结构三之c与结构及联合

    和小白一起学数据结构 xff08 三 xff09 今天博主动笔有些晚了哈 xff0c 所以不讲太多废话了 xff0c 直接上干货 xff01 今天我们来复习c语言提供的两种聚合数据类型 xff08 aggregate data type 数
  • 持之以恒(一)位姿转换:姿态 / 四元数 / 旋转矩阵 / 欧拉角 及 位姿矩阵

    文章目录 1 简介1 1 位姿的几种表示形式1 2 姿态转换在线工具 2 位姿转换接口2 1 旋转向量 转 四元数2 2 四元数 转 旋转向量2 3 四元数 与 旋转矩阵 3 机器人相关应用3 1 不同厂家协作机器人的位姿表示形式 1 简介
  • 基于MSP432P401R的MPU6050陀螺仪串口输出姿态角程序

    基于MSP432P401R的MPU6050陀螺仪串口输出姿态角程序 目录 基于MSP432P401R的MPU6050陀螺仪串口输出姿态角程序 前言 一 实验器材 二 硬件资源 1 usb转ttl 2 串口1 波特率 9600 P2 2 P2
  • 一个程序从开始运行到结束的完整过程

    目录 预编译编译汇编链接 我们平时不管是在 Windows 下的编译器直接点击执行一个代码 xff0c 还是在 Linux 下通过 gcc g 43 43 生成可执行文件并执行 xff0c 都会直接出来代码的运行结果 但实际上它还细分为以下
  • cpp-http 库的使用

    文章目录 前言 96 cpp http 96 库简介 96 cpp http 96 库使用介绍http 客户端搭建步骤http 服务端搭建步骤 96 cpp http 96 库示例服务端实现客户端实现 示例下载关于示例代码编译出错的问题 参
  • vscode编译器卡顿问题

    最近一段时间使用vscode没有了以前的丝滑的感觉 xff0c 百度了很多种办法 xff0c 比如 xff1a 在文件 gt 首选项 gt 设置 中 xff0c 将 search followSymlinks 设置为false xff0c
  • 问题解决记录集合

    1 解决pytorch下载mnist等数据集速度过慢 失败问题 xff1a https blog csdn net weixin 44414948 article details 109756003 utm medium 61 distri
  • java 通过onvif抓取海康摄像头图片

    java 通过onvif抓取海康摄像头图片 文章目录 java 通过onvif抓取海康摄像头图片前言一 把onvif jar放到自己的maven仓库二 pom文件引入jar包三 测试代码四 运行中的变量五 参考链接地址 前言 网上也有类似的
  • java常见面试题(二)

    java基础二 11 抽象类必须要有抽象方法吗 xff1f 不需要 xff0c 抽象类不一定非要有抽象方法 示例代码 xff1a abstract class Cat public static void sayHi System out
  • 2022高教社杯全国大学生数学建模竞赛B题解析(更新完结)

    2022高教社杯全国大学生数学建模竞赛B题解析 xff08 更新完结 xff09 题目解析前言问题一1 11 21 3问题二 题目 B 题 无人机遂行编队飞行中的纯方位无源定位 无人机集群在遂行编队飞行时 xff0c 为避免外界干扰 xff
  • c++的引用和指针原来是这种关系

    c 43 43 的引用和指针原来是这种关系 关于引用引用的概念 xff1a 引用的三种情况 xff1a 当引用作为返回值的时候 xff1a 引用和指针的区别 xff1a 关于引用 引用的概念 xff1a 引用不是新定义一个变量 xff0c
  • java面试题汇总一(会持续更新)

    不积跬步无以至千里 xff0c 这里会不断收集和更新Java基础相关的面试题 xff0c 目前已收集100题 1 什么是B S架构 xff1f 什么是C S架构 B S Browser Server xff0c 浏览器 服务器程序 C S
  • 【STM32】创建stm32工程中,各个文件夹及部分文件作用

    USER xff1a 存放工程文件 主函数文件 main c 以及其他包括system stm32f10x c等 CORE xff1a 用来存放核心文件和启动文件 OBJ xff1a 是用来存放编译过程文件以及hex 文件 STM32F10
  • Qt4.8类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt5.9类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt5.15类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • Qt6.3类继承关系图(全网最全)

    一 概述 在学习Qt的时候快速的查询了解类的继承关系对我们的学习会有很大的帮助 xff0c 而网上流传的多是较老版本的 xff0c 并且是jpg格式 xff0c 不便于学习使用 xff0c 所以我就花了一些时间整理了这一套Qt类继承图 xf
  • DSPF28335 SCI FIFO串口通讯

    在工作过程中 xff0c 通过串口进行上位机与控制器之间进行数据的传输 xff0c 标准的串口通讯容易造成数据的丢失和内存堆满的现象 xff0c 便使用SCI中的FIFO对数据进行中断处理 一 串口通信基本知识 F28335 处理器共有 3
  • 树莓派4B:控制步进电机

    记录一下驱动两相四线步进电机的过程 文章目录 准备阶段接线阶段树莓派python程序 准备阶段 准备以下物品 xff0c 淘宝都可以买到 57步进电机 xff08 两相四线 xff09 电源开关 xff08 220v转24v xff0c 3