当前位置: 首页 > news >正文

单片机+微信小程序做示波器

 硬件设备1、手机带蓝牙功能,2,单片机最小系统+下载器,3、蓝牙模块,4,运算放大器,5、一些辅助件(电阻,实验板,电线等)

理论知识,1、单片机stm32F103c6最小系统(价格便宜、开发工具方便)

adc采样:最小系统外接8M晶振,adc时钟 12M/每个占采样时间1.5+转换时间12.5周期= 888kS/s

800k个点,如果一个周期用8个点描绘,那大约能测得100K的波形

2、蓝牙传输,采用的是MX-01P(价格便宜、使用方便),通过usart与单片机连接,频率采用的是115200Hz,大约每秒能付11K字节,因为每个采样点为12位占16位,也就是理论上说每秒传5K个采样点。不过这问题不大,我采用的是间断采样,

蓝牙与手机之间以蓝牙直连的方式,厂家宣传有40kB/s的速度,实际上测试每秒1K个采点,=16kB/s吧,不知道是哪里没调好,还是就这样

3、测压点电压:外测波形电路,先要将电压用电阻串,控制在-5~+5之间,再用运算放大器转成0~3.3V之间的波形,用模拟器做了一个两个模拟器结果都是一样的,波形是反相,不过只要在微信中运算一个就好。这个电路与网上搜索的有点改动,我觉得将测电路与单片机供电分开更保险一点。

运算放大器用的是LM324(拆机的)。1.2 MHz的带宽,小电压波动可以做到160k ,电压高就要降频率。

换算电压原理,是以R2、R3、R4通过的电流平衡为依据,但实测数据与仿真数据有偏差,找到一篇文章,不过能上传电子书了,截个图

        

 

4、微信小程序:功能连接蓝牙,发送收集指令,接收采样数据并画图,实测数据也差不多。

 adc值是0·4095 波形显示坐为0·200,计算方法为 y = ((4095 - (val))) * vertScale + vertOffset;

电压转换公式:maxVoltage = (5.287/3.3*4095-3.7*maxVoltage) * 3.3 / 4095;

至此,基本功能已经完成,后续的就优化代码了,

http://www.dtcms.com/a/283966.html

相关文章:

  • 深入解析:前端 localStorage 的读取是异步的吗?为什么硬盘 I/O 是异步的,而它却是同步的?
  • Linux 软件安装的四种方式详解
  • HTTP 状态码笔记
  • 网络原理 —— HTTP
  • uniapp用webview导入本地网页,ios端打开页面空白问题
  • 自定义 django 中间件
  • 《小白学习产品经理》第六章:方法论之SWOT分析
  • 3D工业相机是什么?如何选择和使用它?
  • docker安装与简单项目上手
  • 5. 实战项目类:《用TypeScript + Vite从零搭建企业级React应用》
  • Django由于数据库版本原因导致数据库迁移失败解决办法
  • 我的开发日志:随机数小程序
  • redis中间件
  • 手撕Spring底层系列之:后置处理器“PostProcessor”
  • Vmware虚拟机使用仅主机模式共享物理网卡访问互联网
  • 研报复现|格雷厄姆成长股内在价值策略
  • Error: llama runner process has terminated: exit status 2
  • 实习Last Day研二Last Day
  • 纯前端html实现图片坐标与尺寸(XY坐标及宽高)获取
  • JavaScript进阶篇——第七章 原型与构造函数核心知识
  • 深度学习 -- 初步认识Torch
  • vue中的this.$set
  • 在分布式系统中,如何保证缓存与数据库的数据一致性?
  • LVS实验
  • 板凳-------Mysql cookbook学习 (十一--------12)
  • LVS集群
  • Docker实战:使用Docker部署IT工具箱Team·IDE
  • Android15系统实现刷机防呆功能
  • Flutter在Android studio运行出现Error: Entrypoint is not a Dart file
  • C++网络编程 2.TCP套接字(socket)编程详解