菜单 English Ukrainian 俄语 主页

面向爱好者和专业人士的免费技术图书馆 免费技术库


无线电电子与电气工程百科全书
免费图书馆 / 无线电电子和电气设备方案

通过COM口进行ADC操作,简单的数据采集系统。 无线电电子电气工程百科全书

免费技术库

无线电电子与电气工程百科全书 / 电脑

文章评论 文章评论

本文主要针对初学者。 对于那些决定尝试创建数据采集系统、将模拟信号输入计算机并进行处理等的人来说。 这将在本文中讨论,我们将尝试自己做所有事情。

一般来说,互联网上和文献中关于此主题的信息很少......特别是如果您使用 Visual Basic 语言。 因此,我将尝试至少部分地填补这一空白。

那么,让我们开始吧……

无论您的目标是什么,您首先需要购买实际的模数转换器 (ADC)。 另外,在计算机上安装 Visual Basic 6.0 开发环境。 您还需要能够以基本的方式在这个开发环境中导航......因为。 本文旨在确保读者至少具备 Visual Basic 编程的基本知识。 我还建议阅读文献 [1]、[3]。

作为 ADC,我建议购买 TLC549IP。 这是一个具有简单通信协议的 8 位串行 ADC。 文章中将对此进行讨论。 当然,您可以使用其他ADC,并适当更改电路和代码。 您可以在 [1] 中阅读更多相关信息。

了解完 ADC 之后,您需要组装我们的数据采集系统的硬件,即图 1 所示的电路。 XNUMX.

ADC 操作与 COM 端口,简单的数据采集系统。 硬件
(点击放大)

该方案借鉴了[1],稍作修改。 二极管 VD1、VD2、VD6 - KD521,任何稳定电压为 3 ... 5 V 的齐纳二极管。您可以使用 KREN78A 代替 05L5。 电阻器 R1、R2 的容差为 1%,或从几个电阻值尽可能接近的电阻器中进行选择。 测量的准确性将取决于它们。 电阻器R3优选为多匝。

调整:给板子供电后,测量稳压器DA1的Out端电压。 我们记下获得的电压值,保留小数点后三位,以备将来需要。 在 DD3 微电路的引脚 1 处,使用电阻器 R1,我们将电压设置为正好等于在输出引脚处测量的稳定器的一半。

现在让我们处理实际的软件部分。 一般来说,首先使用RS-232、I2C、Micro Ware等通信接口。 我认为这是不合适的,因为程序代码稍微复杂一点,硬件部分就会变得非常复杂。 因此,我们将使用取自 ADC“数据表”的最简单的交换协议。 即,其实现简单。 当然,这样的协议无法实现高速,在这种情况下,Visual Basic 本身就施加了限制,但它非常适合用最少的时间和精力获得第一个结果,以及测量相对缓慢变化的过程。 TLC549IP ADC的通信协议如图2所示。 XNUMX.

ADC 操作与 COM 端口,简单的数据采集系统。 ADC通信协议TLC549IP
(点击放大)

在单一状态期间,实际转换发生在模数转换器的 CS(片选)引脚上。 随着时钟脉冲的出现,数据输出从低 CS 开始,每个脉冲一位。 要发出 8 位代码,分别需要 8 个时钟脉冲。 之后,CS可以转移到单一状态,并可以执行下一个变换。 有关 ADC 操作的更多详细信息,请参阅 [1]。

从这一切我们可以得出结论,有必要编写一个驱动程序,在正确的时间生成必要的脉冲序列,之后我们只能接收数据。

启动 Visual Basic 开发环境并创建标准 EXE 项目。 添加 MSComm 控件。 您可以将其添加到组件面板中,如下所示 项目-->组件-->从列表中选择微软 通讯 控制6.0。 将其以及 2 个标签和 2 个计时器放在表格上。 将名称保留为默认值。

现在您可以开始编写简单电压表的代码。

让我们设置变量:将 b1、b2、b3、b4、b5、b6、b7、b8、sum、Ud 设为 Single

将以下代码放在表单加载过程中:

私有子 Form_Load()

MSComm1.DTREnable = True '初始值-高CS

Timer1.Interval = 100 ' 1ms 定时器间隔

Timer2.Interval = 1 ' 100ms 定时器间隔

MSComm1.Settings = "1200,N,8,1" ' 通讯设置

MSComm1.CommPort = 1 ' COM 端口号

MSComm1.PortOpen = True ' 打开 com 端口

END SUB

在程序中 Timer1 放代码:

私有子 Timer1_Timer()

MSComm1.DTREnable = False '创建低 CS

Label2.Caption = "" '初始延迟的垃圾

MSComm1.RTSEnable = True '第一个时钟脉冲时钟高

If MSComm1.CDHolding = True then b1 = 1 Else b1 = 0 '在 CD 输入(ADC 输出)处轮询 XNUMX 或 XNUMX 值

MSComm1.RTSEnable = False '第一个时钟脉冲时钟低

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b2 = 1 否则 b2 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b3 = 1 否则 b3 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b4 = 1 否则 b4 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b5 = 1 否则 b5 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b6 = 1 否则 b6 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b7 = 1 否则 b7 = 0

MSComm1.RTSEnable = 假

MSComm1.RTSEnable = 真

如果 MSComm1.CDHolding = True 则 b8 = 1 否则 b8 = 0

MSComm1.DTREnable = True '创建高 CS

MSComm1.RTSEnable = False '第一个时钟脉冲时钟低

'使用分解公式将位转换为十进制格式

总和 = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7*2^1) + (b8*2^0)

Ud = Format(sum * 5.083 / 255, "##0.000") '计算比例值

Label1.Caption = CStr(Ud) & "Volt" '显示接收到的值

END SUB

Timer1 中的代码是驱动程序本身。 它周期性地重复,生成时钟脉冲并接收数据位。 Ud - ADC 输入端的电压,如果应用 10、12 位 ADC,则数字 225 将分别替换为 1024、4096。对于 10、12 位 ADC,需要将缺失的位添加到代码中,以他们的“数据表”为指导。 值 5.083 是我在稳定器 Out 输出处获得的电压值。 在此输入您的值。

要为开发板供电,您可以使用单独的电源或直接从 COM 端口为其供电。 为此,我们将以下代码放入 Timer2 过程中:

私有子 Timer2_Timer()

MSComm1.Output = Chr(0) & Chr(0) '我们在 TX 引脚 (3) 上创建脉冲来为 ADC 板供电

END SUB

必须记住,COM 端口不能承受过重的负载...您可以信赖的最大电流为 20 mA。 在工作模式下,电路消耗的电流不超过 5 mA。

现在将开发板连接到 COM 端口并运行项目。 测量DA1稳定器IN端的电压,它必须至少为6.5V。如果不是这种情况,则应使用单独的电源。 通过改变 ADC 输入端的电压,确保程序正常工作并在屏幕上显示电压。 使用 8 位 ADC 时的电压读取精度为 20mV,使用 10 位 ADC 时为 5mV、12-1.2 mV

关于在 Visual Basic 中工作以及使用 com 端口创建的应用程序的一些信息

正如您可能已经了解的那样,要使用 com 端口,您需要一个组件微软 通讯 系统 即 MSCOMM32.ocx 文件,安装 Visual Basic 后,该文件位于 C:\Windows\system32 目录中。 我为什么要这样做,而是因为如果您在不创建安装程序的情况下将程序复制到另一台没有 Visual Basic 的计算机上,它将无法工作。 您还必须将此文件复制到计算机上的同一目录中,即在系统32中。 或者创建一个安装程序。

现在对于一些命令:

设置数据交换速率的命令:

MSComm1.Settings =“1200,N,8,1”

指定 com 端口号的命令

MSComm1.CommPort = 1

打开和关闭 com 端口的命令

MSComm1.PortOpen = 真

MSComm1.PortOpen = 假

命令输出 + 12V 到 com 连接器的相应引脚:

MSComm1.RTSEnable = True RTS (7) - 引脚名称和引脚编号

MSComm1.DTREnable = 真 DTR(4)

命令输出-12V

MSComm1.RTSEnable = 假         

MSComm1.DTREnable = 假

您可以轮询是否存在单状态或零状态输出 CD (1)、CTS (8)、DSR (6)。

If MSComm1.CDHolding = True Then (如果有则...)

如果 MSComm1.CDHolding = False Then(如果为零,则……)

将字符或字符串的 Tx (3) ASCII 代码发送到输出:

MSComm1.Output = "A"

数字

MSComm1.Output = Chr(10) 数字可以在 0…255 之间变化

通过在定时器中写入这样的命令并更改数字或符号,您可以创建 PWM 调制。 有关命令的更多详细信息可以通过下载控件的描述来找到  微软 通讯 系统.

现在,有了这段代码,您就可以编写许多用于收集数据的程序。 例如:电压表、电流表、温度表、简单示波器、将数据保存到文件。 测量只需 1 毫秒即可完成,每小时一次、每天一次,从而监控长期过程。

为了使用交流电压(通过 0)以及扩大测量限制,需要一个输入放大器,其电路可以取自 [1]。 要使用电源电压或未与网络电隔离的设备,必须对电路与计算机进行光学隔离。

带 COM 端口的 ADC 操作,简单的数据采集系统

带 COM 端口的 ADC 操作,简单的数据采集系统

下载示例程序的源代码 (8 kB)

文学

  1. Gell P. 如何将个人计算机变成测量综合体:Per。 来自 fr. - 第二版,已更正。 - M.:DMK Press,2 年。 - 2001 页:生病。
  2. 将 PC 与外部设备配对:Per。 来自英语。 - M.:DMK Press,2001 - 320 页:生病。
  3. Visual Basic 6.0:每。 来自英语。 - 圣彼得堡:BHV - 圣彼得堡,2000 年。 - 992 页:生病。

作者:=ShooRooP=,evei [狗] mail.ru; 出版:cxem.net

查看其他文章 部分 电脑.

读和写 有帮助 对这篇文章的评论.

<< 返回

科技、新电子最新动态:

用于触摸仿真的人造革 15.04.2024

在现代科技世界,距离变得越来越普遍,保持联系和亲密感非常重要。萨尔大学的德国科学家最近在人造皮肤方面的进展代表了虚拟交互的新时代。萨尔大学的德国研究人员开发出了超薄膜,可以远距离传输触觉。这项尖端技术为虚拟通信提供了新的机会,特别是对于那些发现自己远离亲人的人来说。研究人员开发的超薄膜厚度仅为 50 微米,可以融入纺织品中并像第二层皮肤一样穿着。这些薄膜充当传感器,识别来自妈妈或爸爸的触觉信号,并充当将这些动作传递给婴儿的执行器。父母触摸织物会激活传感器,对压力做出反应并使超薄膜变形。这 ... >>

Petgugu全球猫砂 15.04.2024

照顾宠物通常是一项挑战,尤其是在保持房屋清洁方面。 Petgugu Global 初创公司推出了一种有趣的新解决方案,这将使猫主人的生活变得更轻松,并帮助他们保持家中干净整洁。初创公司 Petgugu Global 推出了一款独特的猫厕所,可以自动冲掉粪便,让你的家保持干净清新。这款创新设备配备了各种智能传感器,可以监控宠物的厕所活动并在使用后激活自动清洁。该设备连接到下水道系统,确保有效清除废物,无需业主干预。此外,该厕所还具有较大的可冲水存储容量,非常适合多猫家庭。 Petgugu 猫砂碗专为与水溶性猫砂一起使用而设计,并提供一系列附加功能 ... >>

体贴男人的魅力 14.04.2024

长期以来,女性更喜欢“坏男孩”的刻板印象一直很普遍。然而,英国莫纳什大学科学家最近进行的研究为这个问题提供了新的视角。他们研究了女性如何回应男性的情感责任和帮助他人的意愿。这项研究的结果可能会改变我们对男性对女性吸引力的理解。莫纳什大学科学家进行的一项研究得出了有关男性对女性吸引力的新发现。在实验中,女性看到了男性的照片,并附有关于他们在各种情况下的行为的简短故事,包括他们对遇到无家可归者的反应。一些人无视这名无家可归的人,而另一些人则帮助他,比如给他买食物。一项研究发现,与表现出同理心和善良的男性相比,表现出同理心和善良的男性对女性更具吸引力。 ... >>

来自档案馆的随机新闻

涡流热虹吸冷却器——一种新的能源 26.08.2013

这种名为“Vortex Thermosyphon Cooler”(VTCO)的新设备在喀山“Khimgrad”科技城展出。 HTSO将工业企业排放的水的热量转化为有用的电能。 该发明已获得专利,类似设备尚未在世界任何地方使用。

作为 HTSO 的资源,来自工业生产的温废水被用于例如城市自来水公司、热电厂、核电厂以及天然水库。 HTCO 的工作原理很简单:该设备使用高效的薄膜蒸发过程从水中提取热量。 当被蒸发的物质以薄层形式涂在蒸发器的壁上时,就会发生薄膜蒸发,这会产生很大的蒸发面积,并确保从水中带走热量的过程效率很高。

VTCO 的设计非常简单:连接到冷凝器的潜水蒸发器安装在带有发电机的旋转轮上。 蒸发的工作流体在密封的 HTCO 回路内循环,需要最少的维护。

VTSO 的范围很广——住房和公共服务、污水处理厂、能源、石化、冶金等。 据专家介绍,使用HTCO可使企业用电成本降低2-3倍。 HTSO 的冷却深度与 8-15 度的冷却塔相当,成本要低得多:每 1,4 兆瓦装机容量需要 1 万卢布。 此外,得益于发电能力,涡流冷却器将在 5 年内收回成本。

目前,VTSO、JSC“Tatneftekhiminvest-holding”、LLC“NPO Kinematika”和鞑靼斯坦共和国公共企业联盟的开发商计划在鞑靼斯坦共和国企业大规模生产一种新设备及其实施。 假设新装置将大大降低企业的成本。

其他有趣的新闻:

▪ 一个新的高度集成的实时时钟系列

▪ 压力会伤害骨骼

▪ 间谍甲虫

▪ 笔记本华硕 VivoBook 4K

▪ 智能手机 Oppo Reno6 Lite

科技、新电子资讯

 

免费技术图书馆的有趣材料:

▪ 现场射频功率放大器部分。 文章精选

▪ 文章干裤袜。 给家庭主人的提示

▪ 我们如何保持平衡? 详细解答

▪ 文章 欧芹种子。 传说、栽培、使用方法

▪ 文章 超声波的声音指示器。 无线电电子电气工程百科全书

▪ 文章火和丝带。 焦点秘密

留下您对本文的评论:

Имя:


电子邮件(可选):


点评:





本页所有语言

主页 | 图书馆 | 用品 | 网站地图 | 网站评论

www.diagram.com.ua

www.diagram.com.ua
2000-2024