<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 如何使用外部模擬電壓控制數(shù)字電位器

          如何使用外部模擬電壓控制數(shù)字電位器

          作者: 時間:2013-10-15 來源:網(wǎng)絡(luò) 收藏

          本應(yīng)用筆記描述了使用外部改變阻值的簡易方法。使用Microchip的PIC12F683型微控制器將轉(zhuǎn)換至控制的I2C數(shù)據(jù)流。DS1803作為本應(yīng)用中的示例器件,另外還用到極少數(shù)其他外部器件。這里介紹的方法適用于其他控制器輸入和其他數(shù)字電位器/可變電阻。

          硬件配置

          圖1顯示了使用PIC12F683的控制電路原理圖。微控制器6個GPIO中的4個用于控制SDA、SCL的輸出信號、單個LED,并接收一路模擬輸入。

          GP5、GP4和GP0分別分配至信號輸出SDA、SCL和LED。SDA和SCL具有4.7kΩ上拉電阻至VDD,直接連接至DS1803的SDA和SCL引腳。微控制器的GP1 IO分配為模擬輸入引腳。通過跳線可選擇地址引腳、分離共用的VCC (VDD)、隔離SDA和SCL。

          如何使用外部模擬電壓控制數(shù)字電位器

          圖1. 控制數(shù)字電位器的原理圖

          工程固件

          本工程的固件在MPLAB IDE (7.40版本)環(huán)境下,由匯編語言編寫。此編譯工具目前由Microchip免費(fèi)提供。全部程序僅占用小于450字節(jié)的程序空間(Flash)和8字節(jié)的數(shù)據(jù)空間(RAM)。

          程序首先初始化PIC的多個配置位,包括ADC和內(nèi)部振蕩器。程序配置ADC為從GP1輸入,并設(shè)置轉(zhuǎn)換時鐘為使用內(nèi)部125kHz振蕩器。

          固件運(yùn)行一個循環(huán):ADC持續(xù)轉(zhuǎn)換模擬輸入端的電壓,一旦轉(zhuǎn)換完畢,10位ADC輸出的高8位作為數(shù)據(jù)字節(jié),傳送至I2C總線。此I2C信號用于控制DS1803。程序設(shè)置為一同控制DS1803的2個電位器;但通過改變固件,可以實現(xiàn)由PIC12F683的2個不同的模擬輸入獨(dú)立的控制2個數(shù)字電位器。

          多種功能

          程序允許用戶通過改變PIC12F683 GP1輸入端的電壓,控制數(shù)字電位器。GP1端電壓的持續(xù)變化會引起數(shù)字電位器電阻的相應(yīng)變化。輸出電阻(ROUT)可以看作是輸入電壓的函數(shù)。

          設(shè)計中使用的DS1803端到端電阻為:50kΩ

          VCC的允許范圍:2.7V至5V

          輸入電壓變化范圍為0V至VCC

          輸出電阻將會遵循:

          ROUT (kΩ) = (50/VCC (kΩ)) × 輸入電壓

          ADC運(yùn)行期間,LED不斷閃爍。如果I2C出現(xiàn)故障,LED保持常亮。一旦故障排除, LED繼續(xù)正常工作。設(shè)計者可通過檢查器件地址是否正確、I2C總線是否連接,排除系統(tǒng)的故障。

          此設(shè)計非常通用,類似的方法可以用在多個系統(tǒng)。一些實例包括:

          非線性傳遞函數(shù)(如,伽馬校準(zhǔn))可以使用可變電阻DS3906結(jié)合

          上拉電阻相關(guān)文章:上拉電阻原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: 模擬電壓 數(shù)字電位器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();