IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于STM32的自动量程转换数字电压表设计--开发笔记 -> 正文阅读

[嵌入式]基于STM32的自动量程转换数字电压表设计--开发笔记

提示:本文仅阐述了关于课设项目开发的学习思路,用于记录项目经历和分享学习,不涉及具体实现!
项目已用于桂电20级八院接口实验课设,学习思路仅供参考学习。

一、选题

老师给了5个题目,选题阶段大概有一个月的时间。选取题目时一定要根据自身基础仔细评估难度,确保自己能通过学习做出大部分内容,以免浪费大量时间导致最后来不及更换题目。

赵茂泰老师主编的《智能仪器原理及应用》(第4版)书中介绍了智能仪器组成原理和一些常见应用,这些应用中就包括了DVM(数字电压表)的设计指标与基本组成原理,我的设计指标主要就是根据这本书里的介绍设定的。另外,书中还有一些其他应用如数字万用表等,大家可以自己去查看。

经过仔细评估,我选定电压表设计这个题目,并确定了下列指标与功能

1.量程:测量范围为直流电压0~200V,分为200mV,2V,20V,200V共4挡。
2.位数:3位半。
3.精确度:这里用相对误差表示,指标为±2%。
4.分辨率:0.05%,分辨力为0.1mV。
5.测量速度:2次/s。
6.功能:自动量程转换,超量程报警,复位功能,OLED 屏幕显示,指示灯。

在填写指标时尽量将指标写大些,例如这里我把误差设定成2%,实际做出的作品误差是1%左右,比预定指标还要好得多,一定要给自己留有余地,否则最后实现不了的话只会扣分。

二、方案设计

初步的具体方案为:

以STM32F103C8T6为主控芯片,基于标准库函数开发程序,用芯片内置12位A/D配合外围量程转换电路实现多量程电压测量功能,OLED模块(I2C通信)显示电压值,蜂鸣器报警,LED指示灯,按键复位等

这里设计方案时我主要参考的书籍仍然是上面提到的《智能仪器原理及应用》这本书。结合此方案画出大致的系统框图,如图2-1所示。
图2-1 系统总体方案框图
图2-1 系统总体方案框图

总体方案确定之后就可以着手进行相关知识的学习了。

注意:如果所选题目有太多人选择的话,这时就需要查看他们的指标和实现方式与自己的方案是否雷同。如果雷同,建议重新设计方案或者及时换题! 

三、自学过程及经验

首先,STM32是个啥?
(ps:本人是硬件小白,从未接触过实际的硬件设计这类东西)

不知道怎么办?当然是学习了。于是我在学校图书馆开始找相关的书籍,最终找到了野火的《 STM32库(标准库)开发实战指南–基于STM32F103》(书名大致是这个,不必过于纠结)。

前面几章就是介绍STM32的,这下对STM32有了基本的认识。在看到编程开发那块,我觉得只看书太枯燥了,于是到B站找了一下视频,直接找到了野火官方出的教学视频,然后跟着视频学了大概半个月

并不是所有视频都要看一遍,而是针对性学习自己感觉项目开发过程中可能会用到的知识。如果后面发现要用到其他知识还可以回来继续补充。

如果是初学者,个人建议跟着野火的教程学习,这里讲的比较详细并且逻辑性也很好。

在学习视频的过程中我也知道了一些资源的获取途径,野火正点原子官方网站都有相关技术文档,他们都是是免费公开的,包括我上面提到的《 STM32库(标准库)开发实战指南–基于STM32F103》这本书的PDF版。

经过以上部分的学习,我们需要用到的STM32标准库开发相关知识就基本掌握了。再结合网络搜索和一些官方开发板的原理图(如战舰、指南者之类),可以用Altium Designer(简称AD)软件画出适合自己的STM32最小系统原理图。

AD软件不会用的可以看B站Altium Designer 20 (AD20)详细教程视频,个人觉得老师讲的还不错,挺基础适合入门。之后大家也可以搜一下其他视频做补充、提高使用。

----------------------------------↑↑STM32最小系统原理图完成↑↑--------------------------------

此时,我们已经熟悉了STM32最小系统以及标准库开发。

接下来,怎么构建外围电路,实现相关功能呢?

这里我们最好选择经过验证的电路(就是别人做过的),毕竟电路设计不是一时半会能学成的。

但是在采取别人电路时一定要弄懂每个器件的作用,这是最基本且重要的一点,否则在答辩时很容易露(la)馅(kua),很可能直接导致挂科

如电容一般用来电源去耦、滤除噪声,电阻一般用来限流。

这里的辅助电路蜂鸣器、USB供电、复位开关、LED灯等这些在一些用于学习的开发板上已经比较成熟了,可以参考它们的原理图设计电路,其对应的pcb封装库也可以通过官方资料找到。

----------------------------------↑↑辅助外围电路完成↑↑--------------------------------

那么实现主要功能的量程电路该怎么办呢?

经过前面的STM32标准库开发学习,我发现可以将量程转换控制完全由软件编程实现,于是这里我只需要找到能实现4个量程档的电路即可。

在知网检索相关论文,经过多番查找,终于发现了一篇用不同主控芯片实现量程转换的论文,文章里提供了量程转换电路。为进一步确定其功能,这里我们用Multism软件对其量程电路进行仿真,最终确认其能够实现我们的功能。

但是在实际设计时,最好考虑到噪声影响,一般是加去耦电容。

----------------------------------↑↑量程电路完成↑↑--------------------------------

经过上述过程,我们已经完成了所有电路部分的设计,接着就是完善原理图,设计PCB版了。

不会用AD软件的童鞋可以自学一下,可以看上面提到的视频,也可以自己找相关书籍或视频自学。

PCB完成之后就可以打板了,这里推荐嘉立创打板,10cm*10cm的5块板只要5块钱而且还有顺丰包邮(如果涨价了当我没说)。

----------------------------------↑↑打板完成↑↑--------------------------------

打板完成之后,焊接元器件零基础硬件小白该怎么焊接?

1.建议向周围看下,有没有会硬件的大佬,向他们请教硬件焊接的一些小技巧;

2.找视频,学习经验,先用一块板子练习焊接经验。例如,拿个板子专门焊接贴片电阻(是本人没错了)。练习几天之后感觉差不多了就可以正式焊接器件了。焊接贴片器件时建议新生使用刀头电烙铁,可以秀很多操作。贴出一个我自学时用到的视频:一分钟教你贴片阻容类器件焊接

----------------------------------↑↑焊接完成↑↑--------------------------------

元器件焊接完成之后就可下载程序,测试自己所写STM32程序是否正确了,这里一般需要很多次调试才能实现自己想要的功能。

----------------------------------↑↑测试完成↑↑--------------------------------

到此为止,整个项目基本就完成了。

从4.1选题完成之后,到6.25验收之前,整个项目大概历时三个月(去除摸鱼时间实际两个月足够完成这些工作了hhh)。经过这次项目,本人也从一个啥也不懂的硬件小白成长为一个稍微懂一些硬件(起码硬件设计流程懂了)的硬件小白,也学会了用STM32开发一个小项目,收获颇丰(个人感觉)。

写出这篇博客,一方面可以记录一下学习心得,另一方面也想为像我一样的硬件小白提供一些经验吧,最后也为桂电八院接口实验的同志们提供一些参考,愿诸君共勉!

由于本人水平有限,文章难免有遗漏错误,如果大家有什么好的意见或者建议欢迎评论、私信指正,感谢!
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 13:27:32  更:2021-07-28 13:28:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 18:30:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码