基于STM32F103的ACS712电流传感器使用教程
首先介绍一下我使用的板子和外设,首先是正点原子的ministm32,mcu为stm32f103rct6,使用的电流传感器为acs712霍尔电流传感器。
然后想要测量电流数据你还得需要一个电流互感器,我因为需要测量的是大电流所以购买的是转化比比较低的版本。
然后说说电流互感器的使用方法,一开始我直接将整根电线穿进去,发现没有电流的变化,后来经过老师指导发现你需要将插座导线的保护壳拆开,单独测量火线的值
如图所示,我购买的是10/5A,穿心3匝(如果1匝则直接将火线穿过即可),所以需要多绕两圈(棕色的是火线),然后将电流互感器上的导线接到霍尔电流传感器上(接哪一头影响不大,可所以接)。
然后讲讲霍尔电流测量电流的方法,理论上就是通过测量电流值,输出电压值,然后我们可以根据adc读取到的电压值结合原理图来反推电流值。如图所示(不同量程的图不同,根据自己购买的型号进行换算),举个例子,如果adc读取到3v电压,那么测量到的电流值大约为5A:
说完原理我们再来通过stm32cubemx来生成相关代码,这里我直接转载西瓜大大的文章,根据他的教程来即可生成代码
STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx_四臂西瓜的博客-CSDN博客_基于stm32的交流信号采集程序
在tim3的设置教程中根据自己需要的采样率进行修改,比如我需要的是10Khz,则将其修改为7200-1
这里只贴上需要修改的代码:分别在main.c的51和107行
uint16_t adc_buff[1000];//存放ADC采集的数据
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)adc_buff, 1000); //让ADC1去采集1000个数,存放到adc_buff数组里while (!AdcConvEnd) ; //等待转换完毕for (uint16_t i = 0; i < 1000; i++){//printf("\r\n电流数据为:\r\n"); printf("\r%.5f %.3f\r\n",i*0.00001,adc_buff[i] * 3.3 / 4095*5 - 2.480*5); //数据打印,查看结果}
则打印出来的0电流(即排插没有接其他电器)时数据如下,左边是时间,单位为s,右边为电流数据,单位为A,记得将波特率设置为115200,否则会乱码。
然后通过Python打印
import matplotlib.pyplot as plt
import numpy as npdata = np.loadtxt('computer.txt')plt.plot(data[:,0],data[:,1])
plt.xlabel("Time(s)")
plt.ylabel("Current(A)")
plt.show()
图片如下
该图为笔记本电脑充电时的数据。
测试完毕。
基于STM32F103的ACS712电流传感器使用教程相关推荐
- 基于STM32F103移植FreeRTOS教程
前言 本教程只针对移植实操,关于理论部分请另行百度学习. 本教程移植实操基于正点原子源码.教程手册进程移植. 移植实操 1.将正点原子跑马灯程序源码复制一份,添加一个文件夹对FreeRTOS源码进行管 ...
- 机智云代码移植_IoT开发者 | 基于STM32F103的机智云宠物屋外加4路继电器开源教程...
[ 写在前面 ] 自智云社区开辟IoT开源项目专区以来,一直有IoT开发者在贡献案例.玛莉甄选了一些具有代表性的案例分享给IoT爱好者们,本文亦如此. 若你有好的案例,想和IoT爱好者们分享,欢迎投稿 ...
- 基于STM32F103移植华为LiteOS物联网系统
基于STM32F103移植华为LiteOS物联网系统 本实验是通过学习野火的<物联网操作系统 LiteOS开发实战指南>参考学习的. 1.移植前的准备 LiteOS 的源码可从 LiteO ...
- 基于 stm32f103 芯片的直流电机驱动控制仿真系统
西电2022年A测(线上)题目 文章目录 前言 一.Keil5的安装 1.获取安装包 2.安装Keil5 3.运行注册机 4.安装器件库 二,运行工程文件,获取HEX可执行文件 1,获取工程文件 2. ...
- 基于stm32f103智能风扇,可以手动开关也可温控感应和红外感应。 有程序及原理图
基于stm32f103智能风扇,可以手动开关也可温控感应和红外感应. 有程序及原理图,有论文参考. 带有k5,proteus8等软件安装教程. ID:6915648239069102LSAMX
- php读取西门子plc_基于Socket访问西门子PLC系列教程(二)
本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...
- 《STM32库开发实战指南:基于STM32F103(第2版)》——2.1节仿真器简介
本节书摘来自华章社区<STM32库开发实战指南:基于STM32F103(第2版)>一书中的第2章,第2.1节仿真器简介,作者刘火良 杨森,更多章节内容可以访问云栖社区"华章社区& ...
- 【深度学习】基于PyTorch的模型训练实用教程之数据处理
[深度学习]基于PyTorch的模型训练实用教程之数据处理 文章目录 1 transforms 的二十二个方法 2 数据加载和预处理教程 3 torchvision 4 如何用Pytorch进行文本预 ...
- 【深度学习】基于Colab Pro的TPU训练模型教程(Tensorflow)
[深度学习]基于Colab Pro的TPU训练模型教程(Tensorflow) 文章目录 1 概述 2 对比 TPU 与 GPU 的计算速度 3 总结和简易的测试代码 4 为什么使用 TPU 1 概述 ...
- javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...
K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程 课程内容是关于Kubernetes微服务架构学习课程,基于K8S开展ASP.NET核心进行微 ...
最新文章
- Huawei FusionCompute安装体验
- java 字符串原子变量,如何在java中提供原子读/写2个变量?
- Spring学习框架图
- Python中元组的介绍以及常见操作
- 【python教程】IO文件操作的常见用法
- 卡尔曼滤波---实例讲解
- 打印show attend and tell的解码器网络结构
- poj2479与poj2593 , 同一道DP题
- jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本
- kotlin学习笔记——类、函数、接口
- jqGrid,REST,AJAX和Spring MVC集成
- 汇编语言复习摘要二——寄存器
- 支付宝工程师如何搞定关系数据库的“大脑”——查询优化器
- 如何在SQL Server数据库中加密数据
- 振型矩阵与正则振型矩阵
- HDU3787 A+B【进制】
- mysql企业版安装_mysql企业版怎么安装图解
- Project:圆柱滚子轴承接触表面应力计算——GB T18254-2002高碳铬轴承钢
- 谈谈自己对移动互联网的看法
- 贪心算法-会议安排问题