基于AD5272多組變阻器電路設(shè)計(jì)
簡(jiǎn)介
本文記錄了基于D5272三組電子變阻器電路模塊的設(shè)計(jì)。該模塊可以用于基于面包板搭建的各種實(shí)驗(yàn)電路的測(cè)試功能。相比于“機(jī)械變阻器[1]”,該模塊更加小巧,通道多,設(shè)計(jì)比較方便??梢灾苯泳_設(shè)置各通道的電阻值。
確定是,電子變阻器的頻率響應(yīng)比起機(jī)械變阻器要小。這部分詳細(xì)參見(jiàn)“AD5272數(shù)字變阻器[2]”中的內(nèi)容。
電路設(shè)計(jì)
工程文件:
D:\zhuoqing\AltiumDesigner\Tools\2020\DigitRheostat\DigitRheostat.PcbDoc
1. 原理圖設(shè)計(jì)
2. PCB 設(shè)計(jì)
設(shè)計(jì)電路板,使其適合快速制版。獲得快速制版后的電路板,經(jīng)過(guò)焊接形成測(cè)試電路板圓形。
下面是安裝有藍(lán)牙通信模塊后的測(cè)試電路:
三個(gè)電子變阻器的量程分別為:
通道號(hào) | 變阻器的量程 |
---|---|
1 | 20kΩ |
2 | 20kΩ |
3 | 50kΩ |
軟件設(shè)計(jì)
D:\zhuoqing\window\C51\STC\Tools\DigitRheostat\DigitRheostat.uvproj
//***************************************
// PROCESS THE DEBUG BUFFER
//------------------------------------------------------------------------------
void SerialDebugProcessBuffer(void) {
unsigned int nNumber;
unsigned int nAddress;
SerialDebugBuffer2Argument();
if(g_ucSDANumber * 0) return;
if(strcmp("hello", (char *)STD_ARG[0]) * 0)
printf("%s is ready !\r\n", VERSION_STRING);
else IFARG0("ad5272set") {
sscanf(SDA(1), "%d", &nNumber);
sscanf(SDA(2), "%d", &nAddress);
AD5272SetAddress(nAddress);
AD5272WriteRDAC(nNumber);
}
else printf("Error command : %s !\r\n", STD_ARG[0]);
}
控制軟件說(shuō)明:
發(fā)送命令的格式為:
ad5272 number address
number:0~1023 :設(shè)置電阻從最小增加到最大量程。address: 0,1,2 :分別對(duì)應(yīng)著三個(gè)變阻器。從左到右分別是 CH0,CH2,CH1
特性測(cè)試
1. 電子變阻器應(yīng)用電壓范圍
使用一個(gè) 電阻與AD5272串聯(lián),接入測(cè)試交流信號(hào),測(cè)量分壓在AD5272上的輸出電壓波形。具體實(shí)驗(yàn)電路如下圖所示:
通過(guò)分壓輸出的波形可以看到AD5272的端口電壓大體上不能夠小于0V,不能夠大于其工作電壓(5V)。如果超出了這個(gè)范圍,信號(hào)就被鉗位在0~5V之間。
因此在實(shí)際應(yīng)用中,一方面需要避免電子變阻器工作電壓超出這個(gè)范圍,另外在電子變阻器上需要加上保護(hù)串聯(lián)電阻,以免超出電壓范圍之后出現(xiàn)過(guò)大的輸入電流或者輸出電壓。
下圖顯示了AD5272電阻變化過(guò)程中,其上的分壓信號(hào)開(kāi)始飽和過(guò)程。
繪制上述動(dòng)圖的PYTHON程序?yàn)椋?/p>
#!/usr/local/bin/python
# -*- coding: gbk -*-
#******************************
# TEST2.PY -- by Dr. ZhuoQing 2020-04-25
#
# Note:
#******************************
from headm import *
from tsmodule.tshardware import *
from tsmodule.tsdraw import *
gifid = 5
tsgifff()
for i in range(17):
data = int(1024 / 16 * i / 10)
if data >= 1024: data = 1023
zbcmd(b'ad5272set %d 1'%data)
time.sleep(.2)
tsgifaa()
dop2gif(gifid = gifid)
printf('\a')
#------------------------------------------------------------
# END OF FILE : TEST2.PY
#******************************
參考文獻(xiàn):
-
AD5272數(shù)字變阻器[3]
-
機(jī)械變阻器[4]
Reference
機(jī)械變阻器: https://zhuoqing.blog.csdn.net/article/details/104089780
[2]AD5272數(shù)字變阻器: https://zhuoqing.blog.csdn.net/article/details/105605305
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!