单片机的实例——28BYJ48步进电机

news2025/1/31 11:18:52

整体过程

  • 准备资料
    • 1,步进电机内部结构示意图
    • 2,步进电机命名
    • 3,实际结构的转速比
    • 4,数值的含义
    • 5,实际内部主动轮结构分析
      • 实际内部机构及接线
        • 定子部分
        • 转子部分
      • 定子和转子磁极的工作分析
    • 6,工作时序
    • 7,驱动芯片ULN2003简介
      • 电机工作过程分析
    • 8,软件实现
      • 软件参数设置分析
    • 个人对爪极作用磁铁转子的分析
      • 结构示意图

准备资料

参考:https://www.bilibili.com/video/BV1h341147ny/?spm_id_from=333.337.search-card.all.click&vd_source=00bd76f9d6dc090461cddd9f0deb2d51

1,步进电机内部结构示意图

参考:https://www.bilibili.com/video/BV1bX4y1A717/?spm_id_from=333.880.my_history.page.click&vd_source=00bd76f9d6dc090461cddd9f0deb2d51
可知道转子是一个小磁体,电流改变的是定子上不同相导通得到不同的磁场方向,注意这是一个步进电机示意图,并还不是28BYJ48步进电机的真实内部结构
在这里插入图片描述
实际上就是通过ABCD四个定子上电流有规律的 导通才让电机转动。

2,步进电机命名

在这里插入图片描述

3,实际结构的转速比

参考:https://www.bilibili.com/video/BV1JX4y1c7uC/?spm_id_from=333.337.search-card.all.click&vd_source=00bd76f9d6dc090461cddd9f0deb2d51(这个视频分析很好,但也有些本质没解释清楚的东西)
在这里插入图片描述

4,数值的含义

参考:https://blog.csdn.net/weixin_51341083/article/details/125274007
在实际测试中,频率越大,启动时转动丢失的脉冲越多(就是发送了这么多脉冲却没有达到对应的转动角度)。但当频率超过了空载输出频率可能连启动都无法达到,电机会在振动。
在这里插入图片描述

5,实际内部主动轮结构分析

简单的计算
在这里插入图片描述

实际内部机构及接线

定子部分

在这里插入图片描述

转子部分

在这里插入图片描述

定子和转子磁极的工作分析

在这里插入图片描述
下面的一个步指的是一个周期的拍数
在这里插入图片描述
这激素hi为什么步距角是5.625.这时使用8拍控制时才实现的最小步距角。

6,工作时序

参考:https://www.bilibili.com/read/cv22159268/

从前面的内部 结构可以看出,每根线都是有两个相对的定子线圈组成。而通过两组线圈和一组线圈产生的力来看。两组线圈产生的力会是一组线圈 2 \sqrt{2} 2 倍。这样看来,四拍的转子在工作过程中的受力大小更加稳定,而八拍的转子受力是有规律变化的。
在这里插入图片描述

7,驱动芯片ULN2003简介

模块图示如下
在这里插入图片描述

在这里插入图片描述
每一个输入接口的电路原理图,由一个达林顿管,两次放大电流得到大的驱动电流。
在这里插入图片描述

电机工作过程分析

在这里插入图片描述

8,软件实现

程序

/*变量定义*/
 int fir = 16;
 int sec = 5;
int  thi = 4;
 int fort=0;
 int count=0;
 int delay_ms=1000;
 /*初始化函数*/
void setup() {
  // put your setup code here, to run once:

 pinMode(fir, OUTPUT);
pinMode(sec, OUTPUT);
pinMode(thi, OUTPUT);
pinMode(fort, OUTPUT);
  digitalWrite(fir, LOW); //初始化全为停止
  digitalWrite(thi, LOW); 
  digitalWrite(fort, LOW); 
  digitalWrite(sec, LOW); 
}
/*循环执行函数*/
void loop() {
  // put your main code here, to run repeatedly:

if(count<8){ //使用单相的四相驱动实例,8个四相刚好是主动轴的一圈
  digitalWrite(fort, LOW); 
  digitalWrite(fir, HIGH);  //第一个线圈导通
  delay(delay_ms);

  // digitalWrite(sec, HIGH);  //第一,二导通,若想使用八拍可以在每步后添加一个类似这种的命令
  // delay(delay_ms);

digitalWrite(fir, LOW); 
  digitalWrite(sec, HIGH);  //第二导通
 delay(delay_ms) ;


 digitalWrite(sec, LOW); 
  digitalWrite(thi, HIGH); //第三个导通
  delay(delay_ms);


 digitalWrite(thi, LOW);
  digitalWrite(fort, HIGH); //第四导通
  delay(delay_ms);

  count+=1;
}
else{
 digitalWrite(fir, LOW);   //记得关闭线圈,否则有剩余的相一直通电
  digitalWrite(sec, LOW);
   digitalWrite(thi, LOW);
    digitalWrite(fort, LOW);}
}

