首先介绍一下我使用的板子和外设,首先是正点原子的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电流传感器使用教程相关推荐

  1. 基于STM32F103移植FreeRTOS教程

    前言 本教程只针对移植实操,关于理论部分请另行百度学习. 本教程移植实操基于正点原子源码.教程手册进程移植. 移植实操 1.将正点原子跑马灯程序源码复制一份,添加一个文件夹对FreeRTOS源码进行管 ...

  2. 机智云代码移植_IoT开发者 | 基于STM32F103的机智云宠物屋外加4路继电器开源教程...

    [ 写在前面 ] 自智云社区开辟IoT开源项目专区以来,一直有IoT开发者在贡献案例.玛莉甄选了一些具有代表性的案例分享给IoT爱好者们,本文亦如此. 若你有好的案例,想和IoT爱好者们分享,欢迎投稿 ...

  3. 基于STM32F103移植华为LiteOS物联网系统

    基于STM32F103移植华为LiteOS物联网系统 本实验是通过学习野火的<物联网操作系统 LiteOS开发实战指南>参考学习的. 1.移植前的准备 LiteOS 的源码可从 LiteO ...

  4. 基于 stm32f103 芯片的直流电机驱动控制仿真系统

    西电2022年A测(线上)题目 文章目录 前言 一.Keil5的安装 1.获取安装包 2.安装Keil5 3.运行注册机 4.安装器件库 二,运行工程文件,获取HEX可执行文件 1,获取工程文件 2. ...

  5. 基于stm32f103智能风扇,可以手动开关也可温控感应和红外感应。 有程序及原理图

    基于stm32f103智能风扇,可以手动开关也可温控感应和红外感应. 有程序及原理图,有论文参考. 带有k5,proteus8等软件安装教程. ID:6915648239069102LSAMX

  6. php读取西门子plc_基于Socket访问西门子PLC系列教程(二)

    本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...

  7. 《STM32库开发实战指南:基于STM32F103(第2版)》——2.1节仿真器简介

    本节书摘来自华章社区<STM32库开发实战指南:基于STM32F103(第2版)>一书中的第2章,第2.1节仿真器简介,作者刘火良 杨森,更多章节内容可以访问云栖社区"华章社区& ...

  8. 【深度学习】基于PyTorch的模型训练实用教程之数据处理

    [深度学习]基于PyTorch的模型训练实用教程之数据处理 文章目录 1 transforms 的二十二个方法 2 数据加载和预处理教程 3 torchvision 4 如何用Pytorch进行文本预 ...

  9. 【深度学习】基于Colab Pro的TPU训练模型教程(Tensorflow)

    [深度学习]基于Colab Pro的TPU训练模型教程(Tensorflow) 文章目录 1 概述 2 对比 TPU 与 GPU 的计算速度 3 总结和简易的测试代码 4 为什么使用 TPU 1 概述 ...

  10. javaweb k8s_K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程...

    K8S微服务核心架构学习指南 ASP.NET Core微服务基于K8S 架构师必备Kubernetes教程 课程内容是关于Kubernetes微服务架构学习课程,基于K8S开展ASP.NET核心进行微 ...

最新文章

  1. Huawei FusionCompute安装体验
  2. java 字符串原子变量,如何在java中提供原子读/写2个变量?
  3. Spring学习框架图
  4. Python中元组的介绍以及常见操作
  5. 【python教程】IO文件操作的常见用法
  6. 卡尔曼滤波---实例讲解
  7. 打印show attend and tell的解码器网络结构
  8. poj2479与poj2593 , 同一道DP题
  9. jstack 脚本 自动日志_用jstack自动化捕抓异常java代码脚本
  10. kotlin学习笔记——类、函数、接口
  11. jqGrid,REST,AJAX和Spring MVC集成
  12. 汇编语言复习摘要二——寄存器
  13. 支付宝工程师如何搞定关系数据库的“大脑”——查询优化器
  14. 如何在SQL Server数据库中加密数据
  15. 振型矩阵与正则振型矩阵
  16. HDU3787 A+B【进制】
  17. mysql企业版安装_mysql企业版怎么安装图解
  18. Project:圆柱滚子轴承接触表面应力计算——GB T18254-2002高碳铬轴承钢
  19. 谈谈自己对移动互联网的看法
  20. 贪心算法-会议安排问题

热门文章

  1. CODESYS官方教程“您的第一个CODESYS程序”的一些注解
  2. CGAL license说明
  3. CIS Benchmarks
  4. 最新服务器处理器天梯,服务器CPU性能排行榜天梯图(双路/三路/四路)
  5. Android 清理app缓存数据的方法
  6. python scrapy 爬取steam游戏
  7. python调用IP摄像头
  8. 电脑控制android手机神器,scrcpy
  9. Oracle中的函数(详细!!!)
  10. Unity项目的框架设计