L293D电机驱动版在Arduino上使用笔记

硬件连接

电源

驱动板是可以接受Arduino板的电力的,但是,arduino也就那么点电压,带一两个小直流电机还好说,东西搞多了,也是供不应求的.不过幸好L293D支持外部供电,通过上图中的外接电源接口,就可以进行外部供电.

进行外部供电的时候,需要将外接电源接口旁边的黄色跳线帽拔掉.

可以给每个电机最多600ma电流,1.2A的峰值电流。

电流超过1A的话,需要放散热块.

建议使用18650电池.

引脚使用

所有的六个模拟输入引脚都是可用的。它们也可以当做数字芯片来使用。(引脚14到19)

 数字引脚2和13可用。下面的引脚只有在下面提到的直流或者步进电机工作时才会被用到数字引脚11: 1号直流电机或者1号步进电机数字引脚3: 2号直流电机或者1号步进电机数字引脚5: 3号直流电机或者2号步进电机数字引脚6:4号直流电机或者2号步进电机下面的引脚只有在下面的直流或者步进电机工作时才会被用到数字信号4,7,8,和12通过74hc595(serial-to-parallel)来驱动直流或者步进电机下面的引脚只有在舵机工作时才会被用到数字信号9:1号舵机数字信号10: 2号舵机

所以只要相应的引脚没被L293D驱动板使用到,就可以可以拿来用的但前提是得自己焊出引脚来。焊引脚的地方就是上图中的预留孔位.

电机连接

L293D可以驱动4个直流电机(M1~M4),两个中间白色圈中的接口一般不用.

L293D还可以接两个舵机,分别用数字引脚9和10控制.

软件

使用L293D需要安装AFMotor库文件.

与直流电机有关的函数

确保导入AFMotor库文件并#include < AFMotor.h>后,有这么几个函数需要用到

  1. AF_DCMotor motorname(motornum,frequency);

    • motorname

      给电机起个名字,然后这个名字就是此电机在程序中的代号了

    • motornum

      用来选择你要给哪个电机取名字,参数范围为1~4

    • frequency

      用来设定此电机信号控制的频率.

      M1和M2可以使用MOTOR12_64KHZ,MOTOR12_8KHZ,MOTOR12_2KHZ,或者MOTOR12_1KHZ等常量

      M3和M4使用MOTOR34_64KHZ,MOTOR34_8KHZ,MOTOR34_1KHZ

  2. setSpeed(speed)

    • setSpeed用来设置电机的速度
    • 参数speed的取值范围从0(停止)到255(全速)
    • motorname.setSpeed(speed)
  3. run(direction)

    • 开跑

    • direction可以使用FORWARD,BACKWARD,RELEASE三个常量

示范:

#include <AFMotor.h>
AF_DCMotor motor(2,MOTOR12_64KHZ);
void setup(){
motor.setSpeed(200);
}
void loop(){
motor.run(FORWARD);
delay(1000);
motor.run(BACKWARD);
delay(1000);
motor.run(RELEASE);
delay(1000);
}

与步进电机有关的函数

确保导入AFMotor库文件并#include < AFMotor.h>后,有这么几个函数需要用到

  1. AF_Stepper steppername(steps,portnumber)

    • steppername

      给电机起个名字,然后这个名字就是此电机在程序中的代号了

    • steps

      设置电机每转的步数,比如设置36,则每步走1/36转

    • portnumber

      选择电机的通道,范围为1(通道1,2)和2(通道3和4)

  2. Step(steps,direction,style)

    • step

      转动的步数

    • direction

      转动的方向FORWARD 或者 BACKWARD

    • style

      步进的模式,可以选择的参数:

      • SINGLE - 一次只给一相线圈供电
      • DOUBLE - 一次给两项项圈都供电,得到更大的扭矩
      • INTERLEAVE - 电机会运转得更柔滑,因为步数增加了一倍,同时速度也减小一半
      • MICROSTEP - 电机会运转的更柔滑,精度更高,但扭矩也会减小

如果想更精细地控制步进电机,可以使用AccelStepper library,这个库带有电机加减速度功能。

示范:

#include <AFMotor.h>
AF_Stepper motor(200,2);
void step(){
motor.step(200,FORWARD,SINGLE);
motor.release();
delay(1000);
}
Void loop(){
motor.step(100,FORWARD,SINGLE);
motor.step(100,BACKWARD,SINGLE);
motor.step(100,FORWARD,DOUBLE);
motor.step(100,BACKWARD,DOUBLE);
motor.step(100,FORWARD,INTERLEAVE);
motor.step(100,BACKWARD,INTERLEAVE);
motor.step(100,FORWARD,MICROSTEP);
motor.step(100,BACKWARD,MICROSTEP);
}

