4-1-3 arduino驱动直流电机(电机专项教程)

news2024/11/15 16:33:37

4-1-3 arduino驱动直流电机(电机专项教程)

  • 4-1-3 arduino驱动直流电机
    • XY-2.5AD电机控制模块
    • 家用直流电源改装成项目制作电源
    • 示例程序
    • 效果演示

4-1-3 arduino驱动直流电机

在这里插入图片描述

Arduino控制直流有刷电机的话,通过H桥电路实现转向控制,以及PWM控制转速
在这里插入图片描述

H桥电路实现
1,自己实现,电子元件实现,初学者比较困难
2,使用电机控制模块(无需自己搭建电路,不仅控制电机旋转方向、速度,还能急停、待速等)

在这里插入图片描述

有很多电机控制模块,需要先确定自己的电机参数和型号,然后通过电机参数和型号适配电机控制模块

这里使用通用的电机130电机和相匹配的电机控制模块XY-2.5AD电机控制模块
在这里插入图片描述

XY-2.5AD电机控制模块

(双H桥模块,可以同时控制两个直流有刷电机)
在这里插入图片描述
在这里插入图片描述

虽然arduino引脚有5V电压,但不要使用其对电机控制模块供电,功率达不到,要单独给电机控制模块配备独立电源

在这里插入图片描述

这里使用3、5、6、9(PWM引脚)控制电机模块
GND要共地
在这里插入图片描述

左下角表格,六种旋转方式、两种调速方式
1/PWM表示使用高电平或者PWM信号
在这里插入图片描述

在这里插入图片描述

共有IN1、2、3、4共四个引脚,不同引脚输出不同信号达到不同效果

首先看第A个电机(通过IN1、IN2两个引脚控制),主要看表格所示
待机,IN1、IN2引脚低电平(若之前转速,则此时慢慢减速停止)
刹车,IN1、IN2引脚高电平(电机旋转时使其突然停止)
在这里插入图片描述

若引脚没有连接任何信号等效于引脚低电平

下面讲使用XY-2.5AD电机控制模块控制两个直流有刷电机

家用直流电源改装成项目制作电源

在太极创客搜索电源,有些可以将常见家用直流电源改装成项目制作电源

http://www.taichi-maker.com/?s=%E7%94%B5%E6%BA%90
在这里插入图片描述

http://www.taichi-maker.com/homepage/arduino-projects-index/dc-breadboard-power-supply/

示例程序

http://www.taichi-maker.com/homepage/arduino-tutorial-index/arduino-hardware/motor-3/

/* XY-2.5AD-Demo
*  太极创客 www.taichi-maker.com
*  2018-08-02
*  
* 通过串行通讯使用XY-2.5AD控制两个DC电机
* 通过digitalWrite HIGH LOW 控制电机运行和停止。
* 
* 如果需要获取更多有关XY-2.5AD控制电机的相关知识,请前往太极创客网站
* www.taichi-maker.com
* 
* XY-2.5AD 控制电机简介
* 
* DC电机     运行状态    IN1    IN2    IN3     IN4
* 电机A     正转(调速) 1/PWM   0                
* 电机A     反转(调速) 0     1/PWM            
* 空转                   0       0
* 刹车                   1       1
* 电机B     正转(调速)               1/PWM    0
* 电机B     反转(调速)                 0     1/PWM
* 空转                                   0      0
* 刹车                                   1      1
* This example code is in the public domain.
*/
 
// XY-2.5AD 连接Arduino引脚编号
int IN1 = 3;
int IN2 = 5;
int IN3 = 6;
int IN4 = 9;
 
int pinNum;             //  控制引脚号
int ctrlVal;            //  电机运行控制
  
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  Serial.begin(9600);
  Serial.println("++++++++++++++++++++++++++++++");     
  Serial.println("+ Taichi-Maker XY-2.5AD Demo +");   
  Serial.println("+    www.taichi-maker.com    +");  
  Serial.println("++++++++++++++++++++++++++++++");   
}
  
