程控电阻器

程控电阻器

        由于要测试电阻型温度传感器,一个电阻箱又很贵,就想做一款 程控电阻器 来满足。

        设计满足300Ω到400kΩ可调电阻。


设计思路

        选择数字电位器去控制电阻输出,最好是精度高,范围大的数字电位器。经过寻找后,发现AD8403比较满足需求。采用STM32F103C8T6作为主控芯片。

AD8403

        AD8400/AD8402/AD8403分别是单通道/双通道/四通道、256位、数字控制可变电阻(VR)器件1,可实现与机械电位计或可变电阻相同的电子调整功能。AD8400内置一个可变电阻,采用紧凑的SOIC-8封装。AD8402内置两个独立的可变电阻,采用节省空间的SOIC-14表面贴装封装。AD8403内置四个独立的可变电阻,提供24引脚PDIP、SOIC和TSSOP三种封装。各器件均内置一个带游标触点的固定电阻,该游标触点在载入控制串行输入寄存器的数字码所确定的数字码分接该固定电阻值。游标与固定电阻任一端点之间的电阻值,随传输至VR锁存器中的数字码呈线性变化。在A端与游标或B端与游标之间,各可变电阻提供一个完全可编程电阻值。A至B固定端接电阻(1 kΩ、10 kΩ、50 kΩ或100 kΩ)的通道间匹配容差为±1%,标称温度系数为500 ppm/°C。

想法

        AD8403为四通道数字电位器,每个通道可分为256份,要想范围大。就要选择一片大的100K的。但是这样的话精度就只有100000/256=390欧。四通道串联范围可以达到400k,但是精度不符合我们的需求,在选择一片1K的AD8403,精度为1000/256=4欧,这样精度可以达到4欧,如果我们将1k的两两并联,这样并联之后每组可以达到500欧,正好包含了400欧,精度也达到了2欧,再通过串联将这两个和前边的100k的串联起来,这样的话就可以从0到400k欧范围,然后精度可以达到2欧(如果四个并联的话精度达到了1欧,但是范围只有250欧了,包含不了400欧,即有覆盖不到的地方)。这样就比较完美了。AD8403为了保护器件,就算输出0。器件也会有大约50欧的电阻。100k的和1k的会差一点,实测的话这样串并零最少也会有300欧。如果我们在1k的满足输出的时候。将100k的短路的话就可以得到更小的阻值。所以在1k串并零得到最大值之前,使用继电器将100k短路掉。

设计过程。

材料

  • STM32F103C8T6主控芯片
  • AD8403ARUZ1
  • AD8403ARUZ100
  • HFD4-3直插继电器
  • 贴片按键
  • 0.96寸OLED显示屏
  • Type-C
  • 1117电源芯片
  • 电阻电容晶振等。

原理图

        通过嘉立创绘制。
在这里插入图片描述

PCB

        通过嘉立创绘制。
在这里插入图片描述

程序

Keil 5编写。放上关键代码。
控制代码。

if(R_Zuzhi < 300)R_Zuzhi = 300;if(R_Zuzhi > 400000)R_Zuzhi = 400000;testShowFont(&u8g2,R_Zuzhi);/* 1616欧	本身有70欧  每1是3欧 还剩 1561欧 一半962欧*/if(R_Zuzhi < 1360){JDQ = 1;K1_5 = R_Zuzhi;}else{JDQ = 0;K2_Set = (R_Zuzhi -  Offset) / 398; if(K2_Set > 1020){Set1 = 255;Set2 = 255;Set3 = 255;Set4 = 255;if(K2_Set > 1023){Set5 = 255;Set7 = 255;}else{K1_5 = R_Zuzhi - (1020 * Jingdu) - Offset;}}else if(K2_Set > 765){Set1 = 255;Set2 = 255;Set3 = 255;Set4 = K2_Set - 765;K1_5 = R_Zuzhi - (K2_Set * Jingdu) - Offset;}else if(K2_Set > 510){Set1 = 255;Set2 = 255;Set3 = K2_Set - 510;Set4 = 0;K1_5 = R_Zuzhi - (K2_Set * Jingdu) - Offset;}else if(K2_Set > 255){Set1 = 255;Set2 = K2_Set - 255;Set3 = 0;Set4 = 0;K1_5 = R_Zuzhi - (K2_Set * Jingdu) - Offset;}else{Set2 = K2_Set;Set1 = 0;Set3 = 0;Set4 = 0;K1_5 = R_Zuzhi - (K2_Set * Jingdu) - Offset;}}K1_Set = (K1_5 - 56) / 2.56;if(K1_Set > 255){Set5 = 255;Set7 = K1_Set - Set5;}else{Set7 = 0;Set5 = K1_Set;}//            Set10 = Set9;AD8403_W(0, Set1); //100k短接 100k还有283欧电阻  共333欧AD8403_W(1, Set2);AD8403_W(2, Set3);AD8403_W(3, Set4);AD84032_W(0, Set5); //100k短接 1k还有55欧电阻AD84032_W(1, Set5);AD84032_W(2, Set7);AD84032_W(3, Set7);
//				SHDN=0;//为0时,所有? 缱鐰端开路,W连接到B,关闭SDO输出晶体管