L293D电机驱动版在Arduino上使用笔记相关推荐

  1. l293d电机驱动板转向问题

    为什么使用L293D电机驱动板驱动4个电机,uno板插上USB线,电机可以变换方向,不插USB线,只用电池供店 ,电机就不会变换方向. arduino代码: #include <AFMotor. ...

  2. 使用L293D驱动板(for Arduino)对电动机进行驱动

    本文主要介绍如何使用L293D(准确地说是用L293D Motor Control Shield For Arduino)对电动机进行驱动.本文基于Arduino Mega 2560进行介绍,如果你使 ...

  3. 《Silverlight揭秘》暨《ASP.NET高级程序设计(第2版)》有奖读书笔记征集

    <Silverlight揭秘>暨<ASP.NET高级程序设计(第2版)>有奖读书笔记征集 近期图灵公司出版了两本微软技术大作<Silverlight揭秘>和< ...

  4. 归并排序算法 C++实现与时间复杂度(考过)恋上数据结构笔记

    复习梗概 画图,自己整个数组,看代码写步骤,这个对理解归并排序还是很有必要的 合并两个有序数组的merge函数写法 时间复杂度的分析方法!!! 其实我觉得去b站找个动态的步骤分解视频也是不错的复习方法 ...

  5. 伯禹公益AI《动手学深度学习PyTorch版》Task 07 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 07 学习笔记 Task 07:优化算法进阶:word2vec:词嵌入进阶 微信昵称:WarmIce 优化算法进阶 emmmm,讲实 ...

  6. 伯禹公益AI《动手学深度学习PyTorch版》Task 03 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 03 学习笔记 Task 03:过拟合.欠拟合及其解决方案:梯度消失.梯度爆炸:循环神经网络进阶 微信昵称:WarmIce 过拟合. ...

  7. 伯禹公益AI《动手学深度学习PyTorch版》Task 05 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 05 学习笔记 Task 05:卷积神经网络基础:LeNet:卷积神经网络进阶 微信昵称:WarmIce 昨天打了一天的<大革 ...

  8. 《机器学习方法(第三版)—— 李航》学习笔记(一)附代码

    目录 前言 一.第一章 机器学习及监督学习概论 1.机器学习 实现机器方法的步骤 机器学习的研究 2.机器学习的分类 基本分类 二.第二章 感知机 1.感知机模型 2.感知机学习策略 感知机学习策略 ...

  9. Arduino模块学习笔记(一)—GPS模块的使用

    Arduino模块学习笔记(一)--GSP模块的使用 文章目录 Arduino模块学习笔记(一)--GSP模块的使用 所需组件 一.模块使用介绍 1.GPS模块(在室内时,一般获取不到位置信息) 2. ...

最新文章

  1. mysql2014授权设置_SQLServer2014许可证(六)虚拟化中的授权
  2. 吴军《态度》_如何提升你的定力?
  3. mysql 衍生表必须有别名_MySQL“每个派生表必须有自己的别名”
  4. opencv均值滤波_python+opencv图像处理(二十)
  5. 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”怎么解决?...
  6. django-vue-admin前端设置后台接口地址为127.0.0.1产生跨域问题解决办法
  7. python-DBSCAN密度聚类
  8. 线下实战(这次包含北京)
  9. 搭建IBM z/OS 1.9(ADCD 1.9)
  10. 4.6.1 定义工作区
  11. 无码系列-2-代码架构空想
  12. Doc命令行执行php中文乱码问题
  13. RTI_DDS自定义插件开发 6 监听者
  14. freeimage 安装错误
  15. sp3 文件格式说明
  16. DuckDuckGo
  17. Ingress session sticky
  18. 路由器常用功能有哪些 路由器功能介绍【详解】
  19. Python——实现防止微信撤回消息
  20. 武汉科技大学计算机学院温文,第五届华中地区计算机类院校学生领袖峰会成功举行...

热门文章

  1. 防火墙并发连接数理解
  2. 推荐COOLSHELL
  3. activate tensorflow 激活失败解决方案
  4. iOS 开发:绘制像素到屏幕
  5. android xml中单引号,XML格式单引号和双引号拼接问题
  6. Java实现 LeetCode 173 二叉搜索树迭代器
  7. Linux内核实验作业六
  8. Postfix+dovecot 部署
  9. input的type属性
  10. Android布局——Linearlayout线性布局