自制无感无刷电机驱动板

自制无感无刷电机驱动板


分别测试了基于C251的STC32G单片机、Arduino AVR的ATmega328PB、以及ARM的ST32F103单片机。

  • 🧲测试转动效果

在这里插入图片描述

  • ✒目前市面上开源的有关无刷电机的项目数不胜数,其控制原理都大同小异,在没有领透其技术要领情况下,关键是找到一个合适自己的,资料齐全的,有针对性的学习。
  • ✨学习资料阅读推荐《无感无刷直流电机之电调设计全攻略》

  • 🎉现成的无感无刷驱动测试资料来源:

  • 📓STC三相无刷电机驱动-STC32G-无HALL资料地址 : https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7472&extra=page%3D1

  • 📍ATmega328PB移植可以参考 ATmega8 MK 电调开源程序 V0.42 版:https://svn.mikrokopter.de/websvn/listing.php?repname=BL-Ctrl&path=%2Ftags%2FV0.42%2F&#a4bfcc0886576e3118d94460220fa558a

  • ATmega328PB相关移植参考文章:https://www.amobbs.com/thread-4652868-1-1.html
  • 👉 如果自制驱动板,推荐还是和控制芯片集成到一起,因为需要连接的线比较多,连接不稳定容易出问题。
  • 📍ST32F103无感无刷驱动资料来源参考
  • 🔖匠心科技BLDC开发板资料
链接:https://pan.baidu.com/s/1s5YjzRSDLKQvl86lBVAqKA?pwd=a6cx
提取码:a6cx***** 解压密码:JXKJ_RALDNW
  • 🔖本论坛的BLDC驱动程序资料:https://blog.csdn.net/snail_dongbin/article/details/82803076
链接:https://pan.baidu.com/s/1uXD7UBV3R_NEV85zf-jmZg?pwd=7esq 
提取码:7esq
  • 🔬使用无感驱动程序,配合自制电机驱动板,在开环测试下没有问题。
  • 📑个人自制无刷电机驱动板原理图
  • PCB其它相关功能还未测试,最终PCB电路还未正式确认,暂时没有开源发布出来。
链接:https://pan.baidu.com/s/1jxZzWpBFSaQAJqjUw6hTgQ?pwd=o5q7 
提取码:o5q7
  • 🍁初稿原理图
    在这里插入图片描述
  • 🌿由于驱动板没有集成MCU,在使用时,需要根据个人使用的单片机,进行相关代码的移植。
🌼驱动程序说明
  • 📍基于STC32G单片机的驱动程序:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1822&highlight=bldc&page=1&extra=#pid11784
  • 使用STC32G驱动程序,在开环低速测试没有问题,在开启PID功能调试模式不行,PID参数没有调整好。
  • 🌿Arduino 328PB开环测试程序

🥕仅供测试使用,这是让无感无刷电机强制转起来。主要用于验证基本驱动电路是否正常。如果需要使用328P驱动可以参考:德国MK项目BLDC电调项目,详见上面的相关链接。

