树莓派4B-细分驱动步进电机
树莓派4B-细分驱动步进电机
项目介绍
利用4B树莓派控制步进电机转动,精度可达:0.0144度 (即360度/25000)
适用于非常精密的角度转动。
舵机的精度为1度,无法实现超高精度控制。
硬件需求
硬件型号不同,只要功能相同,代码即可兼用。
- 树莓派
- CDKU- S100-24开关电源
- DM542驱动器
- 42bygh34步进电机
- 220V插头
硬件介绍
DM542驱动器

概述:
用户使用该驱动器可以设置常用的 8 档电流以及 16 档细分,能够满足大多数场合的应用需要。低中高速运 行都很平稳,噪音小。多种功能可通过外部拨码选择,极大地方便了客户的应用。
应用领域:
适合各种中小型自动化设备和仪器,例如:雕刻机、打标机、切割机、激光照排、绘图
仪、数控机床、自动装配设备等。
电气指标:

控制信号接口:

强电接口:

控制信号时序图:

每转脉冲设定:

工作电流设定:

开关电源
采用 90-264VAC 全范围输入电压,(200W、350W 有拨动开关选择)。可任选一组 5V、12V、24V、36V、48V 单组输出

步进电机

电气指标:

电机接口:

控制信号时序图:

接线方法
共阳极接法

共阴极接法

差分方式接法

接线方式
树莓派GPIO接口和驱动器的接线方式:
IN1 = 18 # 接PUL-
IN2 = 16 # 接PUL+
IN3 = 15 # 接DIR-
IN4 = 13 # 接DIR+
步进电机和驱动器的接线方式:
按照步进电机上的A+、A-等连到驱动器对应位置即可(驱动器上有电机接口标签)
开关电源和220V插头接线方式:
220V插头接开关电源的220V输入电压位置,开关电源的V-和V+接驱动器的输入电源位置
驱动器细分按键调节:
SW1、SW2、SW3、SW6开关设置为on
代码展示:
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 backward(delay, steps):
for i in range(0, steps):
setStep(1, 0, 0, 0)
time.sleep(delay)
setStep(0, 1, 0, 0)
time.sleep(delay)
setStep(0, 0, 1, 0)
time.sleep(delay)
setStep(0, 0, 0, 1)
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(angle):
print ("backward...")
backward(0.0001, int(angle/0.036)) # 发射脉冲时间间隔0.0001(单位秒) 脉冲个数angle/0.036
print ("stop...")
stop() # stop
time.sleep(1) # sleep 3s
def destroy():
GPIO.cleanup() # 释放数据
if __name__ == '__main__': # Program start from here
setup()
while True:
try:
a = input("please input angle:")
loop(float(a))
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child function destroy() will be executed.
destroy()
此代码的精度为:0.036度
如果希望精度更高,自行调整代码和驱动器细分按键。
结果展示

