ACS712 Measure  .

Slides:



Advertisements
Similar presentations
营养不良的负面影响 营养不良可直接导致孩子身高体重增长缓慢,如果孩子经常不喝牛 奶,不吃肝、蛋或蔬菜,身体就会缺乏 VA ,牙买加西印度大学学者 进行的一项新研究表明,在童年时期营养严重不良的儿童,今后患 高血压的风险增大,童年时营养不良,长大后舒张压较高,小血管 中血液流动阻力较大,心脏输送血液和氧气的效率也较低,这增加.
Advertisements

泓格科技 智能電錶 [2015,09,17] 24 迴路電錶 三相電錶 單相電錶 PM PM PM PM PM P.
著作權所有 © 2004 王國禎、余文俊 1 第十章 數位類比 / 轉換器 Digital To Analog Converter (DAC)
產學攜手合作計畫 楊授印 國立虎尾科技大學 推廣教育中心 主任 動力機械工程系 助理教授 民國103年10月30日.
LinkIt ONE開發板的簡介.
諮商技巧與實務研討 主講人:蔡佩潔臨床心理師 .
按開憂鬱症的結 ---穴位玄機妙用 溫嬪容 醫師.
面試甄試準備要領 魯真 中興大學管理學院副院長.
中信信诚-淮安项目.
教育部技職司 北區:2015年10月12日下午 南區:2015年10月16日下午
傷 仲 永 王安石 S 孫子潔.
垃圾食品與肥胖的關係 敏盛綜合醫院 陳美月 營養師.
第7章 串級放大電路實驗.
放大器-頻率響應實驗 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
Arduino課程 DHT11溫濕感測 中部自造者基地-雲科大.
智慧電子應用設計導論(1/3) Sensor-II
「簡易水土保持申報書」 內容及送審流程之探討
CH2 開發環境介紹 最簡單的互動設計 – Arduino一試就上手 孫駿榮、吳明展、盧聰勇.
物聯網實務 大仁科技大學 資訊工程與娛樂科技系 李文禮.
智慧電子應用設計導論(1/3) Sensor-III
Q101 在701 SDX Linux上的標準安裝與使用程序v2
第七章 MSP430時脈計時器A模組.
內容:串列傳輸 實作:Arduino to PC 、 Arduino to Arduino 簡報:廖崇義
多功能智慧家庭萬能手機搖控器 張右昇( ) 李政澤( ) 曾群翔( ) 成員.
電子技術(三) 小專題報告 紅外線感溫顯示器
102年度新北市立三重商工旗艦計畫實施方案 先進車用電子控制技術培育計畫
JDK 安裝教學 (for Win7) Soochow University
特雷門琴 (Theremin) 是 tone() 函數的應用, 它只需要一個蜂鳴器, 一個光敏電阻, 以及一個 10K 電阻就可以進行測試了. 實際電路接線如下 :光敏電阻與 10 K 電阻串聯, 光敏電阻一端接 5V, 與電阻串接處接Arduino 的 A0 腳, 電阻另一端接地. 而蜂鳴器則 +
    Arduino 1602 LCD 量測電壓顯示 LCD 示波器    林品成 月.
利用Arduino 進行Helmholtz實驗
小專題-霍爾電路之IC研究 組員:施怡儒 S 柯曄新 S 張久藝 S
Arduino.
安裝JDK 安裝Eclipse Eclipse 中文化
日常操作及技术培训 深圳市学生信息管理综合平台 南方教育软件基地有限公司 地址:深圳市南山区科技园北区华瀚科技A-9A
組員:羅敏嘉 S (組長) 劉為云 S 鄭佳姍 S 黃瑩禎 S 指導老師:林得裕 教授
Inverter.
加熱溫度控制器 S 許位祥 S 李世震 S 陳彥霖 S 羅章元 指導教授:林得裕教授.
DHT11 溫溼度感測器 林品成 月.
認識電源供應器 DC POWER SUPPLY 製作者:謝連陽.
組長:林政燁(程式) 組員:戴子又(程式) 廖章祺(實接電路) 蔡振星(實接電路)
第二組 體重計連接wifi 組員:S 羅翊甄 S 江德輝 S 江鴻儀 S 陳彥任.
類比轉數位 IC研究 組員:施怡儒 S 柯曄新 S 張久藝 S
指針式三用電表 2019/4/4.
Arduino課程 RFID 中部自造者基地-雲科大.
知识点0303 RFID射频模块 主讲人:宁波鄞州职业教育中心学校 陈浙 (Arduino功能模块与应用)
    使用Arduino量測交流(AC)電壓    林品成 月.
    使用Arduino量測直流(DC)電壓    林品成 月.
