矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 32095|回复: 83

【参赛】简易电容表

  [复制链接]
     
发表于 2019-11-26 21:17:53 | 显示全部楼层 |阅读模式
本帖最后由 yjmwxwx 于 2019-11-26 21:24 编辑

前段时间自制了一个电容表,虽然我能力有限但是非常喜欢DIY,所以也想展示下自己做的这个小制作,自己一个人搞也没人交流,做出来也没人愿意看实在没意思,在专业人员看来我做的东西都是垃圾,我也实在没办法,我初中都没毕业,用到的技术全都是靠着爱好自学的,由于水平有限也没电容表或者电桥对比,只有几个电容也不知道标准不标准,我不懂模拟电路,这个电容表电路量程切换和放大部分采用许老师的设计,去掉后面的带通滤波和模拟监相部分,直接采用两个ADC口同步采集,程序是我自己写的,我做了下面这些更改,单片机采用2元的STM32F030F4P6,10K正弦波采用软件生成100点正弦表,定时器输出SPWM,每个点触发一次ADC采样,采集100点,因为ADC只能采集正电压所以打开反相再采集100点,上臂下臂分别采集两次,一共采集四次合成两个完整正负电压的表,再用软件生成一个100点正弦和余弦表,把前面生成的电压表的100个数据分别和正弦余弦表里面的数据相乘,再把200个和正弦余弦表相乘的结果相加,100个和正弦表相乘累加的是虚部,100个和余弦表相乘累加的是实部,上面其实就是DFT算法,全部采用定点计算,得到上臂实部虚部,下臂实部虚部四个数据,下面公式计算:
100×((−1287−458i)÷(277−813i))  

100是下臂电阻阻值,-1287是上臂实部,-458是上臂虚部,227是下臂实部,-813是下臂虚部分

等于:
2.149253489−159.034862505i 单位欧姆
前面的是电阻后面带i的是电抗
3.14×2×10000= 62800
10000是正弦波频率10K,这个电容表只有10K的频率,这个频率通过定时器计算的,可能也有误差我没有表能测。
最后用1÷(62800×159)=电容,单位F,159是电抗
程序计算的是串联阻抗,全部用的定点数比较麻烦还容易溢出,因为水平有限没写过浮点数的各种运算的
函数。

放大部分虽然设置了4个档但是只用了29K的,量程也只设置了3.4欧、100欧、1K欧、10K欧、100K欧档位,依次用液晶显示的1-5代表,量程00是100欧档。

截图_2019-11-26_19-05-10.png

按键2切换电感和电容测量,采用手动量程,按下按键1慢慢自增加。

没有校准程序,由于我只有一个20M示波器和万用表,也没有标准件,再加上水平差所以这个表测量误差很大,究竟多大我也没有别的测量设备对比,由于没办法对比,也不能确定我写的程序用DFT计算实部虚部有没有问题,电容测量范围只测量过最大330uF,最小22pF,测量电容的时候要使电抗比下臂电阻大才准确,不然正弦波就变形了,我做的东西基本没有实用的,这个制作算是能简单测量几个电容了,LCD显示的电抗、电阻、Q值、都可能有问题,只有电容显示的大体差不多,我能力有限,程序全部开源,请懂模拟电路和程序的师傅帮忙改进。

正弦余弦表生成程序

  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. void main() {
  5.   float m,pi,sr,si;

  6.   int rr,ii, n,i;
  7.   n=100;
  8.   m=2;
  9.   pi=3.141592;   
  10.         for(i=0;i<n;i++){
  11.            sr=cos(2*pi*i*m/n);
  12.            si=-sin(2*pi*i*m/n);
  13.            rr=sr*0x8000;
  14.            ii=si*0x8000;
  15.            printf("0x%04X,0x%04X,",rr,ii);
  16. }
  17.         printf("\n");
  18. }
  19.        
复制代码






单片机固件和源代码下载

17.zip (12.58 KB, 下载次数: 521)






编译器安装,下载GNU binutils或者安装ARM-NONE-EABI
GNU binutils编译命令
  1.     ../configure --target=arm-none-eabi --prefix=/home/yjmwxwx/220g/ruanjian/chengxu/arm/bianyiqi/bintuils/

  2.     make

  3.     make install
复制代码


三个窗口从上到下分别是JLINK调试窗口、编译窗口、EMACS编辑器窗口,要编译程序很容易只要再编译器窗口输入make就行了,没有按钮非常简单。

截图_2019-11-26_20-38-57.png


电路图

lcr.png


lcr.pdf (89.97 KB, 下载次数: 558)


视频

https://v.youku.com/v_show/id_XNDQ0ODk3MzUzMg==.html?spm=a2h3j.8428770.3416059.1


实物图,由于不会设计PCB,家里只有白铁皮,所以电子元件都直接焊在外壳上,今年我买了1千米细电线,所以不用用纸卷了。

