0
一,內(nèi)容簡(jiǎn)介
本文將介紹以HY16F198搭配霍爾傳感器(WCS1800)進(jìn)行交流電流數(shù)值量測(cè),最大可量測(cè)電流范圍從0.1A?17.68A。本文實(shí)驗(yàn)數(shù)據(jù)從0A?17.6A,比較使用電表安捷倫34401A與HY16F198透過(guò)交流信號(hào)計(jì)算出在不同頻率在45Hz,50Hz的60Hz的之間所得到的交流電流最大誤差率可以控制在3%以內(nèi)。
二,說(shuō)明原理
量測(cè)原理
透過(guò)WCS1800將感應(yīng)到的交流電流轉(zhuǎn)變?yōu)檩敵鲭妷海╒out),而輸出電壓(Vout)組成包含(Vac)交流電壓訊號(hào)和(Vdc)直流電壓訊號(hào)混和并變成的訊號(hào),并使用HY16F198量測(cè)輸出電壓(Vout)訊號(hào),并通過(guò)算法分析ADC計(jì)數(shù)數(shù)值,進(jìn)而換算出相對(duì)感測(cè)到的交流電流負(fù)載。但需注意,透過(guò)霍爾傳感器(A)的輸出電壓最大誤差為正負(fù)為6mV,詳細(xì)的霍爾傳感器(WCS1800)轉(zhuǎn)出每1安培特性規(guī)格表顯示在下一頁(yè)電器特性表。
霍爾傳感器(WCS1800)因?yàn)楸旧淼妮敵鲭妷海╒OUT)帶有吸塵器交流電壓加上Vdc的直流電壓混和成分,而伏的數(shù)值為1/2Vdd時(shí),因此,本文應(yīng)用使用HY16F198設(shè)置VDDA電壓為3V,并且在ADC緩存器內(nèi)部設(shè)置ADC輸入?yún)⒖茧妷悍糯蟊稊?shù)為VREF*1/2(VREF=VRPS-VRNS),如把緩存器做設(shè)置設(shè)定,可以準(zhǔn)確的量測(cè)到輸入電壓最大范圍1.5V。但是這樣的連接,就無(wú)法量測(cè)到HallSensor的Vout輸出電壓范圍,所以需要在外部增加兩個(gè)分壓電阻,在ADC的AIO(0)與VDDA和VSS之間各串10k奧姆電阻做分壓,因此量測(cè)到的電壓數(shù)值再透過(guò)交流信號(hào)計(jì)算分析求出感應(yīng)到的交流電流,并且由LCD顯示器做電流數(shù)值顯示。
基于HY16F198和霍爾傳感器實(shí)現(xiàn)電流數(shù)值測(cè)量系統(tǒng)的設(shè)計(jì)
基于HY16F198和霍爾傳感器實(shí)現(xiàn)電流數(shù)值測(cè)量系統(tǒng)的設(shè)計(jì)
控制芯片
單片機(jī)簡(jiǎn)介:HY16F系列32位高性能閃存單片機(jī)(HY16F198)
(1)采用最新安第斯山脈32位CPU核心N801處理器
(2)電壓操作范圍2.2?3.6V,以及-40℃?85℃工作溫度范圍。
(3)支持外部的20MHz石英震蕩器或內(nèi)部16MHz的高精度RC震蕩器,擁有多種CPU工作頻率切換選擇,可讓使用者達(dá)到最佳省電規(guī)劃。
(3.1)運(yùn)行模式350uA@2MHz的/2(3.2)待機(jī)模式為10uA@32KHz的/2(3.3)休眠模式2.5uA(4)程序內(nèi)存64K字節(jié)閃存ROM(5)數(shù)據(jù)存儲(chǔ)器8K字節(jié)的SRAM(
(3.2)待機(jī)模式10uA@32KHz/2
(3.3)休眠模式2.5uA
(4)程序內(nèi)存64KBytesFlashROM
(5)數(shù)據(jù)存儲(chǔ)器8KBytesSRAM。
(6)擁有6)具有BOR和WDT功能,可防止CPU死機(jī)。BOR和WDT功能,可防止CPU死機(jī)。
(7)24位高精密度ΣΔADC模擬數(shù)字轉(zhuǎn)換器(7.1)內(nèi)置PGA(可編程增益放大器)最高可達(dá)128倍放大。
(7.2)內(nèi)置溫度傳感器。
(8)超低輸入噪聲運(yùn)算放大器。
(9))16位定時(shí)器A
(10)16位定時(shí)器B模塊具PWM波形產(chǎn)生功能
(11)16位定時(shí)器C模塊具捕獲/比較功能
(12)硬件串行通訊SPI模塊
(13)硬件串行通訊I2C模塊
(14)硬件串行通訊UART模塊
(15)硬件RTC時(shí)鐘功能模塊
(16)硬件TouchKEY功能模塊
三,系統(tǒng)設(shè)計(jì)
硬件說(shuō)明
HY16F198搭配HallSensor連接電路如下,AIO1與HallSensor的Vout接,AIO0透過(guò)10K電組分壓電路連接在VDDA與VSS之間,這樣就可以量測(cè)到帶有1/2VDDA的交流電壓訊號(hào)。
主要組件介紹(1)MCU:HY16F198,功能為量測(cè)電信號(hào)、控制、運(yùn)算包含功能為儲(chǔ)存校正參數(shù)。
(2)LCDDisplay:負(fù)責(zé)顯示量測(cè)出來(lái)的電流數(shù)值。
(3)10K奧姆分壓電路:主要做為分壓電路應(yīng)用,可以量測(cè)到帶有1/2VDDA的交流電壓訊號(hào)。
(4)HallSensor:將感應(yīng)到的交流電流轉(zhuǎn)換為Vac加上Vdc的混合電壓輸出訊號(hào)。
函式使用說(shuō)明:1.voidAC_DataCount(intindex,intADC_Data):把量測(cè)到的ADCData轉(zhuǎn)換成ACData.intindex:代表所量測(cè)到的ADCData資料筆數(shù)。
intADC_Data:使用HY16F198ADC所量測(cè)到的ADCData數(shù)值。
2.longlongAC_Algorithm(void):ACData透過(guò)交流信號(hào)算法計(jì)算出電流數(shù)值。
一、范例程序
/*——*//*MAINfunction*//*——*/intmain(void)
{longlongAC_Value;DisplayInit();ClearLCDframe();Delay(10000);DisplayHYcon();Delay(1000);MCUSTATUSbits._byte=0;Count=0;InitalADC();SYS_EnableGIE(7,0x1FF);//EnableGIE(GlobalInterrupt)
while(1)
{if(MCUSTATUSbits.b_ADCdone)//b_ADCdone=1executebelow{MCUSTATUSbits.b_ADCdone=0;AC_Value=AC_Algorithm();//TodoACalgorithmandtoshowcurrentvalueAC_Value=AC_Value/0.5770;//Using60HZgainvalue,calibrateat2000mALCD_DATA_DISPLAY(AC_Value);//DisplayACValueCount=0;DrvADC_CombFilter(0);DrvADC_ClearIntFlag();DrvADC_EnableInt();DrvADC_CombFilter(1);}return0;}/*——*//*ADCInterruptSubroutines*//*——*/voidHW2_ISR(void)
{intADCData;if(DrvADC_ReadIntFlag())
{DrvADC_ClearIntFlag();ADCData=DrvADC_GetConversionData();AC_DataCount(Count++,ADCData);//ACAlgorithm:togetADCDataif(Count》=AC_DataLen)//todo4096times{DrvADC_DisableInt();MCUSTATUSbits.b_ADCdone=1;}/*——*//*ADCInitializationSubroutines*//*——*/voidInitalADC(void)
{//SetADCinputpinDrvADC_SetADCInputChannel(ADC_Input_AIO1,ADC_Input_AIO0);//SettheADCpositive/negativeinputvoltagesource.DrvADC_InputSwitch(OPEN);//ADCsignalinput(positiveandnegative)short(VISHR)control.DrvADC_RefInputShort(OPEN);//SettheADCreferenceinput(positiveandnegative)short(VRSHR)control.DrvADC_Gain(ADC_PGA_Disable,ADC_PGA_Disable);//Inputsignalgainformodulator.DrvADC_DCoffset(0);//DCoffsetinputvoltageselection(VREF=REFP-REFN)
DrvADC_RefVoltage(VDDA,VSSA);//SettheADCreferencevoltage.DrvADC_FullRefRange(1);//SettheADCfullreferencerangeselect.//0:Fullreferencerangeinput//1:1/2referencerangeinputDrvADC_OSR(10);//10:OSR=32DrvADC_CombFilter(ENABLE);//EnableOSRDrvADC_ClkEnable(0,1);//SettingADCCLOCKADCK=HS_CK/6Risingedgeishigh//SetVDDAvoltageDrvPMU_VDDA_LDO_Ctrl(E_VDD3V);DrvPMU_BandgapEnable();DrvPMU_REFO_Enable();DrvPMU_AnalogGround(ENABLE);//ADCanaloggroundsourceselection.//1:Enablebufferanduseinternalsource(needtoworkwithADC)
//SetADCinterruptDrvADC_EnableInt();DrvADC_ClearIntFlag();DrvADC_Enable();}
雙面板免費(fèi)加費(fèi),四層板加急打樣,厚銅電路板打樣