- 博客(46)
- 资源 (11)
- 收藏
- 关注
原创 ADS1292心电采集模块集成单片机串口上位机
在以往的测试中,使用了模块和单片机分体的方式,接错线,杜邦线质量不佳,供电不足,电源芯片压降太大,电池耗电太快,这些问题确实需要解决,因此我们在第一版的基础上做了这些更改。硬件电路集成了stm32和usb转TTL芯片,这样在做心电实验的时候,可以简化测量环境,减少不要的干扰,这次使用的是QFN封装的,相较于另一种封装,体积小一些,如果手工焊接,难度会大不少。TI的ads1292是一颗优秀的模拟量采集芯片,如果你在做生物实验,会大概率使用这颗芯片的,价格还算可以,目前大约45元一颗。
2024-08-05 13:42:40
250
原创 Diptrace:Digital Power Supply (DPS) Project Briefing
在团队中,您必须为南极天气设计和构建数字电源子系统。•孔和焊盘直径:过孔必须为0.8 mm,铜焊盘必须为1.6 mm,用于连接的孔。导线或测试引脚的厚度必须为1.0 mm,铜垫厚度为1.8 mm。•轨道/过孔/焊盘到板的边缘分离:边缘2 mm范围内没有轨道。•用铜在板上写下你的板号(这些可以在上的团队列表中找到。记录您的设计,并严格证明已满足要求。•轨道与轨道/轨道与衬垫的间距:最小0.4 mm。•板类型:双面镀通孔,元件仅在一侧(顶部)。•设计数据,如原理图、布局和零件清单等。•铜浇注间距:1 mm。
2024-01-24 17:29:48
272
原创 stm32f103+ MX30102 +oled 血氧采样显示
因此,本文提出了一种基于STM32F103微控制器、MX30102血氧传感器和OLED显示屏的血氧采样显示系统,旨在降低血氧仪的成本,使其更适合家庭使用。在本系统中,STM32F103作为主控芯片,负责控制MX30102血氧传感器进行血氧采样,并将采样数据发送到OLED显示屏进行显示。MX30102是一款基于红外和光电二极管技术的血氧传感器,具有高精度、低功耗、小尺寸等特点。在本系统中,MX30102负责采集血氧饱和度数据,并通过I2C接口将数据发送到STM32F103微控制器。
2023-12-07 13:51:03
590
原创 stm32串口反相输出 SP3232输出反相解决办法
板子都做好了,也没法加反相器了,你要是用stm32f103 那就完了,这批板子废了。我现在知道f0可以串口反相输出,我用的是stm32l031,HAL库,也是可以反相输出的,标准3.5我也不知道怎么输出反相。//TX 反相输出使能。在用sp3232的时候发现输出的数据为反相,看了sp3232原理图后发现确实是反相,没招儿。第一句是改模式,第二句是使能tx 反相。HAL库只需要加两句话。
2023-12-01 16:46:06
635
原创 STM32F4 磁链观测器+PLL 无感无刷电机位置驱动
在前面几节我们介绍了基于stm32f1的定点运算的滑膜观测器反正切以及stm32f4的浮点运算滑膜+PLL的案例,大家反馈的还挺好,在做售后的过程中有小伙伴咨询了磁链观测器和隆伯格观测器,针对磁链观测器咨询的较多,我们调试了磁链的程序,以及在这一讲我们将为大家简单讲解一下磁链观测器的使用方法。如果观测出转子磁链的幅值偏大,会使得电机运行在弱磁状态,减小带载能力;视频中我们分别对电流波形进行了上位机显示,通过启动波形,电位器调速的波形来形象直观的感受磁链观测器的启动过程,以及带负载的情况。
2023-10-24 17:25:11
2354
4
原创 基于stm32的ADS1292R 心电波形采集
但是常规心电图一般需要通过大型医疗场所,如医院、疗养院的心电图机采集数据获得,其获得途径较难、价格较高、耗时长等弊端阻碍了心电图机的进一步应用。后来自己写了个上位机,可以显示出波形,4、LDO选用TPS73201MDBVREP,其差压非常低,在250mA满载的情况下只有40mV差压,其静态电流达到uA级,可以让干电源使用更长的时间。测试波形为心率,在程序中选择输出的波形,就可以选择心率还是呼吸波形了,也可以同时显示,用的是QFN封装的ADS1292,可以测心率,呼吸,心率。感兴趣的小伙伴可以试一试。
2023-08-29 17:32:58
3414
8
原创 stm32 无刷电机 V/F控制(无刷电机变频控制)以及与foc(矢量控制)的区别
无刷电机有三种控制方式,方波控制,foc控制以及变频控制,前两章我们讲解了方波和foc的控制方法,今天我们一起来讲一讲什么是无刷电机的变频控制(VF)以及变频控制的优势是什么。无刷电机变频控制可以根据不同的工作负载和环境条件自动调整电机的参数和运行状态,从而适应不同的工作场景,提高了系统的稳定性和可靠性。矢量控制通过精确的电流、电压控制,可以实现对电机转矩、速度和位置的高精度控制,适用于要求严格的高精度应用。矢量控制在控制过程中考虑电机的动态特性,能够在不同工况下保持稳定的运行,具有良好的响应性。
2023-08-24 13:00:11
4449
原创 stm32 滑膜观测器+PLL 锁相环 FOC 无感无刷电机控制
用锁相环控制系统替代串通的滑模观测器系统,通过滑模增益和反电动势的估算来减小系统误差与抖动,并根据锁相环控制系统推导出转角和转速公式,通过搭建的仿真模型可以看出,在PLL滑模观测器转速突变的情况下,能及时快速跟踪电机的实际转速和转角变化,通过PLL的滑模观测器比反正切的控制方法精准度更高,动态性能更好以及鲁棒性更强,可以满足电机实际控制性能的要求。上一期为大家介绍了滑膜观测器正反切的应用案例,收到不少小伙伴的反馈是否有PLL的案例,大概看了一下网上的资料,讲理论的很多,能转化成源码的几乎没有。
2023-06-18 22:13:07
9463
6
原创 STM32 使用IQmath实现SVPWM 正弦波无刷电机控制
带有浮点运算的MCU在市场上已经越来越多了,但是便宜好开发的却没有。可不可以使用我们常用的ST的103系列的MCU来做一个svpwm的控制器呢?当然是可以了,但是直接使用不太行,因为M3内核的MCU不具备浮点运算功能,F4系列的具有浮点运算功能,可惜价格不便宜,假货还挺多。在整个控制的过程中主要使用了__IQ(),没有调用其他的函数,下面我们看一下完成的控制部分代码。用于定点处理器的数学函数库,加快了计算浮点值的速度。我们这里主要是对电机控制的应用,下面我们一起看一下程序。电机的状态定义了一个enum。
2022-12-28 14:00:13
4369
1
原创 stm32 NRF24L01通信
实验目的:stm32开发板 + nrf24l01通信,通过两块开发板实现数据互传,并在串口调试助手上打印出来。
2022-05-17 10:27:37
1420
原创 stm32无感无刷电机——电位器转速控制
前言在上一讲我们讲了无感无刷电机控制的算法,其中我们通过按键的方式来控制启停和速度控制。在这一讲我们将为大家讲解如何使用电位器来控制无感无刷电机转速的变化。在这一讲中我们主要涉及以下几个功能,按键控制电机启停,电位器控制无刷电机速度变化,硬件环境我们使用的是KY_Motor的无刷电机开发板,基于stm32f103,支持单电阻,三电阻电流采样。链接:这一讲主要涉及接口应用程序的编写,因此较为简单。原理图中我们可以看到电位器的引脚为PC1,因此...
2022-04-10 00:21:43
6219
1
转载 在安装python 第三方库时遇到【WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, st】问题
在安装python 第三方库时遇到【WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, st】问题在命令执行窗输入:pip install Pyinstaller -ihttp://mirrors.aliyun.com/pypi/simple/ --trusted-hostmirrors.aliyun.com(其中的Pyinstaller是你需要下载的库或包名,根据自己需求自行更改即可)...
2022-03-28 16:19:20
10558
1
原创 stm32无感无刷电机驱动
前言:使用stm32如何去控制无刷电机?首先我们先要知道无刷电机的工作原理是什么,这样我们才能针对实际需求,对stm32 进行点对点的内部资源的调用,从而进行程序编写。我相信能搜到这个Blog的同学都对无刷电机有一个大概的了解,但是具体的使用细节和原理,可能不太清楚。无刷电机的工作原理。...
2022-02-26 21:48:21
34742
15
原创 STM32+ze-08甲醛传感器使用教程
新房子快下来了,装修后怕甲醛影响身体,便决定自己动手做一个甲醛传感器检测,本来很简单的一个东西,做了快一个月了,简直是累死个人,下面听我慢慢给大家道来。 硬件平台:stm32f103c8t6,甲醛传感器 程序功能: uart2 与传感器通信,将采集到的数据通过uart1打印出,通过串口调试助手便可看到。 首先把程序先给大家,方便自己搭建环境测试一下传感器是否正常工作。 关注微信公众号:广乙电子(dlrcclub),回复关...
2021-09-08 15:05:17
9060
8
原创 stm32 mpu6050 舵机云台支架跟随
硬件平台:stm32f103c8t6传感器:mpu6050两轴舵机支架。最近的项目涉及到了运动控制,无刷电机,有刷电机,舵机,都在最近轮番登台。本身也是做电机控制的,对这些电机也都比较熟悉。在项目中用到了一个两轴舵机云台支架。感觉挺有趣,结合mpu6050传感器,做一个跟随角度运动的两轴云台。实验效果:在讲原理之前,先将源码送给大家,方便大家学习和测试。关注微信公众号:广乙电子(dlrcclub),回复关键字:mpu605......
2021-08-26 11:46:24
7669
4
原创 STM32 舵机控制器
这节的内容将为大家介绍用stm32单片机做一个舵机控制器,通过旋转电位器,来控制舵机的输出角度。 老规矩,先将源码工程拿出来跟大家一同分享, 关注微信公众号:广乙电子(dlrcclub),回复关键字:舵机测试仪。 在讲源码之前我们先复习一下舵机的控制原理,在频率50hz下,给一个0.5ms-2.5ms脉宽的占空比,就可以对舵机进行一个45°-180°的转动。通过单片机我们该如何实现呢?1、配置ADC模块,对电位器进行模拟量...
2021-08-02 17:22:00
5953
15
原创 stm32 IIC 协议控制PCA9685舵机驱动板
这篇教程与网上的大部分教程都不相同,着重讲述如何使用编程PCA9685,而不是着重讲述原理,最后你还是一头雾水。这是一篇教你如何如何输出固定舵机角度,如何移植程序,从PCA9685的原理到如何移植的教程,在动手中学习理论。单片机型号:stm32f103c8t6使用stm32来控制一个舵机并不是难事,但是如果控制多个舵机,那硬件资源就显得捉襟见肘了。因此,必须使用神器,PCA9685了,相信你能主动上网搜索PCA9685,也一定知道PCA9685是多牛了,我就不去转述了。老规矩,将源码呈上
2021-07-30 13:53:35
14775
36
原创 Stm32F103 IIC oled 程序移植 完整工程 代码
这个教程不是千篇一律的教你去了解OLED原理,什么是IIC的,这些概念。学过单片机的,都知道什么是IIC,你可能是初学者,对IIC概念了解,但是不熟练应用,也可能初次使用oled,看着显示效果很棒,想亲自动手试一试,那么,你来对地方了。废话不说,先把完整工程文件赠与大家,然后在给大家讲解如何移植这个程序。关注微信公众号:广乙电子(dlrcclub),回复:IIC_OLED,就会弹出下载链接。在移植之前我们先介绍一下OLED屏的取字模软件怎么配置。配置不对的话,会显示乱码。我们使用的软件叫
2021-07-23 14:02:09
3055
6
原创 无刷电机参数测量方法
在进行电机开发时需要知道手中电机的参数,不同无刷电机的参数不一样,在进行FOC算法驱动时,电机参数的正确性尤为重要。一般这些参数在买电机时厂家会提供,如果厂家不提供,可以通过以下方法去测量。主要测量以下参数:1.电机的极对数。2.电阻。3.电感。4.反向电动势。5.霍尔偏移角度。1.电机电阻(Rs): 相电阻Rs:万用表测电机两相电阻RL,可以算出RS=R...
2019-08-18 15:42:37
18735
4
原创 基于STM32的无刷电机驱动板 无感/有感制作
这些年做了好多无刷电机控制器,从航模的到工业应用的,从开源到闭源,从高电压到低电压,从大电流到低电流的,林林总总。青春都献给了电机驱动器,因为有多年的经验积累,利用业余时间,零零碎碎花了大约1个月时间,总算像样的做出来了。期间做错了一版,导致工期延期。 先来看一下板子机械尺寸和电气参数。尺寸10cm x 8cm,最大输入电压28v(可改为45v输入),额定输入电压为24v,...
2019-08-14 19:33:09
32161
9
翻译 功能翻译
1、硬件和软件都是开源的。由于存在大量的CPU资源,定制的可能性几乎是无止境的。2、STM32 F4微控制器。3、DRV8302 MOSFET驱动器/降压转换器/电流分流放大器。4、Irfs75 30 MOEFET(在同一封装中的其他FET也适合)。5、5V 1A输出的外部电子产品从降压转换器集成在DRV8302上。6、电压:8V至60V(3S至12S LIPO安全)。7、...
2018-11-05 11:16:45
567
原创 STM32 定时器中断学习笔记
在stm32中,定时器相关的库函数主要集中在固件库文件 stm32f10x_tim.h 和 stm32f10x_tim.c 文件中,所以在进行定时器方面的处理时,需要加载这两个文件进来。在进行定时器操作时,一般按如下步骤来进行: 1、打开相关外设的时钟。 以定时器TIM3为例,由stm32的时钟树可以看到,TIM3时钟挂接在APB1上面,所以打开TIM3时钟时使用RCC_APB1Periph...
2018-03-23 13:53:50
558
原创 STM32 外部中断使用方法总结
STM32 中断分为外部中断,定时器中断、串口中断。虽然名字不同,但是原理都是相同的,这一节我们将主要介绍一下外部中断以及中断函数的编写。按照如下步骤去编写函数和配置函数即可完成对外部中断函数的配置。第一步:配置GPIO,设置为中断模式。第二部:配置中断函数 1、使能IO口复用功能,选择带有中断的引脚。 2、设置外部中断结构体成员。 ...
2018-03-23 13:18:55
13555
4
转载 STM32的SWD调试方式
我们比较常用的是Jlink下载器 ,这种下载器有一个缺点就是使用的Jtag 20PIN接口,太多的PIN会导致一些小型的PCB板很拥挤,也会增加布线的难度。 而使用SWD接口下载调试,只需要要使用4个PIN: GND, RST, SWDIO, SWDCLK ,而且下载速度可以达到10M/s,优势显而易见。SWD 仿真模式概念简述 一、SWD 和传统的调试方式区别SWD 模式比 JTAG 在高速模...
2018-03-21 17:13:53
12272
2
转载 C语言 volatile 学习
表示一个变量也许会被后台程序改变,关键字 volatile 是与 const 绝对对立的。它指示一个变量也许会被某种方式修改,这种方式按照正常程序流程分析是无法预知的(例如,一个变量也许会被一个中断服务程序所修改)。这个关键字使用下列语法定义:[cpp] view plain copyvolatile data-definition; ...
2018-03-16 14:43:55
198
转载 16道嵌入式C语言面试题(经典)
预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何...
2018-03-16 14:38:57
7853
2
转载 C 语言结构体应用与例子
1.结构体概念 2. 结构体声明 3. 结构体定义 5. 结构体变量成员的引用 6. 结构体变量的赋值 7. 结构体变量的初始化 8. 结构体的嵌套1.结构体概念C语言中引入了一种构造出句类型成为结构体,他是由若干个成员构成,成员本身可以是基本数据类型,也可以是其他构造类型,他相当与高级语言中的记录,类似与java高级语言中的实体类。可以表示一些复杂的数据类型;类似:struct student{...
2018-03-16 13:26:12
735
原创 C语言 typedef struct 应用及例程
struct abc{int name;char sex;int age;}ABC;struct ABC m,n;typedef struct abc{int name;char sex;int age;}ABC;ABC m,n;是将结构体abc类型重新起个名字为ABC,以后再定义同一类型的变量时,可以写成:ABC m,n;...
2018-03-16 10:20:51
604
原创 C语言复杂类型说明
我们经常遇到一些复杂的指针类型说明,很多初学者可能感觉有点蒙,其实按照一个法则来分析,就会觉得一点都不难法则:从变量名开始,按照结合的优先级,一步一步来分析说明:1、[]的优先级大于* 2、()的优先级大于指针原则:1、指针与A结合,则指向所指向的内容是A 2、数组与A结合,则数组中的每一个元素的数据类型都是A 3、函数的标准形...
2018-03-15 17:14:24
531
原创 C语言条件编译详解
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定...
2018-03-15 15:35:18
298
原创 C语言条件编译例程
1.条件编译概念:一般情况下,源代码文件中的所有行都参加编译,但有时需要指定一部分代码在某个条件下才被编译,这就叫做条件编译。2、条件编译详解条件编译发生在预处理阶段,在C中,主要通过#if、#elif、#else、#ifdef、#ifndef、#endif来给一段代码附加上编译条件,然后预处理器收集满足条件的可以进行编译的代码,这样经过预处理,不满足条件的代码就不会被编译。3.预处理指令用法可以...
2018-03-15 10:53:24
1182
原创 C/C++中auto、static、register、extern关键字区别小结
1. 说明 以上四种都是变量存储说明符,因为C/C++语言在变量定义时候的完整语法是: [存储说明符] [数据类型] [变量名称] [=初始化]; 因为大多我们声明的变量都是auto变量,而存储说明符默认即auto关键字,所以大多情况下我们省略了auto关键字。例如: int nNum = 5; 实际定义的完整变量语句为: auto int nNum =5; 下面我...
2018-03-15 10:15:21
272
原创 c语言中 extern 的应用和举例
1.extern:外部声明用的。用来声明外部函数和变量定义。2.extern int total 表示int total这个变量在别的函数中被定义过。举例:例如,你在1.C中定义了一个函数和变量:void fun1(void);int a = 0;而你要在2.c中调用 fun1(),并且读取a的值,那么需要再2.c的头部如下外部声明:extern void fun1(void);extern in...
2018-03-15 10:13:12
1225
原创 C语言中 static 应用详解
1、如果定义的static变量为全局变量 (1)这个static变量加载运行时会被存放在static数据区,并且会被初始化; (2)在一个大工程中假如有很多.c文件,假如这个变量被定义为static那么它的可见区域仅仅在当前文件,对于其他.c文件不可 见。2、如果用static修饰函数 这个函数只在当前的.c文件中可见,在其他.c文件中不可见。3、如果static变量为函数体里面的...
2018-03-15 09:29:37
292
转载 ISP 和IAP 原理与区别
1 ISP和IAP的工作原理 ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。 IAP的实现相对要复杂一些,在实现IAP功能时, 单片机内部一定
2018-01-27 10:03:34
12122
原创 STM32 串口中断总结
本文以USART1为例,叙述串口中断的编程过程。1、先来讲述一下在应用串口中断时涉及到的一些库文件。首先对于STM32外设库文件的应用编程,misc.c和stm32f10x_rcc.c是肯定要添加到。接下来就是我们要用到的相关外设了。毫无疑问,串口文件stm32f10x_usart.c是必须的。串口通信是对通用GPIO端口引脚的功能复用,所以还需要stm32f10x_gpi
2017-12-25 17:03:17
53133
翻译 伺服电机驱动器简介
前言:工程师使用伺服电机来实现像机器人,自动化和数控制造这些需要精密运动的应用。像RC伺服电机,Mechaduino是一款价格便宜,开源,工业伺服电机。产品特点:位置,转矩,速度和自定义模块设计要点:坐标,速度,转矩环路;插入式兼容与步进电机;I2C,串行输入;定制/开源能够访问内部变量;透明和用户自定义的控制算法(商业电机往往缺乏这一点);BDC电机的
2017-12-19 15:26:07
10289
原创 Micro Python 入门教程---第三个Micro Python LCD5110显示6x8字符
TPYboard控制LCD5110显示6x8字符先看一下LCD5110针脚含义吧(注意:LCD5110的针脚有些不一样的)TPYBoard的针脚与5110的针脚对应关系如下:TPYBoard LCD5110 memo————————————————————————————# any Pin => RST R
2017-12-16 20:00:32
2014
实验1跑马灯-库函数操作.rar
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人