博客
关于我
【STM32 .Net MF开发板学习-13】用PWM驱动智能小车
阅读量:469 次
发布时间:2019-03-06

本文共 2458 字,大约阅读时间需要 8 分钟。

这段时间一直忙着开发基于.NET Micro Framwork系统的远程医疗系统(参见:),所以隔了近一个礼拜的时间,才有精力继续研究PWM驱动智能小车的问题。

以前对步进电机和直流电机的控制了解不深,以为仅对步进电机而言,才能进行PWM控制,及到购买相关的驱动板和步进电机后,才发现由于驱动板的原因,控制步进电机的方向、速度只能通过IO控制,相关内容请参见我以前写的博文《》。

在介绍具体的控制代码之前,为了便于更深入的了解PWM控制直流电机的机制,我们先粗略了解一下H桥驱动直流电机的原理。

    

   

    1)、H桥式电机驱动电路包括4个三极管和一个电机;

2)、导通Q1Q4,电流从Q1经电机流到Q4,电机顺时针转动;

3)、导通Q3Q2,电流从Q3经电机流到Q2,电机逆时针转动;

4)、电流的大小,决定了电机的转速,通过PWM的占空比(电流通断比)来决定电流的大小,从而间接控制了电机的转速。

当然为了提高驱动能力三级管会换为MOS管,不过其原理都是一样的。但是实际使用的时候,用分立元件制作H桥是很麻烦的,现在都是采用封装了H桥的集成电路芯片,如比较常用芯片有L293BL293DL298NTA7257PSN754410等。

更多关于H桥的相关知识,请参见如下文章:

1)、《

2)、《

    3)、《

    我们目前所选用的四路直流电机驱动器,其核心芯片就是L293B芯片,每个芯片集成了两个H桥电路,可以同时控制两路直流电机。

   

L293B芯片的原理图如上图所示,内含两路H桥,四路输入,两路方向控制,两路PWM控制。

实际应用发现,让直流电机正反转有如下组合控制(仅以A路示例)

1)、A  高电平输入 PWMA 输入PWM方波  直流电机正向旋转

2)、A   低电平输入 PWMA 输入PWM方波  直流电机反向旋转

3)、A向和PWMA交换,A向输入PWM方波,PWMA保持高电平或低电平

不同的组合,不同的控制方式,则直流电机的运转方向不同,并且有的组合PWM占空比高,反而转速低,而有的就是占空比高,则转速也高。

和红牛开发板的具体接线如下:

M1_S – PA6   (TIM3_CN1)

M1_D – PA4

M2_S – PA7   (TIM3_CN2)

M2_D – PA5

智能小车,我们选用相对低价,且比较容易安装红牛开发板的小车底盘,共有两种组装方案,如下图所示,我比较倾向推荐第二种组装方案。

1)、小车底盘散件;

2)、安装后的小车;

3)、.NET Micro Framework开发板固定到小车底盘上(蓝色区为安装固定位置)

4)、不用小车上层板,直接用铜轴固定开发板;

驱动板供电,可以直接选择9V的电池,不过开发板也需要另行购买5V左右的电池。此外也可以购买6节普通的5号充电电池(3节给开发板供电,3+3节给驱动板供电),通过电池盒给驱动板和开发板供电。

由于底层我已经封装了PWM驱动库,所以用C#开发小车的控制代码,将非常的容易,本示例的代码如下:

public static void Main()

     {

           PWM pwm = new PWM(PWM.Timer.T3, 1000, 100);

            OutputPort Lc = new OutputPort((Cpu.Pin)GPIO_NAMES.PA4, false);

            pwm.Start(PWM.Channels.CH1, 50, PWM.Mode.PWM1); //PA6

            OutputPort Rc = new OutputPort((Cpu.Pin)GPIO_NAMES.PA5, false);

            pwm.Start(PWM.Channels.CH2, 90, PWM.Mode.PWM1); //PA7

            while (true)

            {

                Thread.Sleep(1000);

            }

 }

我们选用Timer3进行PWM输出,查看开发板原理图,Timer3的第一路PWM输出的管脚为PA6,第二路为PA7,我们选择PA4PA5作为方向控制。

函数简介:

1)、PWM声明

public PWM(PWM.Timer timer, uint f, ushort count);

timer 芯片时钟,可选Timer2,Timer3,Timer4,Timer5;

f PWM输出频率,一般建议1000以上,不过几百也可以,网友可以自行测试。

Count 计数(可看成占空比的分母)

2)、PWM开始输出

     public int Start(PWM.Channels ch, ushort dutyCycle, PWM.Mode mode);

 ch PWM通道,可有四路通道

 dutyCycle 可看成占空比的分子

 mode pwm输出方式,可以是方波,也可以强制为高或低;

3)、PWM停止输出

 public int Stop(PWM.Channels ch);

  

      

   (运行时的截图)   

     小车的运行视频:

  

由于目前还没有考虑添加遥控设备,所以我们只能先让智能小车进行转圈了,后续文章我会考虑添加无线控制设备,使我们可以远程控制小车的行进及快慢。

 

附:网友写的相关文章《MF控制小车(PWM驱动直流电机)》:

 

【本文相关模块或组件】

1)、小车底盘

 

2)、四路直流电机驱动器

3)、.NET Micro Framework开发板

 

4)、双排阵

5)、电池盒

 

 

6)、电源插头

7)、杜邦线

 

 

    此外尤值得一提的是,目前微软官方越来越凸显对.NET Micro Framework的重视,在MSDN微软中文技术论坛专门开辟了.NET Micro Framework栏目。

    Windows Embedded 嵌入式技术论坛链接地址如下:

 

   注:需要红牛开发板固件在 V0.9.9以上

本文源码:

MF快速参考:

MF中文讨论组:

微软官方论坛:

开发板简明手册:

【低价开发板】

 

转载地址:http://nnxbz.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
查看>>
NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
查看>>
NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
查看>>
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>
NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
查看>>
NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>
NIFI大数据进阶_外部ZK模式集群1_实际操作搭建NIFI外部ZK模式集群---大数据之Nifi工作笔记0017
查看>>
NIFI大数据进阶_实时同步MySql的数据到Hive中去_可增量同步_实时监控MySql数据库变化_操作方法说明_01---大数据之Nifi工作笔记0033
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>