硬币检测电路设计
一、来源:凡亿教育
第一场:硬币检测装置原理分析、电路设计以及器件选型_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Zh4y1V7Px/?p=1&vd_source=43eb1cb50ad3175d7f3b9385905cd88f
二、开发软件:KEIL MDK
三、主控芯片:STM32F103C8T6
四、电路原理图设计、PCB绘制:立创EDA
五、涉及成品模块:0.96 inch OLED , STM32F103C8T6最小系统板
六、实物测试视频:
硬币检测电路测试视频
电路上有三个按键,第一个是进入校正模式(进入后功能变为切换要校正的硬币),第二个为更新硬币电压值(更新时需要将硬币放到线圈上),第三个按键为跳出校正(掉电不保护)
七、程序开源地址:
硬币检测电路/程序 · lovefoolnotme/开源项目 - 码云 - 开源中国 (gitee.com)
https://gitee.com/lovefoolnotme/open-source-projects/tree/master/%E7%A1%AC%E5%B8%81%E6%A3%80%E6%B5%8B%E7%94%B5%E8%B7%AF/%E7%A8%8B%E5%BA%8F
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "bmp.h"
#include "ADC.h"
#include "key.h"
#include "IR2104.h"extern uint8_t DMAEndFlag; //0:DMA结束
extern uint8_t MeasUpdateFlag; //测量更新标志,大约1s更新一次
extern uint16_t voltage; //电压值,3位小数uint8_t key_value=0;
uint8_t jiaozheng=0;
//1角,5角,1元
uint16_t nomoney =1190 ;
uint16_t yj =1044 ;
uint16_t wj =936 ;
uint16_t yy =577 ;
//uint16_t wj_yy =650 ;
//uint16_t wj_yj =886 ;
//uint16_t yj_yy =677 ;
uint16_t gap =50 ;
int main(void)
{ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级delay_init(); //延时函数初始化 Key_Configuration();ADC_Config();IR2104_Config();//加这个延时是等待OLED屏幕启动delay_ms(100); OLED_Init();OLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示OLED_Clear();OLED_Refresh();ADC_SoftwareStartConvCmd(ADC1, ENABLE);while(1){
//判断ADC的DMA传输是否完成ADC_DMA_End_Detection(); if(!DMAEndFlag) VI_Seperation();if(!MeasUpdateFlag){
//计算电压,单位mv VI_Calc();
//显示电压,单位mv OLED_ShowNum(88,10,voltage,5,8,1);}//扫描按键
key_value=Key_Scan(); /*******************************************************校正开始*******************************************************/
//校正电压值
if(key_value==1)
{while(Key_Scan()==1); //等待松开按键key_value=0;//开始校正电压值OLED_Clear(); while(1){key_value=Key_Scan();while(Key_Scan()!=0); //等待松开按键 ADC_DMA_End_Detection(); if(!DMAEndFlag) VI_Seperation();if(!MeasUpdateFlag){ VI_Calc();}//校正yijiao if(jiaozheng==0){ OLED_ShowString(0,0,"jiaozheng!",8,1);OLED_ShowString(0,30,"yijiao:",8,1);OLED_ShowNum(80,30,yj,4,8,1);OLED_ShowString(0,50,"voltage:",8,1);OLED_ShowNum(80,50,voltage,4,8,1);OLED_Refresh();}//校正wujiaoelse if(jiaozheng==1){OLED_ShowString(0,0,"jiaozheng!",8,1);OLED_ShowString(0,30,"wujiao:",8,1);OLED_ShowNum(80,30,wj,4,8,1);OLED_ShowString(0,50,"voltage:",8,1);OLED_ShowNum(80,50,voltage,4,8,1);OLED_Refresh();}//校正yiyuanelse if(jiaozheng==2){OLED_ShowString(0,0,"jiaozheng!",8,1);OLED_ShowString(0,30,"yiyuan:",8,1);OLED_ShowNum(80,30,yy,4,8,1);OLED_ShowString(0,50,"voltage:",8,1);OLED_ShowNum(80,50,voltage,4,8,1);OLED_Refresh();}switch(key_value){case 0: break;//进入下一校正前清除屏幕case 1: jiaozheng++;if(jiaozheng>2) jiaozheng=0; OLED_Clear();break;//校正值保存case 2: {if(jiaozheng==0) yj=voltage;else if(jiaozheng==1) wj=voltage;else if(jiaozheng==2) yy=voltage; else ;};break;case 3: break;default:break; }//退出if(key_value==3){jiaozheng=0;key_value=0;OLED_Clear();break;}} }
/*******************************************************校正结束*******************************************************///1. 1角硬币放在线圈上if(((yj-gap)<voltage)&&(voltage<(yj+gap)))OLED_ShowPicture(0,0,64,64,yijiao,1);
//2. 5角硬币放在线圈上else if(((wj-gap)<voltage)&&(voltage<(wj+gap)))OLED_ShowPicture(0,0,64,64,wujiao,1);
//3. 1元硬币放在线圈上else if(((yy-gap)<voltage)&&(voltage<(yy+gap)))OLED_ShowPicture(0,0,64,64,yiyuan,1);
//4. 没有硬币放在线圈上elseOLED_ShowPicture(0,0,64,64,college_logo,1);//刷新屏幕 OLED_Refresh();}
}
八、原理图、PCB开源地址:
https://oshwhub.com/talented_fish/fan-yi-jiao-yu-ying-bi-jian-ce-dian-lu
http:// https://oshwhub.com/talented_fish/fan-yi-jiao-yu-ying-bi-jian-ce-dian-lu
九、部分踩坑:购买的LDO,AMS1117 12V-5V存在质量问题,输入12V直接损坏,后面发现是质量问题后使用10V输入电路也可正常工作。
十、原理图设计讲解与经验(凡亿教育):
10.1 检测的原理:涡流效应


在图中,可以看到,线圈中加入交变电流时,可以产生涡流效应,类似于变压器,硬币类似于负载,当硬币加入时相当于负载接入,电流会增大,这个时候后边的电流增大前边的电流也会变大,检测前边电路的电压即可知道是否有负载接入,主要是看电压值,所以其实这个电路不仅可以检测硬币,还可以检测其他金属物品,但是需要自己指定。我们将1角、5角、1元硬币分别放上线圈查看前边电路的电压检测值即可知道不同硬币在电路中对应的电压值,并且修改程序来判别电压达到判别硬币的功能。
10.2 检测电路的设计

先从后面开始看,并联的C1、C2合计为2UF,然后我们会在线圈接口接一个14UH的线圈(相当于电感),此时C1、C2和线圈构成一个LC并联,R1焊接1R电阻,C3电容是用来隔离直流(到C3的型号是一个交流和直流叠加的型号),C5焊接470NF电容,L3焊接68UH电感,C5和L3构成一个LC串联,R23焊接75R3W的金属膜电阻。为什么这么设计:
(1)为了节能。(LC并联)当LC并联谐振时,电感(线圈)中的电流和电容(C1、C2)中电流几乎相等,其他部分的阻抗变化几乎对能量消耗没有影响。
谐振频率计算公式(并联和串联都是这样):


(2)提高灵敏度。(LC串联电路)

LC串联谐振时等效电阻最小,LC并联谐振时等效电阻最大。

我们输入的交变信号频率是取LC串联电路的谐振频率,当硬币接入时,后边电路前边电路电流增大,电感L减小,在上面的公式可以看出谐振频率会增大(下图为LC并联的f与r的关系图),相当于放入硬币前我们的等效电阻与频率曲线为红色曲线,放入硬币之后为绿色曲线。我们输入的频率没有变,而谐振频率后移,等效电阻减小了,我们要检测的就是LC并联处TP5测试点的电压,这里的等效电阻减小,则电压会减小。这是第一处灵敏度增加。电流增大,则TP4处的电压减小(功率守恒),TP4的电压为R1电阻和后面LC并联的电压之和,电流增大,R1上的电压增大,而TP4点的电压减小,只能在LC并联上减少更多的电压来形成整体电压下降。这是第二处灵敏度增加。注意R23电阻的功率按如此计算(12V*50%=6V,6*6/75=0.48W【串联谐振时电阻极小】,远小于3W,这样放热较小)

TP4点电压为什么减小?


10.3 峰值检波电路


输入交流信号,运放输出与二极管负极之间有一个导通压降,V+>V-期间输出端电压上升,电容充电。V+<V-期间,输出端电压下降,由于二极管存在,电容不能向运放放电,所以电容向右边的电阻放电,但是速度极慢,只放少许电压即又开始充电,几乎维持在一个水平线上(轻微波澜)。以此起到检测峰值的作用。
D2二极管起到钳位作用,让输入不低于0.7V。
R7电阻起到限流作用(V+>V-时充电会有较高脉冲)
R4(NC)预留做电流衰减
R5(NC)预留起放大作用
R10起隔离作用
10.4 半桥驱动电路

12V通过D1向VB充电,同时防止VB向VCC引脚充电。
R18和R19起到隔离的作用(MOS管特性)
R20和R21起到下拉的作用(防止静电,保持稳定)
D4和D5用于在MOS关断时放电加快关断速度
10.5 单片机最小系统板电路

10.6 OLED模块

10.7 电源电路

10.8 按键电路
十一、实物调试
11.1 先测试按键和屏幕是否正常使用,电压值是否正确采集
11.2 测试实际并联谐振频率
(1)使单片机PWM输出一路2KHZ占空比50%的方波
(2)按如下图更改电路


(3)用示波器测试图中SIN_OUT位置处的波形,测试其频率
(4)将电路恢复原来的位置,测试真实串联谐振频率(下图TP4点的信号,示波器接入)




11.3 上图测试出来LC串联谐振的实际频率为28.571KHZ,所以我们修改之前设置的单片机输出的PWM,为28.6KHZ(占空比50%)
再次测试11.2中的TP4点的信号发现信号变为漂亮的正弦波信号。
11.4 将硬币挨个放到线圈上,观察不同的硬币导致最后呈现的电压,在程序中记录
11.5 由于这个电路会受到温度变化(温度引起阻值变化导致电压变化),所以需要在软件中设计一个矫正电压值的功能,这也是我们为什么需要设计三个按键
相关文章:
硬币检测电路设计
一、来源:凡亿教育 第一场:硬币检测装置原理分析、电路设计以及器件选型_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Zh4y1V7Px/?p1&vd_source43eb1cb50ad3175d7f3b9385905cd88f 二、开发软件:KEIL MDK 三、主控芯片&#…...
3.基础光照
从宏观上讲渲染包含了两大部分:决定一个像素的可见性,决定一个像素的光照计算 而光照模型就是用于决定在一个像素上决定怎样的渲染光照计算。 一、我们是如何看到这个世界的 1.光源 实时渲染中,我们通常把光源当成一个没有体积的点&#…...
Image Search-这是你的图像搜索
Image Search-这是你的图像搜索 什么是图像搜索图像搜索开通图像搜索商品图片搜索图片搜索图片新增批量操作OSS-创建bucket上传文件创建increment.meta并上传元信息导出 体验感受 什么是图像搜索 在接触一个新的产品时,我们首先要知道这款产品是什么?那…...
对GPT-4o的评价:技术革新与未来展望
目录 引言一、GPT-4o的技术背景1.1 GPT系列的发展历程1.2 GPT-4o的技术特点 二、版本间的对比分析2.1 GPT-3与GPT-4的对比2.2 GPT-4与GPT-4o的对比 三、GPT-4o的技术能力3.1 自然语言处理3.2 多模态处理3.3 任务定制化 四、个人整体感受4.1 交互体验4.2 应用场景4.3 未来展望 五…...
【TB作品】msp430f5529单片机,dht22,烟雾传感器
功能 //硬件:msp430f5529、dht22、LCD1602、蜂鸣器、烟雾传感器、蓝牙模块。 //功能:读取温湿度、烟雾浓度显示到屏幕; //按键调节三个报警数值; //温度、湿度、烟雾浓度,任意一个大于报警数值就蜂鸣器报警࿱…...
uni-app全局弹窗的实现方案
背景 为了解决uni-app 任意位置出现弹窗 解决方案 一、最初方案 受限于uni-app 调用组件需要每个页面都引入注册才可以使用,此方案繁琐,每个页面都要写侵入性比较强 二、改进方案 app端:新建一个页面进行跳转,可以实现伪弹窗…...
Love-Yi情侣网站3.0存在SQL注入漏洞
目录 1. 前言 2. 网站简介 3. 寻找特征点 3.1 第一次尝试 3.2 第二次尝试 4.资产搜索 5.漏洞复现 5.1 寻找漏洞点 5.2 进行进一步测试 5.2.1 手动测试 1.寻找字段 2.寻找回显位 3.查询当前用户 5.2.2 sqlmap去跑 6.总结 1. 前言 朋友说自己建了一个情侣网站,看到…...
自然语言处理(NLP)—— 神经网络语言处理
1. 总体原则 1.1 深度神经网络(Deep Neural Network)的训练过程 下图展示了自然语言处理(NLP)领域内使用的深度神经网络(Deep Neural Network)的训练过程的简化图。 在神经网络的NLP领域: 语料…...
SHA256计算原理
标签: SHA256计算原理;SHA256;SHA-2; SHA-256计算原理 SHA-256(Secure Hash Algorithm 256-bit)是SHA-2系列中的一种哈希算法,它由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布。SHA-256主要用于数据完整性验证和数字签名等领域。以下是SHA-…...
Mysql | select语句导入csv后再导入excel表格
需求 从mysql数据库中导出数据到excel 解决方案 sql导出csv文件 sql SELECT col1,col2 FROM tab_01 WHERE col3 xxx INTO OUTFILE /tmp/result.csv FIELDS TERMINATED BY , ENCLOSED BY " LINES TERMINATED BY \n;csv文件导出excel文件 1、【数据】-【导入数据】 …...
SpringBoot:手动创建应用
Spring提供了在线的Spring Initialzr在线创建Spring Boot项目,为了更好的理解Spring Boot项目,这里我们选择手动创建。 1.新建Web应用 1.1 生成工程 首先要做是创建一个Java项目,这里我们选择使用Maven来支持,使用archetype:ge…...
【LeetCode】39.组合总和
组合总和 题目描述: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个…...
用JS来控制遥控车(一行代码即可连接, 超简单!)
简介 有些时候我们想要做车辆的某一个功能,但是又不想浪费时间做整辆小车时,一般会去买一辆差不多的遥控车来改,但是那也比较麻烦,市面上好像也没有便宜的直接提供编程接口的遥控车。所以就自己做一个吧~。 主要是要实现向外提供…...
MyBatis-Plus如何优雅的配置多租户及分页
MyBatis-Plus如何优雅的配置多租户及分页 一、配置多租户1、步骤一2、步骤二3、步骤三步骤四 二、配置分页1、步骤一2、步骤二3、步骤三 一、配置多租户 TenantLineInnerInterceptor 是 MyBatis-Plus 提供的一个插件,用于实现多租户的数据隔离。通过这个插件&#…...
国产操作系统上Vim的详解01--vim基础篇 _ 统信 _ 麒麟 _ 中科方德
原文链接:国产操作系统上Vim的详解01–vim基础篇 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用Vim的详解文章。Vim是一款功能强大且高度可定制的文本编辑器,广泛应用于编程和日常文本编辑中。…...
如何正确理解事件溯源架构模式?
在微服务架构盛行的当下,DDD(领域驱动设计)也得到了崭新的发展。同时,随着DDD的不断发展,也诞生了一些新的设计思想和开发模式,今天要介绍的事件溯源是其中具有代表性的一种模式。 事件溯源模式是DDD领域中…...
【漏洞复现】电信网关配置管理系统 rewrite.php 文件上传漏洞
0x01 产品简介 中国电信集团有限公司(英文名称"China Telecom”、简称“"中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员…...
线性调整率:LINE REGULATION详解
目录 一、概述 二、 举例 一、概述 LDO(低压差线性稳压器)的LINE REGULATION(线路调整或线性调整)参数是一个衡量稳压器输出稳定性的重要指标。它反映了LDO输出电压对输入电压变化的响应程度。 当输入电压在其规定的工作范围内变…...
Workfine默认首页功能详解
一、基本介绍 Workfine V6.3推出了默认的用户首页功能,这样用户在登入系统后就可以通过默认的首页栏进行一些业务操作。第一版的用户首页功能布局了审批,制单,业务导航,便捷入口,消息和预警六大块内容,后续…...
CSAPP Lab07——Malloc Lab完成思路
等不到天黑 烟火不会太完美 回忆烧成灰 还是等不到结尾 ——她说 完整代码见:CSAPP/malloclab-handout at main SnowLegend-star/CSAPP (github.com) Malloc Lab 按照惯例,我先是上来就把mm.c编译了一番,结果产生如下报错。搜索过后看样子应…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