最后,祝大家学习进步,工作顺心!
树莓派4B-细分驱动步进电机的更多相关文章
- python代码实现树莓派3b+驱动步进电机
python代码实现树莓派3b+驱动步进电机 之前买了个树莓派,刚买回来那会儿热情高涨,折腾了一段时间,然后就放那吃灰了.前几天忽然想起来这个东西了,决定再玩玩儿,于是就从某宝上购买了一套步进电机.驱 ...
- Linux学习 - 树莓派4b的U-Boot的初识
Linux学习 - 树莓派4b的U-Boot的初识 初识U-Boot 学习书籍:<[正点原子]I.MX6U嵌入式Linux驱动开发指南V1.5.1> 章节:第三十章 学习内容: 书中介绍u ...
- FPGA驱动步进电机
步进电机 步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受 ...
- 树莓派4B安装64位Linux(不用显示器键盘鼠标)
入手了树莓派4B,我对它的定位是作为一个Docker实验环境,平时用到的镜像多为Java服务端常用的技术.以及自己作的Java应用镜像,因此宿主机需要64位操作系统,而树莓派官方操作系统只有32位的, ...
- 树莓派4B 安装CentOS
刚入手了一个树莓派4B替换掉旧的3B搭Nas.吐槽下3B的网卡和USB速度真的太慢. 虽然官方推荐的是Debina,由于习惯了CentOS不想增加学习成本,我还是决定用CentOS. 镜像下载地址:h ...
- 树莓派4B安装docker-compose(64位Linux)
准备工作 树莓派4B已装好64位Linux,并且装好了19.03.1版本的Docker,具体的安装步骤请参考<树莓派4B安装64位Linux(不用显示器键盘鼠标)> 安装docker-co ...
- 树莓派(4B)Linux + .Net Core嵌入式-初始化环境(一)
一.树莓派简单介绍 二.软&件准备 硬件:树莓派4B主机.电源线.TF卡&TF读卡器.PC 软件:win32diskimager(用于烧系统到TF卡).Xshell或Windows T ...
- 树莓派(4B)Linux + .Net Core嵌入式-HelloWorld(二)
一.新建.Net Core项目 新建.Net Core3.0的控制台应用,代码如下 namespace Demo { class Program { static void Main(string[] ...
- 读取树莓派4B处理器(CPU)的实时温度
读取树莓派4B处理器(CPU)的实时温度 树莓派发布4B后,性能提升了不少,但是温度也是高的不行,所以最好配置一个小风扇和散热片还是比较好的 俩种办法都可以实现 1.Shell命令读取 打开终端 cd ...
- 树莓派4B到货开箱体验
树莓派4B到货开箱体验 实不相瞒,喜欢这块板已经很久了,但是国内4GB内存的版本始终没货,.....等等等,终于到货了,迅雷不及眼耳之势赶紧下单...购买点亮开发板所需要的物件 顺便看到一个好看的外壳 ...
随机推荐
- 【HALF】CSP-S2 2022 游记 - Dawn Eve?
相册放在 NOIP2022 游记 了 Day -2 周三.折腾了好几天,考场从深圳换到广州最后换到东莞.疫情爆炸... 只是希望自己最后两场比赛不会受到影响. 下午是高二体锻课,结果我们得去做核酸.四 ...
- internal java compiler error
1.导入Maven项目运行报错: 解决方法:找到File->Settings 修改配置 再次运行就可以了.
- 授权普通用户 sudo -i 使其具有root的权限
1.ssh 秘钥登录授权 将此代码片更名为 adduser.sh 放在linux的 /root 目录下 #!/bin/sh echo 'ssh-key:' $1 echo 'username:' $ ...
- Go For Web:踏入Web大门的第一步——Web 的工作方式
前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍.目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个 ...
- 基础常用API总结2
String java.lang包下 返回值类型 方法 功能 boolean matches(String regex) 如果匹配当前字符串中regex(正则表达式)所表示的字符,如果有返回ture没 ...
- 23.oneOf
const { resolve } = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') // 提取cs ...
- 注解:@RequiredArgsConstructor、 @Validated、 @Valid、 @Lazy
1. lombok注解:@RequiredArgsConstructor Spring 依赖注入方式 1.通过 @Autowire.@Resource 等注解注入, 2.通过构造器的方式进行依赖注入. ...
- ThreadLocal实现原理和使用场景
ThreadLocal是线程本地变量,每个线程中都存在副本. 实现原理: 每个线程中都有一个ThreadLocalMap,而ThreadLocalMap中的key即是ThreadLocal. 内存泄 ...
- ByteHouse云数仓版查询性能优化和MySQL生态完善
ByteHouse云数仓版是字节跳动数据平台团队在复用开源 ClickHouse runtime 的基础上,基于云原生架构重构设计,并新增和优化了大量功能.在字节内部,ByteHouse被广泛用于各类 ...
- ASP.NET Response.Filter
寫 ASP.NET 有時候會想要在畫面輸出前一刻進行攔截,並換掉 html 中的特定字元.例如網站中有許多頁面都有 www.google.com.tw 的超連結,我希望在測試機上可以把連結換成 www ...