void loop() {
  if (Serial.available()) {     // 检查串口缓存是否有数据等待传输 
    char cmd = Serial.read();   // 获取电机指令中电机编号信息      
    
    switch(cmd){ 
      case 'p':   // 设置引脚编号
        pinNum = Serial.parseInt();
        Serial.print("Pin Number ");
        Serial.print(pinNum);
        Serial.print(" ,");
        break;                 
        
      case 'a':   // 模拟模式控制电机
        ctrlVal = Serial.parseInt();
        analogWrite(pinNum, ctrlVal);
        Serial.print("Set Value ");
        Serial.print(ctrlVal);
        Serial.println(".");          
        break;    
 
      case 'd':   // 数字模式控制电机
        ctrlVal = Serial.parseInt();
        digitalWrite(pinNum, ctrlVal);
        Serial.print("Set Value ");
        Serial.print(ctrlVal);
        Serial.println(".");             
        break;   
 
      default:   // 未知指令
        Serial.println("Unknown Command");     
        break;  
    }
  }
}

效果演示

在这里插入图片描述

此实验通过向串口监视器输入控制arduino串口指令,控制电机

输入指令如下(引脚设置高低电平):
在这里插入图片描述

使得3号引脚高电平,5号引脚低电平(让电机A正传以最大速度)
在这里插入图片描述

输入指令如下时(引脚设置PWM信号)
在这里插入图片描述

使得6号引脚PWM信号200,5号引脚低电平(让电机A正传以PWM200)
在这里插入图片描述

旋转速度不是最大速度()

硬件如下:
在这里插入图片描述

可以看到A最快速度正向转
在这里插入图片描述

B以200速度正向旋转
在这里插入图片描述

B速度变慢
在这里插入图片描述

A轮立即停止
在这里插入图片描述

B反向快速旋转
在这里插入图片描述

B轮慢慢停下来
在这里插入图片描述

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

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

相关文章

C语言——预处理

C语言编译步骤 预处理 编译 汇编 链接 预处理 概念: 预处理就是在源文件(如.c文件)编译之前,所进行的一部分预备操作,这部分操作是由预处理程序自动来完成;当源文件在编译时,编译器会自动调用预处理程序来…

ESP32神经网络初步使用

摘要 本文档描述了如何使用Python和TensorFlow训练一个简单的神经网络模型来预测正弦函数,并将其部署到ESP32微控制器上。 参考文章 使用Python和Arduino在ESP32上预测正弦函数 - Dapenson - 博客园 (cnblogs.com) 最简单体验TinyML、TensorFlow Lite——ESP32跑…

Android Studio修改默认.m2与Gradle user home缓存位置

Android Studio修改默认.m2与Gradle user home缓存位置 1、修改Gradle user home的方法: android studio配置默认.gradle路径_android studio gradle在哪-CSDN博客文章浏览阅读2k次。当android studio新建一个项目时候,默认的.gradle路径均认为是在c盘的…

若依搭建实践

若依要求版本 JDK>1.8 MySQL>5.7 Maven>3.0 Node >12 Redis >3 一、环境下载及安装 我本地JDK1.8 MySQL9.0.1 Maven3.5.4 Node 20.12.2 Redis 5.0.14.1 在若依官网下载需要的版本,目前若依支持版本有四个,我们根据需要选择对应的版本…

集合及数据结构第五节————ArrayList的介绍和应用

系列文章目录 集合及数据结构第五节————ArrayList的介绍和应用 ArrayList的介绍和应用 什么是ArrayLisArrayList使用简单的洗牌算法杨辉三角 文章目录 系列文章目录集合及数据结构第五节————ArrayList的介绍和应用 ArrayList的介绍和应用 一、ArrayList1.什么是Arra…

鸿蒙 使用 expandSafeArea 实现顶部沉浸式导航

1, 先看效果; // 设置顶部绘制延伸到状态栏.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) 2, 直接cv 粘贴代码 // xxx.ets Entry Component struct Example {build() {Column() {Row() {Text().fontSize(40).textAlign(Text…

2_foc转速环_电磁转矩方程与运动方程的传递函数

转速环里面包含有电流环在内,当外面给定转速时,系统通过控制iq来控制电磁转矩,从而电机开始转动。电机在转动的过程,传感器检测到机械角度会改变,也就是说电角度也会改变,由电角度在单位时间的变化&#xf…

【C++ 第十五章】map 和 set 的封装(封装红黑树)

1. map 和 set 的介绍 ⭐map 与 set 分别是STL中的两种序列式容器; 它们是一种树形数据结构的容器,且其的底层构造为一棵红黑树; 而在上一篇文章中提到,其实红黑树本身就是一棵二叉搜索树,是基于二叉搜索树的性质对其增加了平衡的属性来提高其综合性能 ⭐当然也…

