电调控制直流无刷电机
实验材料:
1.直流无刷电机(A2212-10 KV:1400)
2.好盈天行者电调
3.stm32c8t6核心小板
先了解一下无刷电机工作原理:https://www.bilibili.com/video/av29780856
电机参数:
电调参数:
**实物图片:
接线方式:
我电调用的是转压板12v供电(最粗的红黑两根线),电调带bec5V线性稳压输出给单片机供电(细的红黑两根线),细的白线为pwm控制信号输入,三根粗的黑线接无刷电机。
控制方式:
需要注意的是无刷电机并不像直流电机一样任意给一个占空比的pwm就可以转动,而且频率也有要求。频率允许在50ZH-432HZ,然后一般要给他一个0.5ms-2.5ms高电平才能转动。我的频率就配置为200HZ,在控制电机之前必须先要给电调设置一个时间的最大值和最小值。我让他的高电平时间控制在0.7-1.9ms,所以在刚开始初始化时,先设置一个高电平时间的最大值1.9ms,因为频率为200hz,周期为5ms,此时对应占空比为duty = 0.38,TIM2->CCR1 = 7199*duty;然后通过按键使占空比为高电平时间0.7ms最小时对应的值,即duty = o.14;下载程序到单片机后,给电调上电,会听到哔哔哔三声,然后按下按键设置最小时间,设置成功后会有长的哔一声;完后修改程序初始化时先让pwm占空比最小0.14,通过按键一点一点的加占空比duty,从而实现无刷的调速。
####我的代码:
#include "led.h"
#include "oled.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "ultrasonic.h"
#include "pwm.h"
#include "key.h"char distance[30];
float acdis;
///C8T6核心板模板//
int main(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组2delay_init(); //延时函数初始化uart_init(9600); //串口初始化为9600LED_Init(); //LED初始化OLED_Init(); //初始化OLED KeyInit();
// Tim3CountInit(); //初始化定时器3,用于超声波计数,每计一次为0.001ms,60ms后溢出
// UltrasonicInit(); //初始化超声波所用的IO口PWM_GPIO_Config(); PWM_Mode_Config();//自动装载值7199,时钟分频系数49,频率200hzwhile(1){static float duty = 0.14;if(KEY0 == 0){delay_ms(10);if(KEY0 == 0){if(duty < 0.38)duty += 0.03;//duty = 0.14; }while(!KEY0) ; }else if(KEY1 == 0){delay_ms(10);if(KEY1 == 0){if(duty > 0.14)duty -= 0.03;}while(!KEY1) ; }else if(WK_UP == 0){delay_ms(10);if(WK_UP == 0){duty = 0.14;//占空比如果瞬间给0的话,电机会以当前速度运转大概长达3秒后才会停止//为了安全,占空比给这个对应0.7ms最小值时会立刻自由停止。} while(!WK_UP) ; }if(duty > 0.38)duty = 0.38;if(duty < 0.14)duty = 0.14;TIM2->CCR1 = 7199*duty;sprintf(distance,"Duty : %.3f TH : %.3f ms",(float)duty,(float)duty*5);OLED_ShowString(0,0,(u8 *)distance); }
}
千万要注意的一点,假若在控制四旋翼飞行器时要实现故障时自锁定使飞机的螺旋桨快速停转,四个电机的pwm占空比不是直接给为0,不是直接给为0,不是直接给为0,而是给高电平最小时间对应占空比,我的WK_UP按键实现电机快速停止,duty = 0.14;直接给个0的话电机还会以高速旋转长达约3秒才会停止转动。大四旋翼非常危险,生命安全是第一。
电调控制直流无刷电机相关推荐
- 新西达电调驱动直流无刷电机
新西达30A电调PWM实验数据 一.写在前面的话 二.实验数据 三.思考总结 一.写在前面的话 在几年前,我在某宝上买了一斤直流无刷电机,为了能让电机动起来,走了不少弯路. (吃没人带的苦,哪怕是有个 ...
- 使用Arduino UNO以及好盈电调控制无刷电机
文章目录 前言 1. 实验设备概览 2. 好盈电调控制 3. Arduino UNO 总结 前言 学习如何使用Arduino UNO控制低成本航模无刷电调. 1. 实验设备概览 实验设备包含: 3s锂 ...
- 瑞萨单片机解调好盈电调控制无刷电机
最近刚接触四旋翼,主控用的是瑞萨的RX23T系列,表示以前从来没有接触过瑞萨的单片机,所以拿到手一脸的懵逼.在我好不容易搞懂了开发环境的使用,把在某宝上寻得的资料烧写到单片机上,期待电机嗡嗡转起来,可 ...
- 基于FPGA:如何通过电调控制无刷电机(包含FPGA及Arduino程序)
日常·唠嗑: 2020已经过去,回首这一年,真的经历了很多,申报项目.集创赛.电赛.机械创新赛.挑战杯.写博客.遇见她--一路走来磕磕碰碰,也成长了许多.在2021伊始,写下这篇博客博客,希望能不忘初 ...
- 单片机STM32直连电调控制航模涵道电机的方法总结
单片机STM32直连电调控制航模涵道电机的方法总结 文章目录 单片机STM32直连电调控制航模涵道电机的方法总结 前言 一.硬件情况 二.涵道电机两种常见的驱动方式 1.有线控制方式 2.无线控制方案 ...
- 【小白入门】新西达、好盈电调PWM控制直流无刷电机,以N5065为例
写在开头,本文为我本人在2023 ROBOCON期间为队伍设计直流无刷电机控制期间的初步所学.希望本文能帮到所有第一次入坑直流无刷电机的小白朋友们,文章纰漏星数,还望各位大佬多多包涵. 一.你可能已有 ...
- stm32单片机控制好盈电调带动T80电机转动
32单片机通过好盈电调控制T80无刷电机 文章目录 32单片机通过好盈电调控制T80无刷电机 电调的控制原理 我们为什么需要电调 输入电调控制信号的要求 怎么解锁电调 电调的接线 单片机代码部分 PW ...
- 用STM32F103单片机控制电调制动无刷电机
用电调控制无刷电机制作蓝牙遥控飞艇 [注:学习STM32总结做的笔记,大神勿喷.有不足之处还望不吝赐教,谢谢.工程代码在最后.] 蓝牙控制 调控电调 无刷电机 STM32F103单片机 用电调控制无刷 ...
- 通过CAN总线控制VESC驱动直流无刷电机
最近在驱动一个直流无刷电机,驱动这一块不是我的研究重点,只是拿来用.但系统上用到CAN总线,找来找去找到了VESC这种神级物品,自然是拿一块来玩玩. 拿到我手上的VESC是国内某工作室的改版VESC ...
最新文章
- [C语言]一个很实用的服务端和客户端进行UDP通信的实例
- STL Map学习总结
- 云服务器cpu系列,云服务器cpu系列
- Coinlist将在4月1日到3日举行Rally(RLY)代币销售
- 使用Angular与TypeScript构建Electron应用(五)
- 人工智能必备数学知识· 学习笔记 ·002【马尓可夫链,马尓可夫链奖励过程,马尔可夫决策过程】
- linux内核溢出利用,Linux内核堆缓冲区溢出漏洞
- 【优化算法】贪婪策略和变异策略的混合蚁群算法【含Matlab源码 1521期】
- Windows -- ThinkPad E470 win10-64bit显示问题和声音播放问题
- 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度PHP类
- airpin linux电脑,AirPinPcSender
- C语言万年历设计制作
- Word复制表格样式变化问题
- 【python】文件的save和load:npy,npz,txt,csv,pkl,(持更)
- JAVA获取CKplayer真是地址,ckplayer的使用问题
- why-not 和 why 问题简介
- 大咖说*计算讲谈社|不止能上路,更能做好服务:自动驾驶产品规模化的问题定义
- 2.前端笔记-JS-JS3种书写位置、注释、输入输出
- iOS之ffmpeg开发音视频编解码概要、SDL
- Windows窗口消息大全,全不全自己看