实际问题
在开发数字仿真系统时需要用PT100发生器,这个产品其实也有现成的产品,比如NI公司的PT100发生电路,很贵。查资料看到有I2C控制的数字电位器。用来做PT100数字发生器,实验可行,与大家分享。
实现电路
采用ESP32控制器按控制系统发送的modbusRTU电阻设置命令给出电阻阻值。抱着侥幸的心理到Arduino库中查找是否有现成的库可以使用,结果还真找到了日本人提供的库,是一个Asuki Kono提供的库。可以直接使用来设置和读取阻值。
样板图
程序举例
void setup()
{
Serial.begin(115200);
delay(1000);
while ( !Serial ) {}
Serial.println("COM 0 setup OK!");
Serial.print("The modbus 485 address = ");
Serial.println(localAdd);
pot01.begin();
pot02.begin();
pot03.begin();
pot04.begin();
pinMode(LED_BUILTIN, OUTPUT);
RS485_Init(57600);
Ticker_Init(10);
}
板子可以正常使用了,下一步是细分电阻值,因为数字电位计的阻值都比较大,找到这个阻值是1KΩ的不容易。而PT100的阻值范围比较小,应该是85Ω到150Ω之间。我并联了4路作为一路使用。可以仿真-40~400℃的阻值。
感受
采用Arduino编程可以快速的实现电路功能,而不是关注寄存器,定时器等编程细节,做出适合自己的应用板子。
|