亚博科技 Arduino视频教程 第8讲 蜂鸣器发声实验.
紅外線心律測定 S 劉鴻毅 S 林易霆 S 吳柏寰 S 林恩廷.
語法:結構 實作:Analog in (VR、光敏+七段顯示電壓) 簡報:廖崇義
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
第13單元 實習8 Focus-Router-Lamp
物聯網期末報告 組員: 邱景柏 方嘉慶 陳約翰 洪銘陽
CVPlayer下載及安裝& IVS操作說明
Arduino互動設計 教學課程 本教材僅用於學術教學 請勿用在商業行為.
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
知识点0204 夏普红外测距传感器 主讲人:宁波鄞州职业教育中心学校 陈浙 (Arduino功能模块与应用)
第二章 类型、对象、运算符和表达式.
取得與安裝TIDE 從TIBBO網站取得TIDE
MiRanda Java Interface v1.0的使用方法
自停式向下計數器 通訊一甲 B 楊穎穆.
電子學實驗--全波整流 通訊二甲 B 楊穎穆.
使用VHDL設計-8x3編碼電路 通訊一甲 B 楊穎穆.
遙控車程式流程圖規劃 學號:B 姓名:楊 穎 穆 老師:田 慶 誠.
班級:博碩子一甲 授課老師:鐘國家 助教:陳國政
第五章 序列埠通訊 並列與序列通訊簡介 認識序列埠 認識字元資料類型 字串資料類型 從序列埠監控視窗觀察變數 從Arduino接收序列資料
查表法&電腦IO Port二進制轉七段顯示器
105年教育部熱血老師翻轉學生「教育愛」座談會
第2章 Arduino编程.
班 級: 通訊三甲 學 號: B 學 生: 楊 穎 穆 老 師: 田 慶 誠
Presentation transcript:

    ACS712 Measure  

大綱 Outline 實驗目的 系統架構 DC Measure……..p. 4 AC Measure………p.18 實驗步驟 程式介紹 DC Measure……p. 7~p. 13 AC Measure………p. 20~p. 24 注意事項 DC Measure……..p. 14 AC Measure………p. 25 實驗結果 DC Measure……..p. 15~p. 16 AC Measure………p. 26~p. 28 附錄

研究背景 實驗目的 利用 ACS712電流感測器模組來測量DC及AC電流大小;模組可以測量DC & AC ±30A範圍內電流,並將電流值轉換為相對應的類比電壓,每1A的電壓變化為66mV;無檢測電流通過時,輸出電壓=VCC/2。 類比電壓換算電流計算公式推導: 1)ATMEGA328P ADC是10bit,所以範圍為0~1023 2)30A ACS712 感測器,對應類比量輸出66mV/A 3)ACS712 沒有電流通過時,輸出電壓是VCC/2 (=ADC 512 即1024/2) 4)理想Vcc=5V 綜合以上可導出以下公式 公式: I=(ADCcount-512[理想])*(5000mV[理想Vcc]/1024)/66mV[理想]

    ACS712 DC Measure  

研究背景 DC系統架構 實驗所需材料: Arduino UNO x 1 ACS712 x 1 Power Supply x 1 Load x 1 Load ACS712 30A Arduino UNO DC Power Supply