硬件连接引脚
在这里插入图片描述

软件参数设置分析

根据前面的描述,单极驱动时的每个脉冲的驱动角度是11.25°,所以循环中有四个脉冲,需要循环8次就是360,也就是主动齿轮转动一周
11.25 (脉冲步进角度) ∗ 4 (一次循环的脉冲数) ∗ 8 (循环次数) = 45 ∗ 8360 11.25(脉冲步进角度)*4(一次循环的脉冲数)*8(循环次数)=45*8360 11.25(脉冲步进角度)4(一次循环的脉冲数)8(循环次数)=458360
如果考虑减速比的情况
11.25 ∗ 4 ∗ x = 45 ∗ x = 360 ∗ 64 → x = 128 11.25*4*x=45*x=360*64 \rightarrow x=128 11.254x=45x=36064x=128
个人测试中无意间犯了一个很搞笑的错误,这个循环次数的计算错误,因为 11.25 ∗ 4 ∗ 8 = 360 理所当然的让循环次数 8 ∗ 64 = 516 得到了实际输出的角度 11.25*4*8=360理所当然的让循环次数8*64=516得到了实际输出的角度 11.2548=360理所当然的让循环次数864=516得到了实际输出的角度但是这里的减速比不再是对一个脉冲的,而是对应4个脉冲的
在这里插入图片描述

个人对爪极作用磁铁转子的分析

在这里插入图片描述

结构示意图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习 day06(向量化应用于多元线性回归的梯度下降算法,正规方程)

向量化多元线性回归&#xff0c;及梯度下降算法 将W₁&#xff0c;…&#xff0c;Wn写成向量W&#xff0c;将X₁&#xff0c;…&#xff0c;Xn写成向量X&#xff0c;而b还是之前的b注意&#xff1a;在多元线性回归的梯度下降算法中&#xff0c;Wj是指从W₁到Wn中的某一项&…

堆排序及top-k问题

堆排序及top-k问题 堆排序建堆向上调整建堆向下建堆 堆排序 top-k问题&#xff0c;建堆的应用 堆排序 堆排序&#xff0c;听名字就是要对堆进行排序&#xff0c;但当我们是无序数据时&#xff0c;首先我们就需要建立一个堆 建堆 这里让我们来回忆一下前面的堆&#xff0c;改…

Springboot基础学习之(二十三):实现定时任务

定时任务&#xff1a;在开发过程中是经常能够使用到的&#xff1a;定时发布邮件等等 先了解一下什么时cron表达式&#xff1f; 它是定义执行任务时间的一种时间表达式&#xff0c;使用方法 Scheduled(cron "0/2 * * * * ? ")&#xff0c;这里代码的含义是每两秒执行…

适用于 Windows 的 5 个最好的 PDF 转换器应用程序

由于稳定性、高分辨率、高安全性、易于传输等特点&#xff0c;PDF已经成为我们日常工作中最常用的格式。我们在享受PDF带来便利的同时&#xff0c;也发现PDF带来了一些不便&#xff0c;其中最大的问题就是PDF内容的编辑难度。同时&#xff0c;并不是所有的文件都是PDF格式的&am…

【redis】Redis为什么能抗住10万并发?

文章目录1. Redis简介2. 内存操作3. 丰富的对象类型4. 高效的数据结构5. 单线程模型6. 多路IO复用模型7. 总结1. Redis简介 Redis是一个开源的&#xff0c;基于内存的&#xff0c;高性能的键值型数据库。它支持多种数据结构&#xff0c;包含五种基本类型 String&#xff08;字…

搭建vue3项目+按需引入element-ui框架组件

场景&#xff1a;使用vue create脚手架快速搭建vue的项目 前提&#xff1a;需要安装node.js和cnpm以及yarn 并且cnpm需要设置为淘宝镜像&#xff0c;cnpm和yarn安装教程网上很多可以自行搜索 1.使用dos命令安装vue-cli脚手架 //这个是从镜像源下载 cnpm install -g vue/cli 查…

设计模式简述

设计模式(简述) 设计模式的分类 ​ 根据目的可以分为创建型、结构性和行为型三类&#xff1a; 创建型模型&#xff1a;创建对象结构性模型&#xff1a;处理类或对象的组合行为型模式&#xff1a;用于描述对类或对象怎样交互和怎么分派职责 ​ 根据范围可以分为类模式和对象…

13.基于双层优化的电动汽车日前-实时两阶段市场竞标