#include "Arduino.h"int AA1=3;
int AA2=5;
int BB1=11;
int BB2=10;
int CC1=9;
int CC2=6;int enable=2; //This is not used for now, The ESC is always enabled
int emfA=A0;
int emfB=A1;
int emfC=A2;int fase=1;
int deltaA=0;
int emA=0;
int sum=0;int IN=A3;
unsigned int Delay=3600;int it=0;
int it2=1;static int delta= 0;
static int Lastdelta= -1;unsigned long previousMicros = 0;void setup() {Serial.begin(9600);pinMode(AA1,OUTPUT);pinMode(AA2,OUTPUT);pinMode(BB1,OUTPUT);pinMode(BB2,OUTPUT);pinMode(CC1,OUTPUT);pinMode(CC2,OUTPUT);pinMode(enable,OUTPUT);pinMode(IN,INPUT);pinMode(emfA,INPUT);pinMode(emfB,INPUT);pinMode(emfC,INPUT);//digitalWrite(enable,HIGH);//previousMillis = micros();}void loop() {int emA = analogRead(emfA);int emB = analogRead(emfB);int emC = analogRead(emfC);int sum = (emA+emB+emC)/3;unsigned long currentMicros = micros();if(currentMicros - previousMicros >= Delay){previousMicros += Delay;//Phase1 C-Bswitch(fase){case 1:digitalWrite(AA1,LOW);digitalWrite(AA2,LOW);digitalWrite(BB1,LOW);digitalWrite(CC2,LOW);digitalWrite(BB2,HIGH);digitalWrite(CC1,HIGH);delta = emA-sum;break;//Phase2 A-Bcase 2:digitalWrite(AA2,LOW);digitalWrite(BB1,LOW);digitalWrite(CC1,LOW);digitalWrite(CC2,LOW);digitalWrite(AA1,HIGH);digitalWrite(BB2,HIGH);delta = emC-sum;break;//Phase3 A-Ccase 3:digitalWrite(AA2,LOW);digitalWrite(BB1,LOW);digitalWrite(BB2,LOW);digitalWrite(CC1,LOW);digitalWrite(CC2,HIGH);digitalWrite(AA1,HIGH);delta = emB-sum;break;//Phase4 B-Ccase 4:digitalWrite(AA1,LOW);digitalWrite(AA2,LOW);digitalWrite(BB2,LOW);digitalWrite(CC1,LOW);digitalWrite(BB1,HIGH);digitalWrite(CC2,HIGH);delta = emA-sum;break;//Phase5 B-Acase 5:digitalWrite(AA1,LOW);digitalWrite(BB2,LOW);digitalWrite(CC1,LOW);digitalWrite(CC2,LOW);digitalWrite(AA2,HIGH);digitalWrite(BB1,HIGH);delta = emC-sum;break;//Phase6 C-Acase 6:digitalWrite(AA1,LOW);digitalWrite(BB1,LOW);digitalWrite(BB2,LOW);digitalWrite(CC2,LOW);digitalWrite(CC1,HIGH);digitalWrite(AA2,HIGH);delta = emB-sum;break;}if (Lastdelta < 0){if (delta > 0){Lastdelta=delta; //save the last deltafase= fase + 1;if (fase > 6) {fase = 1;}}}//Zero cross from - to +if (Lastdelta > 0){if (delta < 0){Lastdelta=delta;fase= fase + 1;if (fase > 6) {fase = 1;}}}//Zero cross from + to -}//Case endsint t =analogRead(IN); //From the potentiometer
//  Delay=map(t,0,1024,1,1000); //we obtain the delay speed using the potentiometer//we map the values from 1 to 1000 microsecondsSerial.println(t);} //loop ends
  • 🌿使用匠心科技BLDC相关资料中的stm32f103,无感无刷驱动程序,完全适配的上个人自制的驱动板,并且可以很平稳的驱动转起.来。具体资料详见上面链接。里面的驱动部分关键实现也是参考了德国MK电调项目相关内容。

🔰其他相关内容学习参考

  • 🌿对应无感无刷电机驱动,换相检测电路检测部分计算,可以进一步阅读:https://blog.csdn.net/qq_41100189/article/details/119832506

  • 🔖后续有新内容在补充更新。

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

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

相关文章

苍穹外卖项目---------收获以及改进(9-12)

①Spring Task-------实现系统定时任务 概念&#xff1a; 应用场景&#xff1a; 使用步骤&#xff1a; 实现订单超时和前一天派送中的订单的自动任务处理&#xff1a; Component Slf4j public class Mytask {Autowiredprivate OrderServiceimpl orderServiceimpl;/*** 处理订…

yarn 安装以及报错处理

前一种报错是由于没有安装yarn导致的&#xff0c;使用以下命令即可安装&#xff1a; npm install -g yarn 如果成功安装&#xff0c;将显示Yarn的版本号。 yarn --version 第二种报错是因为系统上的执行策略限制导致的。执行策略是一种安全功能&#xff0c;用于控制在计算机…

Kafka官方文档中文版+Kafka面试题详解!

你了解kafka吗&#xff1f;目前它在一线互联网公司以迅雷不及掩耳之势得到了广泛的应用。但究竟是什么呢&#xff1f;Kafka最初于2011年在LinkedIn开发&#xff0c;自那时起经历了很多改进。如今它是一个完整的平台&#xff0c;允许您冗余地存储荒谬的数据量&#xff0c;拥有一…

SH150S1光电吊舱

SH150S1光电吊舱 1产品应用 SH150S1是一款三轴三光吊舱&#xff0c;集成了最远测程达3.0km&#xff0c;精度小于2米的半导体激光测距机&#xff0c;640512高分辨率红外相机&#xff0c;30倍光学变倍可见光相机以及高稳定精度平台框架&#xff1b;可安装于中小型无人机&#x…

【每日刷题】Day40

【每日刷题】Day40 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 202. 快乐数 - 力扣&#xff08;LeetCode&#xff09; 2. 217. 存在重复元素 - 力扣&#xff08;Le…

vue2 报错,警告 解决方法 component name“Index“should always be multi-word

报错原因&#xff1a; 组件名称应该为俩个或俩个以上单词组成的&#xff0c;并且还要是大驼峰命名&#xff0c;例如&#xff1a;MyIndex&#xff0c;MyLogin等 解决方法一&#xff1a; 将组件名称改为俩个或俩个以上单词组成的名称&#xff0c;且为大驼峰命名&#xff0c;例如…

Postman基础功能-Collection集合和批量运行

一、Collection&#xff08;集合&#xff09;介绍 当我们对一个或多个系统中的很多接口用例进行维护时&#xff0c;首先想到的就是对接口用例进行分类管理&#xff0c;同时还希望对这批接口用例做回归测试。 在 Postman 中也提供了这样一个功能&#xff0c;就是 Collec…

免费的GPT4终于要来了!OpenAI直播发布会详细解读!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

Docker下载镜像出现“missing signature key”如何解决?

“missing signature key” 通常与 Docker 配置有关&#xff0c;具体是 Docker 试图验证镜像的签名但未能找到相应的密钥。这种情况可能发生在启用了 Docker Content Trust (DCT) 的环境中&#xff0c;DCT 是一种安全功能&#xff0c;要求所有镜像必须有签名才能拉取。 原因 …

刚刚OpenAI发布ChatGPT-4o模型,免费使用GPT4o并免费提供更多功能

就在今日凌晨1点&#xff0c;OpenAI举行了春季发布会&#xff0c;发布了GPT-4o 并免费提供更多功能。 亲测GPT-4o已经可以免费试用&#xff0c;每个人都可以使用它并从中受益&#xff0c;GPT4终于不再是少部分人的玩物。 点击加入ChatGPT4交流群&#xff1a;https://www.aijour…

微信小程序发送订阅消息sendMessage

微信小程序发送订阅消息sendMessage 请注意订阅消息一次性订阅只只能授权一次接受一条消息多次授权会累加接受次数&#xff0c;wx.requestSubscribeMessage调用授权 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放 //授权弹框&#xff0c;只弹出…

交通地理信息系统实习教程(二)

这篇文章服务于GIS背景用户以及有志于GIS的朋友 操作源数据位置&#xff1a;【免费】交通地理信息系统实习二源数据资源-CSDN文库 软件安装包位置&#xff1a;【免费】TransCad-交通地理信息系统软件资源-CSDN文库 一、最短路径分析 1.1软件启动说明 这里需要给出一个必要的…

硬件FMEA与软件FMEA的区别——FMEA软件

​免费试用FMEA软件-免费版-SunFMEA 在产品开发和制造过程中&#xff0c;失效模式与影响分析&#xff08;FMEA&#xff09;作为一种预防性的质量工具&#xff0c;对于确保产品性能和质量至关重要。然而&#xff0c;硬件FMEA和软件FMEA在应用和实践方面存在显著的区别。本文旨在…

基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统

阿里云向量检索 Milvus 版现已无缝集成于阿里云 PAI 平台&#xff0c;一站式赋能用户构建高性能的检索增强生成&#xff08;RAG&#xff09;系统。您可以利用 Milvus 作为向量数据的实时存储与检索核心&#xff0c;高效结合 PAI 和 LangChain 技术栈&#xff0c;实现从理论到实…

java面试题:判断字符串包含字母、数字、空格、符号的数量

在Java中&#xff0c;你可以使用正则表达式来检查字符串中包含多少个字母、数字、空格和符号。也可以使用基础api来实现业务逻辑&#xff0c;方法如下&#xff1a; 1 使用Character类的静态方法 以下代码定义了一个countCharacters方法&#xff0c;它遍历字符串中的每个字符&a…

解决:微信支付 由于商家传入的H5交易参数有误,该笔交易暂时无法完成,请联系商家解决

微信支付参数配置完成后请求报这个。在网上搜索后发现是ip配置的问题&#xff0c;我配置的是127.0.0.1。 而微信支付的时候需要获取用户的真实ip

Mysql关键字闭坑

Mysql关键字闭坑 INTERVAL 因为需求&#xff0c;所以数据设计时用到了一个INTERVAL字段,程序编译及启动都没有任何问题&#xff0c;但是到了查询的时候&#xff0c;直接控制台报语法异常&#xff0c;这就奇怪了&#xff0c;用的是MP插件作为查询&#xff0c;为啥报出语法错误&…

求职招聘平台小程序源码系统 附带源代码以及完整的安装部署教程

系统概述 求职招聘平台小程序源码系统是一款基于微信小程序的求职招聘平台&#xff0c;旨在为广大求职者和招聘企业提供一个高效、便捷的线上交流平台。该系统具备以下特点&#xff1a; 1.功能齐全&#xff1a;系统包含职位发布、简历投递、在线沟通、面试安排等求职招聘全流程…

Android Saving Activity State使用说明和注意事项

1、说明 在管理activity生命周期的简单介绍中提到当一个activity被暂停或停止时&#xff0c;该activity的状态被保留。因为当activity对象被暂停或停止时仍然保留在内存中&#xff0c;所有有关成员的信息和当前的状态仍然可用。这样&#xff0c;用户对该activity所做的任何更改…

笔记:完善python selenium 讯飞写作的整体自动化

昨天做得不太好,今天再来一次,我发现,只要写得多,一定会有发现。 1、加入本地目录,不要一直登录。 # 定义Edge浏览器的用户数据目录edge_user_data_dir = r"C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default"# 设置Edge选项edge_optio…