4.*儲存數值並匯入Origin進行fitting。 研究背景 DC實驗步驟 1.請如前一頁之系統架構圖接線。 2.開啟Arduino程式,並使之先做歸零動作;先斷開待測試電源(即不要讓電流通過ACS712 IP+、IP-),以取得歸零值(每次重開機,一定要做此歸零動作,注意事項中會詳細解釋),再接測試電源,便可讀出較精準電流值。 3.進行量測,開啟Power Supply並開始給電讓鹵素燈亮起,此時ACS712板子會接收值並透過Arduino UNO板將數值顯示於電腦監控視窗上。 4.*儲存數值並匯入Origin進行fitting。

研究背景 程式介紹 ACS712 Measure 主程式 量測數值監控視窗

研究背景 程式介紹 //=== ACS712_30A === //精度改進版 programed by LIN #define Ideal_mv_A 66.0 // ACS712_30A 對應類比量輸出66mV/A (理想值 at Vcc=5.0V) float ADCcount; // 所讀出之類比轉數位值 (0-1023) float I_ave; // 所測電流值(採樣1000次再取平均值) float Vcc; // 實際(接近+5V)電壓值 float Zero_count; // ACS712 無電流輸入時offset歸零值(理想=512) float Real_mV_A; // ACS712 實際對應類比量輸出??mV/A (理想值66mV/A at Vcc=5.0V)

