零基础入门学用Arduino 第四部分(一)

重要的内容写在前面:

  1. 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。
  2. 个人把这个教程学完之后,整体感觉是很好的,如果有条件的可以先学习一些相关课程,学起来会更加轻松,相关课程有数字电路(强烈推荐先学数电,不然可能会有一些地方理解起来很困难)、模拟电路等,然后就是C++(注意C++是必学的)
  3. 文章中的代码都是跟着老师边学边敲的,不过比起老师的版本我还把注释写得详细了些,并且个人认为重要的地方都有详细的分析。
  4. 一些函数的介绍有参考太极创客官网给出的中文翻译,为了便于现查现用,把个人认为重要的部分粘贴了过来并做了一些修改。
  5. 如有错漏欢迎指正。

视频链接:​​​​​​​4-1-1 电机基本结构与工作原理_哔哩哔哩_bilibili

太极创客官网:太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料

一、电机的基本结构与工作原理

1、概述

(1)电机又称为电动机、马达,是一种通过电磁感应定律将电能转化成机械能,并可再使用机械能产生动能以驱动其它装置的电气设备

(2)使用Arduino控制的电机主要分为三类,分别是直流电机、步进电机及伺服电机,其中伺服电机在第二部分中有介绍,这里不再赘述。

(3)电机根据工作电源种类分为直流电机(DC)、交流电机(AC)和交直流两用电机(Universal)三类,很显然,直流电机只能由直流电源供电,交流电机只能由交流电源供电,而交直流两用电机可使用直流或交流电源供电。Arduino开发板通常配合直流电机进行应用开发。

2、直流电机

(1)直流电机根据有无电刷可分为有刷直流电机(BDC)和无刷直流电机(BLDC)。

(2)有刷直流电机的基本结构如下图所示。

①有刷直流电机有两个“定子”(下图所示的两侧的黑色块状物),电机在工作时它们基本固定不动,其作用是提供一个磁场;定子之间的一对半圆环是电机的“换向器”,将两对半圆环连接在一起的是电机的线圈,它和换向器共同构成电机的“转子”,顾名思义,电机在工作时转子将会不断地进行旋转;在换向器两边各有一个电刷,在转子转动时,电刷会不断与换向器产生摩擦。

②有刷直流电机连接上电源后,线圈中将会有定向电流流过(下图所示的蓝色箭头),在磁场的作用下,线圈将会受安培力(下图所示的红色箭头),从而带动转子进行旋转;当线圈旋转到与磁感线垂直的位置时,换向器的两个半圆环互换连接的电源极性,由此线圈中的电流流向发生翻转,在磁场的作用下,线圈将会受反向的安培力,于是转子会按照先前的旋转方向继续运动,直到下一次线圈旋转到与磁感线垂直的位置,线圈中的电流流向会再次发生翻转,由此可以实现转子按同一个方向不断旋转。

③当线圈旋转到与磁感线垂直的位置时,安培力的方向与线圈完全平行(安培力的力矩为0),理论上安培力没办法继续带动线圈转动,不过由于惯性,线圈还是可以向前旋转一小段距离,从而摆脱安培力力矩为0的位置,只是这样的话,转子的旋转在靠近安培力力矩为0的位置时运动速度会减慢,从而导致转子的旋转非常诡异,为此可以给直流电机增设若干组线圈及换向器,这样,当一个线圈与安培力平行时,其它线圈的安培力力矩不为0,从而克服转子在某一时刻安培力力矩为0的缺陷。

(3)无刷直流电机的基本结构如下图所示。

①无刷直流电机的转子是永磁铁(下图所示的黑圈),它产生一个永磁场;定子则是由三组线圈(以及下图所示的灰色物体)组成。