MATLAB代码&#xff1a;基于双层优化的电动汽车日前-实时两阶段市场竞标 关键词&#xff1a;日前-实时市场竞标 电动汽车 双层优化 编程语言&#xff1a;MATLAB平台 内容简介&#xff1a;代码主要做的是电动汽车充电站市场竞标策略&#xff0c;采用双层优化模型对电动汽车…

Redis缓存穿透、击穿、雪崩面试题详解

缓存穿透 问题&#xff1a; 指的是客户端请求的数据在缓存中找不到&#xff0c;数据库中也没有存储&#xff0c;客户端还不断的发起请求。这样每次都无法在数据库查询到&#xff0c;缓存中永远没有这个数据。 ​ 这样的话&#xff0c;客户端一直去访问&#xff0c;会给后端数据…

【观察】解读新一代戴尔AMD服务器:场景优化为先,筑牢数字化底座

毫无疑问&#xff0c;今天算力就是生产力已成为业界共识&#xff0c;特别是算力作为数字经济时代的关键生产力要素&#xff0c;更成为了挖掘数据要素价值&#xff0c;推动数字经济发展的核心支撑力和驱动力。 在此过程中&#xff0c;由算力驱动的数字经济除了以信息产业这一独立…

老胡的周刊(第087期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 Auto-GPT[2] Auto-GPT 是一个实验性的开源应…

极简sklearn-使用决策树预测泰坦尼克号幸存者

泰坦尼克号幸存者数据集是kaggle竞赛中入门级的数据集&#xff0c;今天我们就来用决策树来预测下哪些人会成为幸存者。 数据集下载地址: https://download.csdn.net/download/ting4937/87630361 数据集中包含两个csv文件&#xff0c;data为训练用数据,test为测试集。 探索数据…

通过HBuilderX运行uniapp到微信者开发工具

目录 一、安装开发工具 二、配置运行微信开发者工具 三、异常处理 1.[微信小程序开发者工具] ? Enable IDE Service (y/N) [27D[27C 2. [error] Error: Fail to open IDE 3.[app.json 文件内容错误] app.json: 在项目根目录未找到 app.json 一、安装开发工具 安装HBuil…

如今的就业环境下,怎样才能跻身于高收入的IC行业?

看到不少人失业找工作&#xff0c;其实现在不光是大学生难找工作&#xff0c;在职的人工作也不怎么开心。 要么累&#xff0c;要么没前途。 要么又累又没前途。 总的占个啥吧&#xff0c;现在大家面临的问题就是工作时间越来越久&#xff0c;人际关系也搞得很压抑&#xff0…

初识linux之线程同步与生产者消费者模型

目录 一、线程同步的概念 1. 饥饿状态 2. 同步的概念 二、生产者消费者模型 1. 生产者消费者模型基本概念 2. 生产者、消费者之间的关系 2.1 消费者与消费者的关系 2.2 生产者和生产者的关系 2.3 生产者和消费者的关系 3. “321”原则 4. 消费者与生产者模型的特点 …

C++数据结构:STL

数据结构和算法简介 数据结构 数据结构是相互间存在特定关系的数据的集合&#xff0c;分为逻辑结构和物理结构。 逻辑结构 反映数据元素之间的逻辑关系的数据结构&#xff0c;其中的逻辑关系是指数据元素之间的前后件关系&#xff0c;而与他们在计算机中的存储位置无关 集…

类加载器详解(重点)之双亲委派

回顾一下类加载过程 开始介绍类加载器和双亲委派模型之前&#xff0c;简单回顾一下类加载过程。 类加载过程&#xff1a;加载->连接->初始化。连接过程又可分为三步&#xff1a;验证->准备->解析。 加载是类加载过程的第一步&#xff0c;主要完成下面 3 件事情…

多线程基础

1.多线程基础概念 多线程&#xff1a;让程序同时做多件事情 多线程作用&#xff1a;提高效率 并发&#xff1a;在同一时间&#xff0c;有多个指令在单个cpu上交替执行 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个cpu上同时执行 2.多线程的实现 (1)继承Thread类…

计算机网络问题

1.网络分层结构及其必要性 五层体系结构&#xff1a; 七层结构&#xff1a; 应用层&#xff1a;网络服务与最终用户的一个接口&#xff0c;常见的协议有&#xff1a;HTTP FTP SMTP SNMP DNS.表示层&#xff1a;数据的表示、安全、压缩。&#xff0c;确保一个系统的应用层所发…

『Linux笔记』Linux设置SSH远程连接Docker容器

Linux设置SSH远程连接Docker容器 文章目录 一. 创建容器二. 进入容器/设置密码三. 安装ssh及修改配置四. 重启ssh服务五. 远程连接六. 提交运行中的容器docker commit参考文章 一. 创建容器 在ubuntu镜像中创建容器&#xff0c;并将docker服务器的60222端口映射到容器的22端口…