第三十课--Microduino制作的直流电压电流表--C
用Microduino制作的直流电压电流表--C#上位机显示
目的本教程用Microduino制作了直流电压电流表,PC端的C#窗体程序可以显示被测电压电流值。通过本教程可以让读者加深对运放的理解,还可以学习C#的编程实例,为灵活运用Microduino搭建实际电路作准备。 设备Microduino-Core 是以 Atmel ATmega328P为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
AD620仪用放大器AD620仪用放大器是美国AD公司的产品, 用户只需使用一只外部电阻器便可以设置从1到1,000任何要求的增益,本示例电阻采用外接电阻是2K,也就是说增益G=1+(49.4/2)=25.7。仪用放大器 AD620的核心是三级运放电路,有较高的共模抑制比,温度稳定性好,放大频带宽,噪声系数小,精确度高。20元一个(笔者本地零售价格)的AD620与普通1元一个的LM358有什么区别?价格。 除去价格,也不去关注datasheet中的性能参数,就本实例而言,0.01欧姆电阻流过50mA电流时,该差分信号(0.01欧姆电阻两端)经AD620放大后可以正确显示该电流值,依笔者实测,LM358不能正确显示所测电流值。 实验原理图该电路可以测试的量程电流为19.45A(理论值),电压为50V(理论值),如果实际应用应留出余量。
程序int myValueA0_V=0;//for measure voltage
int myValueA5_I=0;//for measure current
void setup()
{
Serial.begin(9600);
}
void loop()
{
myValueA0_V=analogRead(A0);
delay(10);
Serial.print(myValueA0_V*5.0/1023,3);
Serial.print('\n');//C# program need this charactor to split
myValueA5_I=analogRead(A5);
delay(10);
Serial.print(myValueA5_I*5.0/1023,3);
delay(300);//send data delay fit for c# program time_tick
}
调试
Csharp program and picture:文件:Csharp program and pictures.rar 结果观察电压电流值,与理论计算值对比分析。 视频 |