截图_2019-11-26_21-03-08.png

截图_2019-11-26_21-03-59.png

截图_2019-11-26_21-04-17.png

截图_2019-11-26_21-04-33.png

截图_2019-11-26_21-04-50.png

截图_2019-11-26_21-05-43.png

截图_2019-11-26_21-06-50.png

截图_2019-11-26_21-08-08.png

截图_2019-11-26_21-08-29.png

截图_2019-11-26_21-09-00.png

截图_2019-11-26_21-09-00.png

截图_2019-11-26_21-09-16.png

截图_2019-11-26_21-09-31.png

截图_2019-11-26_21-09-46.png

截图_2019-11-26_21-10-02.png

截图_2019-11-26_21-10-16.png









补充内容 (2021-4-30 11:26):
第二版做的也不怎么好
http://www.crystalradio.cn/forum ... =1895653&extra=

补充内容 (2022-2-19 15:55):
277误打成227
应该是

octave:16> a
a = -1287
octave:17> b
b = -458
octave:18> c
c =  277
octave:19> d
d = -813
octave:20> (a*c+b*d)/(c^2 + d^2) *100
ans =  2.1493
octave:21> (b*c-a*d)/(c^2 + d^2) *100
ans = -159.03

评分

7

查看全部评分

     
发表于 2019-11-26 21:48:05 | 显示全部楼层
我要向你学习,程序玩得那么溜,电脑水平也不会太差,试试立创EDA,画板子上手很容易,现在打板也免费
回复 支持 1 反对 0

使用道具 举报

     
发表于 2019-11-26 21:34:05 | 显示全部楼层
佩服,那么多线。

服了。
回复 支持 反对

使用道具 举报

     
发表于 2019-11-27 11:55:34 | 显示全部楼层
厉害啦!楼主风格依旧
别说初中生,就是大分部本科生都做不出来您这东西。
回复 支持 反对

使用道具 举报

     
发表于 2019-11-27 14:46:12 来自手机 | 显示全部楼层
不错,要是硬件电路懂的更多的话,可以弄很多东西了
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-27 19:09:46 | 显示全部楼层
road 发表于 2019-11-26 21:48
我要向你学习,程序玩得那么溜,电脑水平也不会太差,试试立创EDA,画板子上手很容易,现在打板也免费

我写单片机程序也是入门级,也没老师教,完全瞎摸索,从来没画过PCB,现在做电路板价格便宜了,真应该学学了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-27 19:10:09 | 显示全部楼层
scu319hy 发表于 2019-11-27 11:55
厉害啦!楼主风格依旧
别说初中生,就是大分部本科生都做不出来您这东西。

谢谢鼓励了,您才是真的厉害,软硬件连机械都能自己做,我做的这个就是ADC测个电压,而且做的还不实用,电容也测不准,也不知道怎么改。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-27 19:14:06 | 显示全部楼层
分立元件 发表于 2019-11-27 14:46
不错,要是硬件电路懂的更多的话,可以弄很多东西了

感觉硬件比软件难多了,需要各种仪器测量还要买电子元器件,还要会物理和数学,我这两样非常差,也不知道从哪里学。
回复 支持 反对

使用道具 举报

     
发表于 2019-11-27 19:45:04 来自手机 | 显示全部楼层
yjmwxwx 发表于 2019-11-27 19:14
感觉硬件比软件难多了,需要各种仪器测量还要买电子元器件,还要会物理和数学,我这两样非常差,也不知道 ...

建议你使用仿真器学习,能学到很多东西,不用买元件和仪器!
比如:Multisim14,我用这个学到不少知识,发现了以前很多没有想明白的事,在里面都搞清楚了,
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-27 23:48:07 | 显示全部楼层
分立元件 发表于 2019-11-27 19:45
建议你使用仿真器学习,能学到很多东西,不用买元件和仪器!
比如:Multisim14,我用这个学到不少知识, ...

这个我也安装了,但是不怎么会用,等用到的时候你教教我怎么用。
回复 支持 反对

使用道具 举报

     
发表于 2019-11-28 00:01:48 来自手机 | 显示全部楼层
yjmwxwx 发表于 2019-11-27 23:48
这个我也安装了,但是不怎么会用,等用到的时候你教教我怎么用。

你要学那些基本的元件后在弄这个比较好
回复 支持 反对

使用道具 举报

     
发表于 2019-11-28 09:52:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-28 16:15:37 | 显示全部楼层
分立元件 发表于 2019-11-28 00:01
你要学那些基本的元件后在弄这个比较好

我也不知道从哪里学起
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-11-28 16:15:56 | 显示全部楼层
书到用时 发表于 2019-11-28 09:52
楼主是我矿坛最佩服的人之一。

谢谢您的鼓励
回复 支持 反对

使用道具 举报

     
发表于 2019-11-28 16:42:54 | 显示全部楼层
会写程序的都是高手
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-25 20:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表