AD8403驱动


void AD8403_W(int CH, int w)
{int i = 0;int channal = CH;int send_data = w;CS = 0;delay_us(10);//前两个bit  选通道for(i = 0; i < 2; i ++)            //send the channal index{if((channal & 0x02) == 0x02)SDI = 1;elseSDI = 0;delay_us(1);CLK = 1;           //Set SPI_SCK to High voltagedelay_us(1);CLK = 0;          //Set SPI_SCK to low voltagechannal = channal << 1;}//后八个bit  指定阻值for(i = 0; i < 8; i ++)            //send the resister value{if((send_data & 0x80) == 0x80)SDI = 1;elseSDI = 0;delay_us(1);CLK = 1;           //Set SPI_SCK to High voltagedelay_us(1);CLK = 0;          //Set SPI_SCK to low voltagesend_data = send_data << 1;}CS = 1;
}

实物展示

正面图

在这里插入图片描述

反面图

在这里插入图片描述

视频演示

程控电阻器演示

总结

虽然范围大,但是精度还是控制的不理想。可能是芯片问题。控制之后,电阻会抖动和飘移,但是总体还是实现了相应的功能。可以使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Beelzebub过程记录及工具集

文章目录 靶场搭建靶场测试过程安装dirsearch扫描目录wpscan扫描破解 靶场搭建 https://download.vulnhub.com/beelzebub/Beelzebub.zip 下载解压镜像&#xff0c;从vmware打开。 一键式开机即可。 打开后配置网络。 确保网络可达。 靶场测试过程 首先使用nmap扫描网段的存…

深入理解Session和Cookie的作用与联系

深入理解Session和Cookie的作用与联系 1、什么是Cookie&#xff1f;1、什么是Session&#xff1f;1、Session和Cookie的联系4、实际应用场景 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; Session和Cookie是两个至关重要的概念&#xff0c…

Abaqus基于CT断层扫描的三维重建插件CT2Model 3D

插件介绍 AbyssFish CT2Model 3D V1.0 插件可将采用X射线等方法获取的计算机断层扫描&#xff08;CT&#xff09;图像在Abaqus有限元软件内进行三维重建&#xff0c;进而高效获取可供模拟分析的有限元模型。插件可用于医学影像三维重构、混凝土细观三维重建、岩心数字化等领域…

商品运营分析

本文对某个品类&#xff08;猫砂&#xff09;在1688的情况&#xff0c;进行一定维度的分析&#xff1a; 内容主要是&#xff1a; 1.品类前景 2.阿里巴巴商家平台和淘宝平台销售&#xff0c;销量分析&#xff08;爬虫获取数据&#xff09; 3.对获取的数据&#xff0c;进行分…

解析 Mira :基于 Web3,让先进的 AI 技术易于访问和使用

“Mira 平台正在以 Web3 的方式解决当前 AI 开发面临的复杂性问题&#xff0c;同时保护 AI 贡献者的权益&#xff0c;让他们可以自主拥有并货币化自己的模型、数据和应用&#xff0c;以使先进的 AI 技术更加易于访问和使用。” AI 代表着一种先进的生产力&#xff0c;它通过深…

二叉树问题,两种解决方法(1遍历 2直接定义名字功能递归

1第一种方法就是另写一个traverse方法&#xff0c;2第二种方法就是把函数名当成已经实现的功能&#xff0c;直接写 1、翻转二叉树 class Solution {public TreeNode invertTree(TreeNode root) {if(rootnull) return null;TreeNode leftinvertTree(root.left);TreeNode righti…

博客都在使用的主题切换使用vue2实现思路

效果展示 步骤 1-变量定义css主题色 2-html初始化主题样式 3-vuex存储主题变量&#xff0c;点击触发修改根元素html的样式 4-method触发方法 mutation使用commit action使用dispatch 5-App组件引入该css文件&#xff0c;使用即可 6-将其加入本地存储&#xff0c;刷新后保持主…

烟雾监测与太阳能源:实验装置在其中的作用

太阳光在烟雾中的散射效应研究实验装置是一款模拟阳光透过烟雾环境的设备。此装置能帮助探究阳光在烟雾中的传播特性、散射特性及其对阳光的影响。 该装置主要包括光源单元、烟雾发生装置、光学组件、以及系统。光源单元负责产生类似于太阳光的光线&#xff0c;通常选用高亮度的…

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…

Mamori.xyz:基于机器学习的区块链价值提取系统

Mamori.xyz 是一个基于机器学习的自动化区块链价值提取系统&#xff0c;其开创一种通用路径查找器&#xff0c;该工具可用于检测和防御潜在的未知安全风险&#xff0c;Mamori.xyz 也将其称为“未知的未知”&#xff0c;即智能合约中的零日漏洞和新出现的与区块链相关的软件问题…

leetcode-383.赎金信

题源 383.赎金信 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1&…

Qt Creator:C++与Python混合编程

目录 1.前言 2.调用Python前的准备 3.在Qt Creator中配置Python库 4.在Qt Creator中添加Python代码 5.在Qt Creator中运行Python代码 6.运行效果 前言 在进行软件开发过程中&#xff0c;我们一般都是在特定的环境下特定的开发语言下进行编程。但是在开发中总有特殊情况&#xf…

微调 Florence-2 - 微软的尖端视觉语言模型

Florence-2 是微软于 2024 年 6 月发布的一个基础视觉语言模型。该模型极具吸引力&#xff0c;因为它尺寸很小 (0.2B 及 0.7B) 且在各种计算机视觉和视觉语言任务上表现出色。 Florence 开箱即用支持多种类型的任务&#xff0c;包括: 看图说话、目标检测、OCR 等等。虽然覆盖面…

前缀和算法——部分OJ题详解

&#xff08;文章的题目解释可能存在一些问题&#xff0c;欢迎各位小伙伴私信或评论指点&#xff08;双手合十&#xff09;&#xff09; 关于前缀和算法 前缀和算法解决的是“快速得出一个连续区间的和”&#xff0c;以前求区间和的时间复杂度是O(N)&#xff0c;使用前缀和可…

【精品资料】大数据可视化平台数据治理方案(626页WORD)

引言&#xff1a;大数据可视化平台的数据治理方案是一个综合性的策略&#xff0c;旨在确保大数据的质量、安全性、可访问性和合规性&#xff0c;从而支持高效的数据分析和可视化过程。 方案介绍&#xff1a; 大数据可视化平台的数据治理方案是一个综合性的策略&#xff0c;旨在…

微软的vscode和vs2022快捷键官网链接

vscode官方文档:https://code.visualstudio.com/docs/ vscode快捷键官方文档:https://code.visualstudio.com/docs/getstarted/keybindings vs2022官方文档:https://learn.microsoft.com/zh-cn/visualstudio/ide/?viewvs-2022 vscode快捷键官方文档:https://learn.microsoft.c…

Linux编程(通信协议---udp)

UDP&#xff08;用户数据报协议&#xff09;是一种无连接的网络协议&#xff0c;主要用于快速传输数据。以下是UDP协议的一些主要特点&#xff1a; 1. **无连接**&#xff1a;UDP是无连接的协议&#xff0c;这意味着在数据传输之前不需要建立连接。每个UDP数据包都是独立的&am…

Spark的动态资源分配算法

文章目录 前言基于任务需求进行资源请求的整体过程资源申请的生成过程详解资源申请的生成过程的简单例子资源调度算法的代码解析 申请资源以后的处理&#xff1a;Executor的启动或者结束对于新启动的Container的处理对于结束的Container的处理 基于资源分配结果进行任务调度Pen…

win10删除鼠标右键选项

鼠标右键菜单时&#xff0c;发现里面的选项特别多&#xff0c;找一下属性&#xff0c;半天找不到。删除一些不常用的选项&#xff0c;让右键菜单变得干净整洁。 1、按下键盘上的“winR”组合按键&#xff0c;调出“运行”对话框&#xff0c;输入“regedit”命令&#xff0c;点击…

linux后门教程

linux后门教程 alias 用法 系统默认别名&#xff1a;alias 设置别名&#xff1a;alias lsls -laih 删除别名&#xff1a;unalias ls **加参数&#xff1a;**alias ls‘ls -laih;pwd’ 注意 系统启动默认加载的配置文件 /etc/profile 切换用户就会执行/etc/profile /etc/bash…