【深海王国】小学生都能玩的单片机!番外2:Arduino控制其他元器件(2)

Hi٩(๑ ^ o ^ ๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督为大家带来单片机的新番外系列——小学生都能玩的单片机!番外2:Arduino控制其他元器件,带你学习如何使用Arduino控制如继电器、舵机、传感器等简单电元件。

(2)Arduino控制舵机

舵机简介:

舵机是一种集成了驱动电机、位置传感器和控制系统的小型伺服装置,可以精准地控制角度、位置和速度。通常,它由三部分组成:直流电机、减速齿轮和控制电路。舵机的最大特点是能够在接收到控制信号后,通过反馈系统准确定位到指定的位置,并保持稳定。

简单来说,可以实现精确的角度或位置控制的电机就是舵机。再简单点,你想让一个电机转到指定角度,比如从水平方向转到竖直方向,就用舵机

既然是角度控制,我们可以选择的控制角度也有很多,其中最常用的就是180°舵机:

舵机类型转动范围应用领域
180度舵机0度到180度机器人、模型飞机、机械臂等
90度舵机0度到90度特定较小转动范围的应用,但使用范围较窄
270度舵机0度到270度需要更大旋转范围的应用
360度舵机 (Continuous Rotation Servo)连续旋转这种舵机实际上是一种连续旋转舵机,可以不停地旋转。主要用于轮式机器人等需要连续旋转的场合
特定角度舵机根据需求定制,如120度、300度一般都是定制的,通常用于特殊应用

舵机选购:

在进行舵机选购前,我们先对常用的电机进行一个价格科普,价格由低到高分别如下:

  1. 普通直流电机 (DC Motor): 普通直流电机通常最便宜,尤其是小型低功率的直流电机,这些电机相对简单,没有复杂的控制或反馈机制。
  2. 直流减速电机 (DC Gear Motor):直流减速电机是在普通直流电机的基础上增加了一个齿轮箱,用来降低速度并增加扭矩。由于齿轮箱的存在,这种电机通常比普通直流电机贵一些,但具体价格也会依赖于齿轮箱的质量和复杂度。
  3. 舵机 (Servo Motor):舵机能够精确控制角度、速度和位置,通常内置了反馈系统。小型标准的舵机普遍用于模型和机器人项目中,相对价格中等。但是,用于工业或专业用途的大功率高精度舵机则会贵很多
  4. 步进电机 (Stepper Motor):步进电机能够精确定位,在需要精密控制的应用中非常常见。由于设计和控制的复杂性,一般来说,步进电机的价格要高于普通直流电机和大多数舵机。

正如上面提到的,在大型工业设备中,舵机又叫伺服电机,价格反而会比步进电机贵很多。
主要就是因为大功率、高转矩的伺服电机比同级别的步进电机需要更高等级的材料和制造工艺。
而且伺服电机的控制系统通常更复杂,包括闭环控制、实时监测和调整,这需要高性能的控制器和软件支持。
步进电机的控制系统相对简单,主要是开环控制,成本较低。
关于什么是开环、闭环,之后我们也会讲到,这里大都督先卖个关子。

好啦,叭叭叭了怎么多,总之,我们电子爱好者买舵机还是很划算的,价格也不贵,像9克经典舵机这种小型舵机,几块钱就能拿下。

顺便说一下,大家购买舵机上面会标注多少多少克,多少千克,除了9克经典舵机的9克指的是舵机重量剩下的舵机标注的多少kg是指其扭矩是多少kg/cm
并且舵机的扭矩也跟其所受电压呈正相关,就是电压越大,扭矩越大。随着所需扭矩的上升,舵机的价格也会几何倍增长,价格对应表如下:

舵机重量/型号舵机扭矩(kg/cm)供电电压(V)价格 (人民币)图片
9克经典舵机1.63.0~7.25.5~6在这里插入图片描述
便宜的20kg舵机133.0~7.213~15在这里插入图片描述
贵的20kg舵机20.5~22.84.8~7.235~70(看买的哪家的)在这里插入图片描述
贵的30kg舵机27~324.8~6.8115在这里插入图片描述
贵的35kg舵机29~356~8.4(5V也行)150左右在这里插入图片描述
便宜的60kg舵机58.5~706~8.4100多在这里插入图片描述
贵的60kg舵机58~706~8.4200左右在这里插入图片描述

舵机这玩意真的是一分价钱一分货,所以大家要提前对自己所需力矩有个预期,按需购买。
而且舵机还很容易烧坏,像便宜的20kg舵机大都督至少干坏了5、6个,都是money啊,/(ㄒoㄒ)/~~

还是老规矩,各个型号的舵机我都买过,我把我用过的舵机链接分享给大家,没有广子,大家仅供参考,在咱们的公众号「深海大都督」里了,回复「舵机购买」就可以啦。

最后总结,大家购买舵机前,要先预估扭矩多少kg,再根据扭矩选择供电电源是5v还是7.4V。

舵机接线:

舵机的接线也非常简单,有三根线引出,分别接VCC、GNG和信号线。主要引出线的格式就是棕、红、橙(棕色连接GND、红色连接VCC、橙色连接信号)。
至于为什么要把电源线放中间,之前大都督的这篇文章也解释过【深海王国】初中生也能画的电路板?番外1(2)Pro Mini拓展板原理图与PCB绘制,
其实就是为了防止5V和GND接反了,尤其是舵机这东西,一定一定不要把电源线接反了,要不肯定会被烧坏。

如果使用小舵机,我们可以直接用Arduino供电,就这样接线:

Arduino引脚舵机功能
5V正极红色
GND棕色负极
D9(PWM)橙色PWM信号输入

在这里插入图片描述

如果使用大舵机,我们就需要一个独立的电源,用来专门供电:

Arduino引脚接线功能
GND舵机棕色地线、电源负极负极
D9(PWM)舵机橙色信号线PWM信号输入
电源接线功能
负极舵机棕色地线、Arduino的GND引脚供电负极
正极舵机红色电源线供电正级

在这里插入图片描述

为什么要使用单独电源呢?之前我们也提到过,嵌入式相当于我们房子的管家,你不能让管家去干重体力活对不对,干体力活就要找专门的师傅干,所以我们需要专门的电源来供电。(详见(1)单片机的介绍与嵌入式基本知识)

然后关于什么是PWM和Arduino的PWM引脚有哪些,可以看这篇文章:(2)初识Arduino与基本单片机电路知识

大家可以先把PWM简单理解为模拟输出

控制代码:

#include <Servo.h>            //加载舵机文件库
int pos = 0;           //舵机当前角度
Servo myservo;   //定义舵机类void setup(){myservo.attach(9, 500, 2500);   //修正脉冲宽度,相当于初始化舵机,比如180°舵机,就是将0~180°拆分为500~2500
}
void loop(){for (pos = 0; pos <= 180; pos += 1) {       //pos+=1等价于pos=pos+1myservo.write(pos);delay(20);					}for (pos = 180; pos >= 0; pos -= 1) {myservo.write(pos);delay(20); 					}
}

上面这段代码的最后实现效果,就是让我们的舵机从0~180°来回转动。

仿真的话给大家推荐一个在线仿真平台:wokwi
将代码复制上去,再添加一下Servo库就可以跑啦:

在这里插入图片描述

代码解析:

函数用法示例描述
Servo myservo;Servo myservo;创建一个Servo类的对象myservomyservo是对象的名称,这个名称可以自由指定。
myservo.attach(pin)myservo.attach(9);将舵机对象与Arduino板上的具体引脚关联起来。在这个例子中,9号引脚被用于控制舵机。
myservo.write(angle)myservo.write(45);控制舵机旋转到指定的角度。这里的45表示让舵机转到45度的位置。请注意,这里指定的是目标位置的绝对角度,而不是相对于当前位置旋转的角度。

常用的就这三个,还有一些不常用的:

函数用法示例描述
myservo.writeMicroseconds(us)myservo.writeMicroseconds(1500);控制舵机旋转到特定的微秒信号下。us 是信号的微秒数,这个信号直接控制舵机的行为,适用于需要更细粒度控制的场景。
myservo.read()int position = myservo.read();获取舵机目前的位置(以角度计)。返回舵机当前所在的角度,返回的值为最近一次write()writeMicroseconds()命令设置的位置。
myservo.attached()if(myservo.attached()) {...}检查舵机是否与某个引脚关联。如果舵机已经与一个引脚成功关联,则返回true
myservo.detach()myservo.detach();将舵机从当前关联的引脚上解除关联。执行这个命令后,舵机会停止接收控制信号,从而可以自由旋转。

最后,大家记得在给舵机下达转动指令后,一定要用delay()函数,预留够舵机转动的执行时间。
说简单点,给人家点转动时间,再下达下一个指令
记得用delay()函数!
记得用delay()函数!
记得用delay()函数!
说三遍,哈哈。

今天的学习到这里就差不多啦。下节我们会继续进行Arduino其他元器件的学习和使用,看到这里的你今天也辛苦啦٩(ˊᗜˋ)و✧。

需要的相关材料链接我都放在公众号「深海大都督」里了,回复「舵机购买」就能获得啦~

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

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

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

相关文章

【ragflow】安装2:源码安装依赖

中文文档【ragflow】安装1: docker:失败官方说的成功 docker 安装的启动失败 重新来一遍,不会重新拉取: root@k8s-master-pfsrv:/home/zhangbin/perfwork/rag# cd ragflow/ root@k8s-master-pfsrv:/home/

单片机-串口通信(二)

目录 一、串口概念 1.相关概念&#xff1a; 按数据传输方式分类&#xff1a; 按时钟分类 二、STM32F103ZET6中串口 USART特性&#xff1a; NRZ数据格式&#xff1a; 三、配置串口通信 查看硬件原理图 软件配置流程 USART相关的寄存器 新建my_usart1.c和my_usart1.h …

游戏开发者必看:Perforce龙智即将携手亮相2024 Unreal Fest上海站,打造游戏开发版本控制新生态

2024年9月5- 6日&#xff08;周四-周五&#xff09;&#xff0c;Unreal Fest Shanghai 2024将在上海宝华万豪酒店隆重举行&#xff01;作为游戏行业备受瞩目的盛会之一&#xff0c;Unreal Fest每年都会吸引来自世界各地的技术专家和行业领导者齐聚一堂&#xff0c;分享最新的技…

LabVIEW中升采样和降采样

升采样 (Upsampling) 和 降采样 (Downsampling) 是信号处理中的两种常见操作&#xff0c;用于改变信号的采样率。它们在数字信号处理&#xff08;DSP&#xff09;和许多工程应用中非常重要&#xff0c;尤其是在处理不同采样率的数据流时。 升采样 (Upsampling) 升采样是增加信…

W.A.L.T: Photorealistic Video Generation with Diffusion Models

Paper name W.A.L.T: Photorealistic Video Generation with Diffusion Models Paper Reading Note Paper URL: https://arxiv.org/pdf/2312.06662 Project URL: https://walt-video-diffusion.github.io/ TL;DR 2023 斯坦福大学和 google 联合出品的视频生成工作&#x…

ssm面向企事业单位的项目申报小程序论文源码调试讲解

2 系统实现的技术支持 2.1微信开发者工具 在传统web浏览器中&#xff0c;在加载htm15页面时先加载视图层的html和css&#xff0c;后加载逻辑层的java script&#xff0c;然后返回数据并在浏览器中展示页面。而微信开发者工具的系统层是基于Native System的&#xff0c;视图层和…

Excel 导入和导出--前后端整合

文章目录 Excel基础Easy Excel导出会员数据导入会员数据 前端代码:代码解析总结组件简介详细解释总结 用来操作excel文件的。银行网银系统导出交易明细数据、各种业务系统导出excel报表数据、批量导入业务数据。 Excel基础 **工作簿 workbook**就是一个文件工作表 sheet属于…

Linux中如何查看一个进程?如何杀死一个进程?如何查看某个端口有没有被占用?

在Linux中 如何查看一个进程&#xff1f; 使用 ps 命令 ps aux这会显示所有正在运行的进程&#xff0c;可以使用 grep 来过滤特定的进程 ps aux | grep process_name使用 top 命令 top这个命令会实时的显示系统重正在运行的进程 如何杀死一个进程&#xff1f; 使用 kill …

8、Django Admin后台中添加Logo

在项目settings.py文件 # 导入os&#xff0c;并且修改DIRS内容如下所示 import os TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates/)],APP_DIRS: True,OPTIONS: {context_processors: [django.template.con…

WebRTC协议下的视频汇聚融合技术:EasyCVR构建高效视频交互体验

视频汇聚融合技术是指将来自不同源、不同格式、不同网络环境的视频流进行集中处理、整合和展示的技术。随着视频监控、远程会议、在线教育、直播娱乐等领域的快速发展&#xff0c;视频数据的规模急剧增长&#xff0c;对视频处理能力和效率提出了更高要求。视频汇聚融合技术通过…

excel扒数据到ini文件小工具

一、源码 注释很详细&#xff0c;就不讲了 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QVariant>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpu…

免费SSL证书申请入口——支持自动续签

SSL证书是一种数字证书&#xff0c;用于在客户端&#xff08;如浏览器&#xff09;与服务器之间建立加密通信&#xff0c;确保数据传输的安全性和完整性。它通过加密技术保护网站免受数据窃取和篡改&#xff0c;同时验证网站的身份&#xff0c;让用户确认他们正在与正确的网站进…

最全盘点!国内外主流的在线CRM有哪些?

本文将盘点10款主流的在线CRM&#xff0c;为企业选型提供参考。 在线 CRM 就如同企业与客户之间的强力纽带&#xff0c;能把企业的客户关系管理得妥妥当当。 对于企业来说&#xff0c;如果没有好用的在线 CRM&#xff0c;就像航海者失去了罗盘&#xff0c;在市场的海洋中容易迷…

48.【C语言】结构体补充

承接20.【C语言】初识结构体&#xff08;重要&#xff09;中的结构体成员的访问 目录&#xff1a; 1.结构体创建 2.利用函数控制结构体 3.使用“结构体指针变量-->结构体成员变量”来修改结构体的数据 4.传值还是传址&#xff1f; 1.结构体创建 依据第20篇&#xff0c;可以…

Learning——protobuf的下载

目录 一、protobuf在windows下安装 1.下载地址 2.配置环境变量 ①打开设置 ②搜索框中搜索编译环境变量 ③ 点击“环境变量” ④ 找到PATH并双击打开编辑 ⑤配置环境变量后点击确定 3.检验是否安装成功 二、protobuf在Linux下安装 1.库依赖安装 2.下载地址 我不能使用…

二异硬脂醇苹果酸酯行业分析:前三大厂商占有大约51.0%的市场份额

二异硬脂醇苹果酸酯&#xff08;Distearyl Malate&#xff09;是一种由苹果酸与硬脂醇反应生成的酯类化合物&#xff0c;常用于化妆品和护肤品中作为润肤剂、增稠剂和乳化剂。其特点是具有良好的保湿和滋润效果&#xff0c;同时能提供丝滑的质地和优越的使用感&#xff0c;适合…

12款图纸加密软件大盘点,2024图纸加密软件最新推荐

图纸不仅是设计师的灵感结晶&#xff0c;更是企业宝贵的无形资产。然而&#xff0c;随着网络安全的日益严峻&#xff0c;如何确保这些图纸的安全&#xff0c;防止未经授权的访问和泄露&#xff0c;成为了每个企业和设计师不得不面对的问题。今天&#xff0c;就让我们一起揭开12…

Windows10上Nginx如何通过自签名证书方式发布Https服务(上)

背景 在Android开发中使用平板设备进行调试,Android版本是13。在调试中遇到一个这样的报错信息:“java.io.IOException: Cleartext HTTP traffic to 192.168.137.1 not permitted”,然后查了下报错原因是:应用正在尝试通过不安全的HTTP协议进行网络通信,而你的应用运行的环…

SQL【2】稍稍进阶

目录 首先&#xff0c;怎么安装&#xff0c;环境怎么调。 alter——改变&#xff08;此段Al&#xff09; 创建于删除数据库、表格 上一节进阶 预设值default​编辑 关于插入顺序 有条件的删除DELETE FROM 表 WHERE 条件 多种语句组合查看 查看排序​编辑 LIMIT 2只取前…

大模型入门 ch01:大模型概述

本文是github上的大模型教程LLMs-from-scratch的学习笔记&#xff0c;教程地址&#xff1a;教程链接 STAGE 1&#xff1a; BUILDING 1. 数据准备与采样 LLM的预测过程&#xff0c;是一个不断预测下一个词&#xff08;准确的说是token&#xff09;的过程&#xff0c;每次根据输…