研究背景 程式介紹 void setup() { Serial.begin( 9600 ); //設定serial port傳輸速率 delay(100); // 取得歸零值(無電流時之ADC值當作歸零值;以下取1000次之平均值) // 理想上ACS712無電流輸入時其輸出是Vcc/2(=ADC 512),而Arduino之ADC為10bit=0~1023 Zero_count=0.0; // 因analogRead()每次讀取類比電壓存在著誤差,故取樣1000次採平均值 for(int i = 0; i < 1000; i++) { Zero_count = Zero_count + analogRead(A0)/1000.0; //因要取1000次平均值再累加,故除1000 delay(1); //等待1ms; 因 analogRead() 此函式每次讀取需要約0.1ms }

研究背景 程式介紹 Serial.println("========= ACS712_30A by LIN ========="); // 印出歸零值當參考 Serial.println("========= ACS712_30A by LIN ========="); Serial.println("......... Zeroing !........."); Serial.print("Zero_count = "); Serial.println(Zero_count); // 看看ACS712無電流輸入時offset歸零值(理想=512) //利用內部參考1.1v電壓,來讀取實際之Vcc電壓 Vcc = readVcc(); Serial.print("Vcc = "); Serial.print(Vcc); // 看看實際Vcc電壓(理想=5V=5000mV) Serial.println("mV (ideal Vcc = 5000mV)"); //ACS712 output sensitivity(理想)=185mV/A at Vcc=5.0V Real_mV_A=Vcc*Ideal_mv_A/5000.0; Serial.print("Real_mV_A = "); // ACS712實際對應類比量輸出=??mV/A Serial.print(Real_mV_A); Serial.println("mV (ideal Output_mV_A = 66mV)"); Serial.println("-------- Start testing ! ----------"); }

研究背景 程式介紹 // 讀取ADC值(取樣1000次,以便取得較穩定值) ADCcount=0.0; void loop() { // 讀取ADC值(取樣1000次,以便取得較穩定值) ADCcount=0.0; for(int i = 0; i < 1000; i++) { ADCcount = ADCcount + analogRead(A0)/1000.0; //因要取1000次平均值再累加,故除1000 delay(1); //等待1ms; 因 analogRead() 此函式每次讀取需要約0.1ms } // 將ADC換算成電流 // 公式:I=(count-Zero_count)(Vcc/1024)mV/66mV // I_ave=(ADCcount-Zero_count)*(Vcc/1024.0)*1000.0/66; //(單位mA 取樣1000次之平均值) I_ave=(ADCcount-Zero_count)*(Vcc/1024.0)*1000.0/Real_mV_A; //(單位mA 取樣1000次之平均值)

研究背景 程式介紹 // 印出 Serial.print("ADC:"); Serial.print((int)ADCcount,DEC); Serial.print( (int)I_ave, DEC ); //印出所測電流 Serial.print( " mA" ); //(單位mA) Serial.print( " = " ); Serial.print((float)I_ave/1000.9, DEC); //(單位A) Serial.println( " A" ); }

研究背景 程式介紹 //========================================================= // 利用內部參考1.1v電壓,來讀取較精確Vcc +5V電壓 long readVcc() { long result; // Read 1.1V reference against AVcc ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); delay(2); // 等Vref穩定 ADCSRA |= _BV(ADSC); // 開始轉換 while (bit_is_set(ADCSRA,ADSC)); // 測量 result = ADCL; result |= ADCH<<8; result = 1125300L / result; // 反推算出Vcc(單位mV); 其中 1125300 = 1.1*1023*1000 return result; // Vcc 單位mv }

ACS712是利用霍爾效應原理來檢測電流,使用時請盡量避免磁場對此IC造成影響。 DC注意事項 ACS712是利用霍爾效應原理來檢測電流,使用時請盡量避免磁場對此IC造成影響。 因5V是理想電壓值,但實際電壓值在4.8~5.2V都有可能,故利用內部1.1V參考電壓,來取得實際Vcc電壓值,讀取較精確ADC值;一但Vcc不精確,勢必影響ADC之讀出值。 程式開啟時需先做歸零,取得歸零值(無電流時之ADC值當作歸零值)。 因程式中analogRead()每次讀取類比電壓存在著誤差,故取樣1000次採平均值。 開啟量測數值監控視窗時,要將右下角要設成9600baud,否則可能會出現亂碼。

研究背景 DC實驗結果 2.左側供電:4.4V,2.8A 1.開啟Arduino程式,做歸零動作 3.讀值並顯示於電腦監控視窗

實際量測電流值與理想電流值Fitting之結果 研究背景 DC實驗結果 實際量測電流值與理想電流值Fitting之結果 量測範圍: + 0.01A ~ +3A 量測範圍: -0.01A ~ -3.1A

    ACS712 AC Measure  

AC系統架構 實驗所需材料: Arduino UNO x 1 ACS712 x 1 AC110V x 1 Load x 1 LOAD

3. AC110V使燈泡亮起,進行量測,此時ACS712板子會接收值並透過Arduino UNO板將數值顯示於電腦監控視窗上。 1.請如前一頁之系統架構圖接線。 2.開啟Arduino程式,並使之先做歸零動作;先斷開待測試電源(即不要讓電流通過ACS712 IP+、IP-),以取得歸零值(每次重開機,一定要做此歸零動作,注意事項中會詳細解釋),再接測試電源,便可讀出較精準電流值。 3. AC110V使燈泡亮起,進行量測,此時ACS712板子會接收值並透過Arduino UNO板將數值顯示於電腦監控視窗上。 4.*儲存數值並匯入Origin進行fitting。

研究背景 AC程式介紹 ACS712 Irms Measure 主程式 量測數值監控視窗

AC程式介紹 const int sensorIn = A0; int Sen = 66; // 30A之Sens值為66mV double V = 0; double VRMS = 0; double Irms = 0; void setup(){ Serial.begin(9600); Serial.println("========= AC Irms by LIN ========="); Serial.println(“-------- Start testing ! ----------”); } void loop(){ V = getVPP(); VRMS = (V/2.0) *0.707; Irms = ((VRMS * 1000.000)/Sen-0.074); Serial.print("Irms= "); Serial.print(Irms); Serial.println(" A "); } float getVPP() { float result; int readValue; //從sensor讀值 int maxValue = 0; // 儲存最大值 int minValue = 1024; // 儲存最小值 uint32_t start_time = millis();

AC程式介紹 while((millis()-start_time) < 1000) //1秒讀取樣品一次 { readValue = analogRead(sensorIn); // 讀取是否有新的數值 if (readValue > maxValue) { /*紀錄最大值*/ maxValue = readValue; } if (readValue < minValue) { /*紀錄最小值*/ minValue = readValue; // 最大值減最小值 result = ((maxValue - minValue) * 5.0)/1024.0; return result; }

研究背景 AC程式介紹 ACS712 Ip-p Measure 主程式 量測數值監控視窗

AC程式介紹 int ADCcount; float I; // 所測電流值 float Zero_count; // ACS712 無電流輸入時offset歸零值(理想=512) void setup() { Serial.begin( 115200 ); Zero_count=0.0; Zero_count = (Zero_count + analogRead(A0));} unsigned long time; void loop() { time = micros(); // 設定讀取時間之精度 ADCcount = analogRead(A0); // 讀取類比電壓 I=4.8828125E-3*(ADCcount-Zero_count)/0.067; Serial.print(time*1E-6,4); Serial.print(" "); Serial.println(I); }

ACS712是利用霍爾效應原理來檢測電流,使用時請盡量避免磁場對此IC造成影響。 程式開啟時需先做歸零,取得歸零值(無電流時之ADC值當作歸零值)。 因Irms程式中((millis()-start_time) < 1000);故讀取此函式analogRead(sensorIn) 需要約1s。 Ip-p程式中time = micros(),讀值是微秒(μs)。 開啟量測數值監控視窗時,要將右下角要設成程式中Serial.begin()所設定之baud值,否則會出現亂碼。 Irms程式用 Ip-p程式用

AC實驗結果 Irms Measure 1.開啟Arduino程式,做歸零動作 2.讀值並顯示於電腦監控視窗

AC實驗結果 Ip-p Measure 1.開啟Arduino程式,做歸零動作 2.讀值並顯示於電腦監控視窗

Ip-p量測 Fitting之結果 研究背景 AC實驗結果 量測時間顯示: 1s~2s 量測時間顯示:: 1s~10s

Thank you for your attention

研究背景 附錄 使用Arduino內建工具-序列埠監控視窗,雖然可即時觀看所量測到的數值,但無法將量測到的數值儲存起來;為了解決無法儲存數據的缺點,我們使用Tera Term(開源終端機連線工具) 把 Arduino 所量測到之數值存到電腦上指定之文字文件中。 Arduino & Tera Term 介面

https://osdn.net/projects/ttssh2/releases/ 研究背景 附錄 (Tera Term下載網址): https://osdn.net/projects/ttssh2/releases/ 進入網址往下拉至此畫面,點選exe. or zip.Download下來,安裝

研究背景 附錄 啟動 Tera Term 的時候會出現 New connection 畫面; Tera Term抓取數值顯示介面 請選 Serial 並點Port欄下拉選單選擇COM Port Tera Term抓取數值顯示介面

研究背景 附錄 Tera Term檔案儲存設定介面 儲存Tera Term抓取數值之文字檔案

霍爾效應原理(Hall effect) 簡介: 研究背景 附錄 霍爾效應原理(Hall effect) 簡介: 此電磁效應說明當導體上通過一定值的電流,此時外加一個與電流方向相垂直的磁場,會使得導線中的電子受到勞倫茲力而聚集到導體的一側,從而在電子聚集的方向上產生一個電場,此一電場將會使後來的電子受到電力作用而平衡掉磁場造成的洛倫茲力,使得後來的電子能順利通過不會偏移,這一現象是由霍爾(Edwin Herbert Hall,1855—1938)首先發現的,故稱霍爾效應(Hall effect) 。 在一塊寬為w,厚度為h的半導體薄片,若在z方向加一均勻的磁場B,在x方向通一穩恒的電流Is,則在y方向的1-3面和2-4面之間將產生一穩恒的電位差VH=V1-3-V2-4 ,電位差VH故稱霍爾電壓(The Hall voltage)