②为定子的一组线圈A通电时,线圈A将会产生一个电磁场,磁场方向如下一图所示,线圈A产生的电磁场与转子的永磁场产生交互(异极性相吸,同性极相斥),从而带动转子进行旋转;当转子旋转到两极非常接近线圈A的磁场两极时,线圈A断电,同时为线圈B通电,磁场方向如下二图所示,线圈B产生的电磁场与转子的永磁场产生交互(异极性相吸,同性极相斥),从而带动转子进行旋转;当转子旋转到两极非常接近线圈B的磁场两极时,线圈B断电,同时为线圈C通电,磁场方向如下三图所示,线圈C产生的电磁场与转子的永磁场产生交互(异极性相吸,同性极相斥),从而带动转子进行旋转。

③当转子旋转到两极非常接近线圈C的磁场两极时,线圈C断电,同时为线圈A通电,不过这次要给线圈A通一个与上一次反方向的电流,因为转子旋转半圈后极性的位置也与初始时颠倒了;同理,当转子旋转到两极非常接近线圈A的磁场两极时,线圈A断电,同时为线圈B通一个与上一次反方向的电流,当转子旋转到两极非常接近线圈B的磁场两极时,线圈B断电,同时为线圈C通一个与上一次反方向的电流,这样,转子就完成了一圈的旋转。

④按照上述的工作原理,每一时刻只有一组线圈通电,另外两组线圈处于一个空闲状态,为了提升电机的工作效率,可以在为转子两极一侧的一组线圈通电的同时,为转子两极另一侧的线圈也通上电,不过前者产生的磁场会吸引转子的两极,而后者产生的磁场会排斥转子的两极,由此可以提升转子的旋转速度。

⑤直流无刷电机中还有一个传感器与控制器,传感器会实时地将转子的状态反馈给控制器,控制器根据传感器的反馈对线圈组进行通电和断电。

3、步进电机

(1)不同于一般的直流电机(步进电机也属于直流电机),步进电机是以步进形式运转的,每执行一次步进都会保持当前状态一段时间,然后执行下一次步进

(2)步进电机的优点:

①可精确控制电机输出轴的角度。

②低速运行时可获得更高的扭矩。

③开环控制/性价比高。

(3)步进电机可分为双极性步进电机单极性步进电机,双极性步进电机通常有4根引线,单极性步进电机通常有5-6根引线。

①下图所示的是双极性步进电机结构的概念图(事实上双极性步进电机的结构要比下图复杂得多),通常电机的定子由电磁铁构成,而电磁铁又由铁芯及电磁线圈组成,电机的转子可以是一个永磁体(也可以没有任何磁性,这里以永磁体为例)。

[1]首先给电磁线圈通电,通电后线圈将产生电流,线圈电流将产生电磁场,电磁场存在南北极划分,由于转子的永磁铁也存在南北极划分,加上异性相吸、同性相斥,转子将会受磁场相互作用的影响而旋转。

[2]当第一次旋转结束时,可以给另一个线圈通电,通电后线圈将产生电流,线圈电流将产生电磁场,从而继续带动转子旋转。

[3]第二次旋转结束后,再给第一次旋转时通电的线圈通电,不过这次的电压方向要与之前相反,因为转子已经旋转了半周,这样,转子将进行第三次旋转;同理,第三次旋转结束后,再给第二次旋转时通电的线圈通电,这次的电压方向要与之前相反,这样,转子将进行第四次旋转,至此转子将完成一周的旋转。

[4]在上面的介绍中的步进电机的步进角度为90°,也就是每次转子的旋转角度为四分之一圆。

[5]双极性步进电机通常有4根引线,这4根引线就是电磁线圈的引线。

②下图所示的是单极性步进电机结构的概念图(事实上单极性步进电机的结构要比下图复杂得多),它与双极性步进电机非常相似,区别在于单极性步进电机的电磁线圈有三根引线,中间的引线总是接电源正极或接地(这里以连接电源正极为例)。

[1]将一个定子一端的导线接地,该定子线圈将产生线圈电流,线圈电流产生电磁场,在电磁场的作用下永磁体转子发生转动;一次转动结束后,给另一个定子一端的导线接地,该定子线圈将产生线圈电流,线圈电流产生电磁场,在电磁场的作用下永磁体转子继续发生转动。

[2]第二次旋转结束后,将第一次接地的定子的另一端的导线接地,该定子线圈将产生与第一次电流方向相反的线圈电流,线圈电流产生电磁场,在电磁场的作用下永磁体转子继续发生转动;同理,第三次旋转结束后,将第二次接地的定子的另一端的导线接地,该定子线圈将产生与第二次电流方向相反的线圈电流,线圈电流产生电磁场,在电磁场的作用下永磁体转子继续发生转动,这样,转子将进行第四次旋转,至此转子将完成一周的旋转。

[3]在上面的介绍中的步进电机的步进角度为90°,也就是每次转子的旋转角度为四分之一圆。

[4]单极性步进电机通常有5-6根引线,它们都是电磁线圈的引线,对于只有5根引线的情况,是将总是接电源正极或接地的两根引线合并在了一起。

③单极性步进电机的相对输出扭矩低,控制电路相对简单,而双极性步进电机通常输出扭矩较高,控制电路相对复杂。

(4)步进电机的一些参数:

①定位转矩:电机不通电时,转子自身的锁定力矩。

②保持转矩(静力矩):电机通电但没有转动时,定子锁定转子的力矩。

③步进角度:电机转子每次旋转的角度

④相数:可独立通电的定子电磁线圈组数。(上面的举例都是两相步进电机)

(5)步进电机还可分为永磁式步进电机、反应式步进电机和混合式步进电机。

①永磁式步进电机的转子用永磁材料制成,上面有详细介绍的都是永磁式步进电机。

②反应式步进电机的转子用软磁材料(软磁材料易被周围磁场吸引,但它本身没有磁性)制成。

[1]如下图所示,反应式步进电机有6个定子,它们分别由一个线圈和铁芯组成,互相面对面的线圈在电路上是连接在一起的,转子则是位于中心的一个十字软磁材料,它由一系列的十字钢片组成。

[2]首先为线圈组A通电,线圈组A产生的电磁场将会吸引转子保持在当前位置,把这个位置称为第一个转子位置(下一图所示红线);接着为线圈组B通电,线圈组B产生的电磁场将会吸引转子旋转到另一个位置,把这个位置称为第二个转子位置,它与第一个转子位置相差30°;接着为线圈组C通电,线圈组C产生的电磁场将会吸引转子旋转到另一个位置,把这个位置称为第三个转子位置,它与第二个转子位置相差30°。

[3]上述过程反复进行,可实现转子在同一个方向不断旋转,每次步进转动30°,这个30°就是该电机的步进角度。如果不希望步进角度太大,在给线圈组A通电的同时给线圈组B通电,这样,转子就会仅旋转15°,如下二图所示;接着再断掉线圈组A的电源,转子会继续旋转15°,如下三图所示,以此类推,这种步进方式叫做半步进。

③混合式步进电机结合了上述两种电机的特点,以NEMA 17为例,它的步进角度一般是1.8°。

[1]NEMA 17的转子由三部分组成,分别是转子内部的永磁铁以及扣在其两极的两个齿轮帽,齿轮帽本身不具有磁性,但它被扣在永磁铁上后便有了磁性。

[2]NEMA 17转子的齿轮帽有50个齿,与之相接触的定子则仅有48个齿(转子两极侧的定子各48个齿),将这48个齿分成4组,用下图的四种颜色表示,在电机工作前要调整转子的位置,绿色组齿与转子齿半对齐,黄色齿与转子齿完全错开,蓝色组齿与转子齿半对齐,红色组齿与转子齿完全对齐。

[3]NEMA 17是一个两相电机,转子一侧的8个线圈可分为两组,一组中有4个线圈。

#1 以转子南极为例,首先为线圈组A通电,线圈组A中一对线圈会成为电磁场的北极,另一对线圈会成为电磁场的南极,与转子齿对齐的红色组齿,其线圈处的磁场极性与转子南极相异,二者互相吸引,与转子齿错开的黄色组齿,其线圈处的磁场极性与转子南极相同,二者互相排斥。

