树莓派控制步进电机(下):软件编程

2024-05-03 02:20

本文主要是介绍树莓派控制步进电机(下):软件编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

说明

软件编程

树莓派的RPI编程

基本测试程序

参考文献


说明

在上一篇博文中我们介绍了树莓派控制步进电机所需要的硬件连接,本篇博文主要介绍软件编程。这里我们使用的是树莓派4B开发板,步进电机为6线两相步进电机,驱动器采用的是DM542。

软件编程

树莓派的RPI编程

树莓派中可以使用RPi.GPIO库对GPIO进行访问。

有两种方法可以在 RPi.GPIO 中对 Raspberry Pi 上的 IO 引脚进行编号。首先是使用 BOARD 编号系统。这是指 Raspberry Pi 板的 P1 接头上的引脚编号。使用这种编号系统的优势在于,无论 RPi 的电路板版本如何,硬件都将始终工作,而无需更改代码。

有关GPIO库的更多说明参见参考文献3。

基本测试程序

下面是个简单的测试程序。在这个程序中DIR_PIN和PUL_PIN分别对应DIR+和PUL+信号,我们先将两个管脚设置为输出,然后将DIR+设置为低,逆时针旋转。程序中连续向PUL+发送2000个脉冲。我们通过DM542的拨码开关,设置为400个脉冲为一圈,所以2000个脉冲会让电机转5圈。每个脉冲的周期是20ms,如果希望调整转速,可以改变这个周期。

import RPi.GPIO as GPIO
from time import sleepDIR_PIN = 40
PUL_PIN = 32GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(DIR_PIN, GPIO.OUT)
GPIO.setup(PUL_PIN, GPIO.OUT)
GPIO.output(DIR_PIN,GPIO.LOW)for i in range(2000):GPIO.output(PUL_PIN, GPIO.HIGH)sleep(0.01)GPIO.output(PUL_PIN, GPIO.LOW)sleep(0.01)GPIO.cleanup()   

参考文献

  1. 叕叒双又,树莓派4硬件---GPIO篇,https://www.cnblogs.com/guochaoxxl/p/11728108.html
  2. mob6454cc6a01b7 ,树莓派pwm控制电机python 树莓派 控制电机,https://blog.51cto.com/u_16099225/7598976
  3. 春天里晴朗的天空,树莓派(一)python接口RPi.GPIO介绍,树莓派(一)python接口RPi.GPIO介绍-CSDN博客

这篇关于树莓派控制步进电机(下):软件编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955632

相关文章

树莓派启动python的实现方法

《树莓派启动python的实现方法》本文主要介绍了树莓派启动python的实现方法,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、RASPBerry系统设置二、使用sandroidsh连接上开发板Raspberry Pi三、运

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor