请问电脑如何通过温度变送器获取温度

请问电脑如何通过温度变送器获取温度,第1张

4~20mA是一个量程范围,对应温度的范围。你需要一个AD模块,将接受到的电流信号(比如说15mA)转化为数字信号(比如说01000111)以便单片机处理,以及电脑获取。

你要明白以下几件事:

1该温度变送器的参数,4和20对应的温度值是多少,以便你自己将第二步中的AD接受到的电流值换算成二进制数;

2需要一个模拟量转换为数字量的模块,可以用ADXXXX,也可以用内置AD模块的单片机,比如AVR的mega16单片机,才15块钱左右,内部集成AD模块;温度变送器的输出口接AD的信号进入口,AD模块会自动输出数字量(需要你自己换算,编写运算程序)

3将运算得到的数字量,进行处理,可以保存、发送、表格存储、图像显示等等(需要在电脑上编写相关软件),用VB、C语言都可以。

以下是vb从数据库中提取每日对应的温度曲线图代码。

Private Sub Command1_Click()

Dim i   As Integer

Dim conn  As New ADODBConnection

Dim rs     As New ADODBRecordset

Set conn = New ADODBConnection

Set rs = New ADODBRecordset

connConnectionString = "Provider=MicrosoftJetOLEDB40;Data Source=" & AppPath & "\tepmdb"

connOpen

rsOpen "select    from  mrwdb", conn, adOpenKeyset, adLockOptimistic

'  Set MSChart1DataSource = rs

With MSChart1

'// 以线条方式显示

chartType = 3

'// 把刻录改为手工方式

PlotAxis(VtChAxisIdY)ValueScaleAuto = False

'// 设置最大值

PlotAxis(VtChAxisIdY)ValueScaleMaximum = 50

'// 设置最小值

PlotAxis(VtChAxisIdY)ValueScaleMinimum = 0

'// 设置每格为 1

PlotAxis(VtChAxisIdY)ValueScaleMinorDivision = 1

'// 增加测试数据

ColumnCount = 1

'//轴坐标标题

PlotAxis(VtChAxisIdX, 0)AxisTitle = "日期"

PlotAxis(VtChAxisIdY, 0)AxisTitle = "温度"

'//轴坐标标题字体大小的设置

PlotAxis(VtChAxisIdX, 0)AxisTitleVtFontSize = 15

PlotAxis(VtChAxisIdY, 0)AxisTitleVtFontSize = 25

'//设置图表标题

TitleText = "日期和温度对应折线图"

'// 将图表作为图例的背景。

ShowLegend = False

'// 标记每个点的值

For i = 1 To PlotSeriesCollectionCount

PlotSeriesCollection(i)DataPoints(-1)DataPointLabelLocationType = VtChLabelLocationTypeAbovePoint

Next

If rsRecordCount > 0 Then

rsMoveFirst

Else

Exit Sub

End If

For i = 0 To rsRecordCount - 1

RowCount = rsRecordCount

Row = i + 1

RowLabel = CStr(rs("日期"))

Data = rs("温度")

rsMoveNext

Next

End With

End Sub

最终调试效果图如下:

回答1:

用串口前请初始化串口。

回答2:

看数据定义

float tp; //设定为单精度

display((uint) tp); //将单精度浮点型小数转换成无符号整型,这里会丢弃小数部分数据,但对tp本身无影响

send_char((uchar) tp);//将单精度浮点型小数转换成无符号字符型,尼玛还不是丢掉了小数部分。然后发送了个8位的tp过去。

回答3:

t1=(a&0x0f)00625;//取小数部分

t=((b<<4)|(a>>4));//取整数部分

//尼玛你非得要这样表示小数?难道你就不可以用2个uchar接收小数和整数,然后去发送

if(t>128)

{

t=t+1;

}

t=t+t1;

//上面是不是这个意思 如果整数部分大于128就让整数部分加1如果不是那么就让整数部分加上小数部分。你的意思是不是大于128就不要小数了,小于128就要个小数。

解决方案先给我分我再给你附上代码

VB,VC中都有串口控件MSComm

,利用这个控件读取51单片机发送过来的数据包,至于数据包格式自己去定义。温度的数据量不大,所以在上位机编程处理好说点。具体MSComm控件的使用方法,你可以看搜索下,也可以看一些书,好几本书都是教VB,VC边串口通信的。

可以通过向通讯控制总站发送命令用VB编写体温判断。

上位机监控管理软件采用VB编制,用户可以通过向通讯控制总站发送命令,提取下位机温湿度数据,完成温度检测。

以上就是关于请问电脑如何通过温度变送器获取温度全部的内容,包括:请问电脑如何通过温度变送器获取温度、VB中如何从Access数据库中提取出一个月温度数据并绘制成月曲线、做一个温度采集系统,程序是单片机温度显示部分可以正常显示温度,要把采集的温度发送到VB里,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9684481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存