ip地址冲突的原因及其解决方法是什么

在当今的信息化时代,网络已成为我们生活和工作中不可或缺的一部分。然而,随着网络设备数量的不断增加,网络管理中的问题也日益凸显,其中IP地址冲突便是常见问题之一。IP地址冲突不仅会导致网络通信不稳定,甚至可能使设…

详解栈和队列

目录: 1.栈 2.队列 一、 栈(Stack) 1.1 概念: 栈是一种特殊的线性表,只允许在固定的一端进行插入和删除元素的操作。进行插入元素的一端叫做栈顶,另一端叫做栈底。从数据结构的角度出发,栈中…

k8s-deployment控制器

k8s-deployment控制器 1、yaml文件标签学习-指定pod在哪台节点上创建 强制指定pod在指定节点上创建: --- apiVersion: apps/v1 kind: Deployment metadata:name: my-deployment spec:replicas: 3selector:matchLabels:app: web1template:metadata:labels:app: web1…

流媒体服务器二 3学习 librtmp 库的配置使用

librtmp 库是个啥? librtmp是一个开源的基于C语言的库,提供了一个连接RTMP服务器,发送和接收RTMP流的API。 它可以用来开发流媒体播放器,网络直播等应用。它的主要特点是快速、稳定和低延迟。 librtmp支持RTMP,RTMPS…

超越 RAG 基础:AI 应用的高级策略

作者:来自 Elastic Platform Team 我们最近与 Cohere 举办的线上活动深入探讨了检索增强生成 (Retrieval Augmented Genereation - RAG) 的世界,重点讨论了在概念验证阶段之后构建 RAG 应用程序的关键注意事项。我们的演讲者是 Elastic 的首席解决方案架…

使用 Python和 FFmpeg 批量截图视频到各自文件夹中

在这篇博客中,我们将创建一个简单的图形用户界面 (GUI) 工具,利用 wxPython 和 FFmpeg 来从视频文件中批量生成截图。这个工具能够让用户选择一个文件夹,遍历其中的所有视频文件,按照视频长度将其分为四等分,然后为每个…

鸿蒙HarmonyOS之使用ArkTs语言实现自定义Tab菜单栏分页主页面UI

一、效果 显示为3个Tab菜单栏,中间可以滑动 二、实现步骤 1、Index.ets 示例代码中用到的颜色、文字、图片等资源可以自行替换 import { Tab_1 } from ./Tab_1; import { Tab_2 } from ./Tab_2; import { Tab_3 } from ./Tab_3;//主页面 Entry Component stru…

Excel数字中间指定位置插入符号——以120120加*为例

设置单元格格式——自定义 更多阅读Excel数字中间指定位置插入符号_哔哩哔哩_bilibili

B码对时案例分享,基于RK3568J+Logos-2,让电力设备轻松实现“高精度授时”!

本文主要介绍瑞芯微RK3568J紫光同创Logos-2的B码对时案例,开发环境如下: Windows开发环境:Windows 7 64bit、Windows 10 64bit Pango Design Suite(PDS):PDS_2022.2-SP3 IRIG-B码对时典型应用 IRIG-B码对时可应用于继电保护装…

台球厅自动控制无人台球之智能开关-SAAS本地化及未来之窗行业应用跨平台架构

一、无人台球厅优点 1. 降低人力成本:无需雇佣大量员工,如收银员、服务员等,节省了工资、福利和管理成本。 2. 24 小时营业:不受人工营业时间限制,可以随时满足顾客的需求,增加营业时长和收入。 3. 便捷高…

不良图片检测

OpenNSFW模型简介 OpenNSFW是一个由 Yahoo 研究院开源的深度学习模型,用于识别和区分网络上的正常内容与不适宜内容(Not Safe For Work)。 项目地址:https://github.com/yahoo/open_nsfw OpenNSFW主要基于Caffe框架实现&#x…

邮票孔拼版制作方法

邮票孔拼版制作方法 拼版后的局部图:(中间用连接桥的方式,此方式能最少程度上减少残留) 2)拼版后的效果图 3)邮票孔拼版规则: 拼板与板间距1.2MM或者1.6MM 等邮票孔:8个0.55MM的孔,孔间距0.2MM加两排,邮票孔伸到…