#2 接着为线圈组B通电,受与转子齿半对齐的蓝色组齿和绿色组齿对应线圈的磁场影响,转子会进行小幅度的转动,转动到转子齿与蓝色组齿完全对齐、与绿色组齿完全错开的位置,与初始位置正好相差1.8°。

#3 轮流为线圈组A、B通电,可以实现转子不断以每步1.8°进行旋转。如果想要实现转子以每步0.9°进行旋转,可以参考之前介绍的半步进方式,工作过程是相似的。

#4 转子北极一侧的转子齿和南极一侧的转子齿完全交错。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT3.5的PPO目标函数怎么来的:From PPO to PPO-ptx

给定当前优化的大模型 π \pi π,以及SFT模型 π S F T \pi_{SFT} πSFT​ 原始优化目标为: max ⁡ E ( s , a ) ∼ R L [ π ( s , a ) π S F T ( s , a ) A π S F T ( s , a ) ] \max E_{(s,a)\sim RL}[\frac{\pi(s,a)}{\pi_{SFT}(s,a)}A^{\pi_{SFT}}(s,a)] m…

什么牌子的灯好不伤眼?带你了解什么灯对眼睛伤害最小

眼睛是人类获取信息最重要的感官器官之一,而近视则会导致视力模糊,进而影响学习效果和生活品质。因此,什么灯对眼睛伤害最小成为许多人迫切寻找的目标。本文将为各位家长解答目前许多家长选择为孩子保护视力的产品——护眼台灯。护眼台灯以其…

「小爱同学」接入豆包大模型;华为鸿蒙 OS 成为中国第二大操作系统丨 RTE 开发者日报 Vol.224

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

MySQL数据库入门

1、MySQL概述 MySQL官方网站 https://www.mysql.com/downloads/ MySQL被Oracle公司收购了,作者又重新编写了一个开源的数据库管理系统,Mariadb 2、MySQL产品&版本 2、数据库在网站架构中的角色 LAMP LNMP网站架构 3、安装MySQL-基于yum 查…

【记录46】【案例】echarts 柱状图

echarts环境4.1.0 <template><div id"threefour"></div> </template> <script> import * as echarts from "echarts" export default {name:"",components:{},data(){return {}},methods:{getdata(){var myChart…

找单身狗2

找单身狗2 之前遇到类似的题目的思路&#xff1a; 首先写出这些数的二进制形式&#xff1a; 核心原理 接下来的问题是怎么把5和6分开来&#xff1f; 这里是最后一位进行比较&#xff0c;按位异或是相同为0&#xff0c;相异为1&#xff0c;最后一位从上图看出是1&#xff0c;说…

Linux常用操作大全(上)

Linux常用操作 文章目录 Linux常用操作一、各类小技巧**1.ctrl c 强制停止****2.ctrl d 退出或登出**3.历史命令搜索4.光标移动快捷键5.清屏6.复制Ctrlshiftc7.粘贴Ctrlshiftv 二、软件安装1.概念2.yum与apt 三、systemctl控制服务四、软链接ln五、日期时区1.date查看日期2.修…

新能源汽车的能源动脉:中国星坤汽车电缆在新能源汽车电气化中的应用!

随着新能源汽车行业的蓬勃发展&#xff0c;汽车电缆组件作为汽车电气系统的核心组成部分&#xff0c;其重要性日益凸显。中国星坤汽车电缆组件以其卓越的性能和创新技术&#xff0c;为汽车的电能传输、信号传递和控制提供了坚实的保障。本文将深入解析星坤汽车电缆组件的特性、…

视频汇聚安防综合管理平台EasyCVR支持GA/T 1400视图库标准及设备接入配置

一、概述 视频汇聚安防综合管理平台EasyCVR视频监控系统已经与公安部GA/T 1400视图库标准协议实现了对接&#xff0c;即《公安视频图像信息应用系统》。 安防监控系统EasyCVR支持采用GA/T 1400进行对接&#xff0c;可实现人脸数据使用的标准化、合规化。其采用统一接口对接雪…

Linux C语言:指针和二维数组

一、一级指针和二维数组 二维数组的元素连续存储&#xff0c;按行优先存 二、数组指针和二维数组 1、二维数组名的理解 行指针&#xff08;数组指针&#xff09;存储行地址的指针变量&#xff0c;叫做行指针变量。形式如下&#xff1a; <数据类型> (*<指针变量名>…

字节豆包大模型API吞吐、函数调用能力、长上下文能力测试总结

离开模型能力谈API价格都是耍流氓&#xff0c;豆包大模型作为API最便宜的模型之一&#xff0c;最近向个人开发者开放了&#xff0c;花了300元和一些时间对模型的API吞吐、函数调用能力、长上下文能力等进行了深度测试&#xff0c;看看它的能力究竟适合做 AI 应用开发吗&#xf…

内部类介绍

内部类&#xff08;Inner Class&#xff09;是在另一个类的内部定义的类。它可以访问外部类的所有成员&#xff0c;包括私有成员。内部类有两种主要形式&#xff1a;局部内部类&#xff08;定义在方法内部&#xff09;和成员内部类&#xff08;定义在类的内部&#xff0c;但不在…

【随手记】贴一段matplotlib绘图的多图拼接代码

二维&#xff1a; import numpy as np import matplotlib.pyplot as pltpic_names ["pic1", "pic2", "pic3", "pic4", "pic5", "pic6", "pic7", "pic8", "pic9", "pic10&qu…

jupyter使用的一个奇怪bug——SyntaxError: invalid non-printable character U+00A0

bug来由&#xff1a;从其他部分例如kaggle里复制来的代码直接粘贴在jupyter notebook里&#xff0c;每一行代码都会出现&#xff1a; Cell In[5], line 1 warnings.filterwarnings(ignore) ^ SyntaxError: invalid non-printable character U00A0 单元格 In[5]&#xff0c;第 …

shell脚本编程(概念、编程和语句)

一、shell脚本概述 1、shell脚本概念 Shell 脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能。 2、Shell 脚…

【牛客面试必刷TOP101】Day33.BM70 兑换零钱(一)和BM71 最长上升子序列(一)

文章目录 前言一、BM70 兑换零钱(一)题目描述题目解析二、BM71 最长上升子序列(一)题目描述题目解析总结 前言 一、BM70 兑换零钱(一) 题目描述 描述&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正整数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币…

STM32 proteus + STM32Cubemx仿真教程(第五课ADC光敏电阻采样教程)

文章目录 前言一、ADC概念二、光敏电阻的概念1. 光敏电阻的工作原理2. 光敏电阻的特性3. 光敏电阻的应用4. 光敏电阻的电路设计5. 实际使用中的注意事项总结 三、STM32Cubemx创建工程四、proteus仿真电路图五、代码编写1. HAL_ADC_Start 函数原型参数返回值功能描述示例 2. HAL…

【ARM Cache 及 MMU 系列文章 1.3 -- 如何判断 L2 Cache 是否实现?】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 CPU Configuration Register代码实现CPU Configuration Register 在 Armv9 架构中,我们可以通过arm 提供的自定义寄存器IMP_CPUCFR_EL1 来判断当前系统中是否实现了 L2 Cache, 如下所…

Chromium 开发指南2024 Mac篇-Xcode安装(二)

1.引言 在开始编译和开发 Chromium 之前&#xff0c;确保开发环境的正确配置是至关重要的。对于 Mac 用户来说&#xff0c;Xcode 是不可或缺的工具&#xff0c;因为它不仅提供了必需的编译器和工具链&#xff0c;还包含了与 macOS 系统深度整合的开发资源。在本系列指南的第一…

LeetCode | 2879.显示前三行

在 pandas 中&#xff0c;可以使用 head() 方法来读取 DataFrame 的前几行数据。如果想读取指定数量的行&#xff0c;可以在 head() 方法中传入一个参数 n&#xff0c;读取前 n 行 import pandas as pddef selectFirstRows(employees: pd.DataFrame) -> pd.DataFrame:retur…