» หัวข้อ » เคล็ดลับ »มิเตอร์วัดกระแสไฟฟ้าในช่วงกว้างแรงดันและอุณหภูมิ

เครื่องวัดกระแสไฟฟ้าแรงดันและอุณหภูมิที่หลากหลาย

วัตถุประสงค์:
สำหรับการวัดและแก้ไขเวลาในหน่วยความจำแฟลชของกระบวนการที่ยาวนานซึ่งแสดงในกระแสและแรงดันไฟฟ้าเช่นการชาร์จแบตเตอรี่และแบตเตอรี่ มันเป็นไปได้ที่จะแก้ไขอุณหภูมิพร้อมกัน

พารามิเตอร์สัญญาณอินพุต:
ปัจจุบัน I = 25mka - 2a
แรงดันไฟฟ้า U = 0 - 5V
อุณหภูมิ t = -30 - + 120gС
เวลาถูกกำหนดโดยนาฬิกาควอทซ์ภายใน

แหล่งจ่ายไฟ:
จากแหล่ง 12v / 0.3a
ฉันบริโภค <70ma

การก่อสร้าง:
เครื่องวัดประกอบบนสองโมดูล Arduino นาโนเชื่อมต่อผ่านโปรโตคอล ModBus ดูแผนภาพ Arduino หนึ่งตัวติดตั้งบนตัวยกที่มีขั้วต่อ โมดูลเชื่อมต่อผ่านตัวเชื่อมต่อ สายไฟและโมดูลตัวเองได้รับการหุ้มฉนวนจากความผิดพลาดความร้อน - cambric

สัญญาณอินพุตจะถูกป้อนผ่านขั้วเกลียว

ที่แผงด้านหน้ามีตัวบ่งชี้ผลึกเหลวของพารามิเตอร์ที่วัดได้และไฟ LED แสดงการสลับช่วงหรือนอกช่วง

มิเตอร์ถูกประกอบในที่อยู่อาศัย 145x85x40
เซ็นเซอร์อุณหภูมิดำเนินการผ่านขั้วต่อ การส่งสัญญาณถูกจัดระเบียบในสายสองสาย ตัวต้านทานฟีดในตัวเชื่อมต่อ

เพื่อความสะดวกในการเขียนโปรแกรมตัวเชื่อมต่อ Arduino USB เป็นแบบภายนอก






โครงการ

สามารถดาวน์โหลด Scheme ได้จากไฟล์ Izmeritel.rar

เลือก Arduino สองตัวด้วยเหตุผลสองประการ: Arduino Nano มีวางจำหน่ายและไม่เพียงพอในหน่วยความจำเดียวและมีการวางแผนเพิ่มเซนเซอร์เพิ่มเติม นอกจากนี้ฉันต้องการที่จะโทสมาคม Arduino สำหรับโปรโตคอลเครือข่าย ModBus นี้ได้รับเลือก ModBus กำหนดหน่วยประมวลผลหลักหนึ่งตัว - Master และหลาย Slaves - Slave ในงานนี้มี Slave หนึ่งตัวซึ่งเป็นการวัดอุณหภูมิแรงดันและกระแส On Master - นาฬิกาและบันทึกไฟล์ หน่วยความจำเนื้อต้องน้อยกว่า 4GB และจัดรูปแบบใน FAT

เนื่องจากมีการวางแผนที่จะวัดกระแสจากμAถึง A, กระแสจะถูกวัดใน 4 ช่วง (ดูตาราง Ranges), Arduino Slave ตรวจสอบการเปลี่ยนจากช่วงหนึ่งไปยังอีกช่วงหนึ่ง, สร้างรหัส shunt ที่สอดคล้องกันสำหรับกระแสที่วัดจาก M1-2 เมื่อเข้าใกล้เส้นขอบของช่วงช่วงถัดไปจะเปิดใช้งานนั่นคือกุญแจปัจจุบันจาก T1-1 --- T2-2 ถูกปิดใช้งานและปุ่มถัดไปจะเปิดขึ้น ในกรณีนี้การแบ่งสูงสุด = 100ohm เปิดอยู่อย่างต่อเนื่อง หากมีค่าเกินในช่วง LED D8, D9 จะติดสว่าง

แบ่งการวัดปัจจุบันเป็นช่วง
Uout_max = 5v KusOU = 20 Δ = Ish / 1024

อัตราขยายของแอมพลิฟายเออร์ในการดำเนินงาน M1-2 ถูกตั้งค่า = 20 แล้วจะไม่เปลี่ยนแปลง (ที่แผงด้านหน้าติดตั้งผิดพลาด)
วัดแรงดันไฟฟ้าผ่านผู้ติดตามบน OU M1-1วงจรอินพุตของ op-amp และ Arduino ได้รับการคุ้มครองโดยไดโอด (ซีเนอร์ไดโอดอยู่ใน Arduino แต่ฉันไม่รู้พารามิเตอร์ดังนั้นจึงเป็นการดีกว่าที่จะหักล้างมัน)

LCD1602 ถูกเลือกเป็นตัวบ่งชี้ มันเชื่อมต่อกับ Arduino Master ยิ่งไปกว่านั้นตัวบ่งชี้ที่สามารถเชื่อมต่อกับทั้ง Arduino เพียงแค่เปลี่ยนการเชื่อมต่อ Arduino (เมื่อปิดเครื่อง) การเชื่อมต่อกับ Arduino Slave จะแสดงด้วยเส้นประ (ซึ่งใช้สำหรับการเขียนโปรแกรม) ด้วยการเชื่อมต่อหลัก (กับต้นแบบ) บน LCD1602 สามารถแสดงหน้าจอ 4 หน้าจอได้โดยการสลับแถบเลื่อนสวิตช์เลื่อน p1-p2

Screen1: จากด้านบนบริการข้อมูลการแลกเปลี่ยนระหว่าง Arduino: C คือจำนวนของการแลกเปลี่ยนระหว่าง Arduino, E คือจำนวนข้อผิดพลาดในระหว่างการแลกเปลี่ยนของ Sh- หมายเลขของปัด;
เวลาด้านล่าง - วันที่


หน้าจอ 2: U1, I1, Shunt No. , (0.00 สำรองด้านขวาล่าง)


หน้าจอ 3: U2 อุณหภูมิ (ui- สแตนด์บาย)


Screen4: เปิดใช้งานการบันทึก SD, บันทึกเวลาเป็นชั่วโมง, หมายเลขบรรทัดในไฟล์,
00- สถานะของช่วงปัจจุบัน 1 ช่วงปกติ 0 ออกช่วงสถานะแรงดัน 1, พลังงานคงที่ของแหล่งภายนอก


เมื่อเชื่อมต่อกับ Slave - 2 หน้าจอ สวิตช์ p3 เปิดใช้งานการบันทึกในหน่วยความจำ Micro Flesh
แหล่งจ่ายไฟถูกเลือก 12v เพื่อให้ได้ลักษณะเชิงเส้นของ op-amp (เพื่อหลีกเลี่ยงการอุดตันที่ขอบของช่วง) ด้วยเหตุผลเดียวกันจึงใช้แรงดันลบจากรูปจำลองที่ KR1006VI1 การใช้เครื่องกำเนิดไฟฟ้า Arduino จะสร้างแรงดันไฟฟ้าที่เสถียรน้อยลง ในการสร้างพลังงาน 5 โวลต์มีการใช้ตัวแปลงขั้นตอนลง แต่คุณสามารถทำได้โดยไม่ต้องส่ง + 12V ไปยังอินพุต VIN Arduino Nano
การเขียนโปรแกรมร่วม Arduino มีคุณสมบัติเนื่องจากการสื่อสารกับคอมพิวเตอร์ไม่ว่างกับโปรโตคอล ModBus ในการโหลดภาพร่างเข้าสู่ Arduino อย่างใดอย่างหนึ่งคุณต้องเปิดใช้งานสัญญาณรีเซ็ต RST ในการทำเช่นนี้ให้ใช้จัมเปอร์บล็อก S, บล็อกเอ็มหรือกดปุ่มรีเซ็ตบนโมดูล Arduino จนกว่าการดาวน์โหลดจะเสร็จสิ้นซึ่งสะดวกกว่าและมีโอกาสที่จะทำให้การดาวน์โหลดเสียหาย เนื่องจากฉันวางแผนที่จะขยายอุปกรณ์ USB Arduino ของฉันฉันจึงดึงเคสออกมา

ทรานซิสเตอร์ T5 (FR024N) ควรจะใช้เพื่อเปิด / ปิดกระบวนการตัวอย่างเช่นการชาร์จประจุของแบตเตอรี่ ในขณะที่มันไม่ได้เกี่ยวข้อง

ซอฟต์แวร์
เป็นสิ่งที่สำคัญที่สุดที่ผู้เริ่มต้น (และตัวฉันเอง) จะไม่เจ็บและสามารถใช้เป็นข้อมูลอ้างอิงได้ แต่อย่าอ้างว่าเป็นการมองโลกในแง่ดี

ไลบรารีและรหัสโปรแกรมอยู่ในไฟล์ Izmeritel PRO.rar
ร่างสำหรับต้นแบบ ModBus_Master10_SD_T_10_2 ร่างสำหรับทาส ModBus-Slave10_T_UI_10_2 ส่วนที่เหลือของห้องสมุด
โปรแกรมในสภาพแวดล้อมของ Arduino1.6.0 มันมีไลบรารี SD, LiquidCrystal, Wire ไม่จำเป็นต้องดาวน์โหลด

เวลาเป็นชั่วโมงถูกตั้งค่าในการตั้งค่าดังนี้ ตั้งเวลาจริงและโหลดภาพร่าง จากนั้นใส่เครื่องหมายในบรรทัดเพื่อตั้งค่าวันที่และเวลาและโหลดภาพร่างใหม่

ผลลัพธ์ของโปรแกรมจะเป็นการระบุเวลาและวันที่ (ชั่วโมง) กระแสไฟฟ้าแรงดันอุณหภูมิบน LCD1602 และการบันทึกพารามิเตอร์เหล่านี้ในไฟล์ IZMER1.TXT ในหน่วยความจำ Micro Flesh ไฟล์จะมีตารางประเภทนี้:

0; 2019/04/13; 00:11:10; Zap (h) = 0.05; tc = 29.31; U1 = 1.71; I1 = 0.00; P1 = 0.00; U2 = 0.14; DiaI norma; DiaU norma; C = 762
1; 2019/04/13; 00:11:16; Zap (h) = 0.05; tc = 29.38; U1 = 1.79; I1 = 0.00; P1 = 0.00; U2 = 0.19; DiaI norma; DiaU norma; C = 788
2; 2019/04/13; 00:11:22; Zap (h) = 0.05; tc = 29.38; U1 = 1.54; I1 = 0.00; P1 = 0.00; U2 = 0.16; DiaI norma; DiaU norma; C = 813
3; 2019/04/13; 00:11:28; Zap (h) = 0.05; tc = 29.31; U1 = 1.30; I1 = 0.00; P1 = 0.00; U2 = 0.17; DiaI norma; DiaU norma; C = 839
4; 2019/04/13; 00:11:34; Zap (h) = 0.05; tc = 29.31; U1 = 1.90; I1 = 0.00; P1 = 0.00; U2 = 0.17; DiaI norma; DiaU norma; C = 864
5; 2019/04/13; 00:11:40; Zap (h) = 0.05; tc = 29.25; U1 = 1.53; I1 = 0.00; P1 = 0.00; U2 = 0.16; DiaI norma; DiaU norma; C = 890
6; 2019/04/13; 00:11:46; Zap (h) = 0.05; tc = 29.19; U1 = 2.03; I1 = 0.00; P1 = 0.00; U2 = 0.18; DiaI norma; DiaU norma; C = 915
7; 2019/04/13; 00:11:52; Zap (h) = 0.05; tc = 29.13; U1 = 1.81; I1 = 0.00; P1 = 0.00; U2 = 0.18; DiaI norma; DiaU norma; C = 941
8; 2019/04/13; 00:11:58; Zap (h) = 0.05; tc = 29.00; U1 = 1.30; I1 = 0.00; P1 = 0.00; U2 = 0.16; DiaI norma; DiaU norma; C = 966
9; 2019/04/13; 00:12:04; Zap (h) = 0.07; tc = 28.94; U1 = 1.25; I1 = 0.00; P1 = 0.00; U2 = 0.17; DiaI norma; DiaU norma; C = 992
10; 2019/04/13; 00:12:10; Zap (h) = 0.07; tc = 29.00; U1 = 1.85; I1 = 0.00; P1 = 0.00; U2 = 0.16; DiaI norma; DiaU norma; C = 1,017
11; 2019/04/13; 00:12:16; Zap (h) = 0.07; tc = 29.00; U1 = 1.21; I1 = 0.00; P1 = 0.00; U2 = 0.18; DiaI norma; DiaU norma; C = 1,043
12; 2019/04/13; 00:12:23; Zap (h) = 0.07; tc = 28.94; U1 = 1.55; I1 = 0.00; P1 = 0.00; U2 = 0.18; DiaI norma; DiaU norma; C = 1,068
13; 2019/04/13; 00:12:29; Zap (h) = 0.07; tc = 28.88; U1 = 1.82; I1 = 0.00; P1 = 0.00; U2 = 0.16; DiaI norma; DiaU norma; C = 1094
14; 2019/04/13; 00:12:35; Zap (h) = 0.07; tc = 28.88; U1 = 1.30; I1 = 0.00; P1 = 0.00; U2 = 0.18; DiaI norma; DiaU norma; C = 1119

ที่คอลัมน์ตั้งอยู่ n / a; วัน; เวลา เวลาในการบันทึกเป็นชั่วโมง; อุณหภูมิ; แรงดันไฟฟ้าที่วัด U1; วัด I1 ปัจจุบัน; แรงดันไฟฟ้าที่วัดที่สอง U2; ข้อมูลเกี่ยวกับทางออก / ขาดช่วงการวัด; ข้อมูลบริการเกี่ยวกับจำนวนการแลกเปลี่ยนระหว่าง Arduino

เลือกช่วงเวลาการบันทึกการวัดเป็นเวลา 6 วินาทีมันง่ายที่จะเปลี่ยนโดยการแทนที่ค่าของ #define CYCLE_TIME_F 3000 ค่าคงที่ด้วยค่าอื่นโดยสูตร Tsec = ค่าคงที่ (ms) * 2/1000 ในระดับปริญญาโท
เพิ่มเติมตารางนี้สามารถนำเสนอในรูปแบบของกราฟที่ดี



เมื่อเขียนโปรแกรมฉันใช้สื่อ ฉันแสดงความขอบคุณต่อผู้เขียน

เหมาะสำหรับหัวข้อ

หัวข้อที่เกี่ยวข้อง

เพิ่มความคิดเห็น

    • รอยยิ้มรอยยิ้มxaxaตกลงdontknowyahooNea
      นายรอยขีดข่วนคนโง่ใช่ใช่ใช่ก้าวร้าวลับ
      ขอโทษเต้นdance2dance3ให้อภัยช่วยเหลือเครื่องดื่ม
      หยุดเพื่อนดีgoodgoodนกหวีดหน้ามืดตามัวลิ้น
      ควันการตบมือเครย์ประกาศเป็นขี้ปากดอน t_mentionดาวน์โหลด
      ความร้อนโมโหlaugh1ภาคตะวันออกเฉียงเหนือประชุมmoskingเชิงลบ
      not_iข้าวโพดคั่วลงโทษอ่านทำให้ตกใจกลัวค้นหา
      ยั่วยุthank_youนี้to_clueumnikรุนแรงเห็นด้วย
      ไม่ดีbeeeblack_eyeblum3หน้าแดงโม้ความเบื่อ
      เซ็นเซอร์การหยอกล้อsecret2ขู่ชัยชนะYusun_bespectacled
      shokrespektฮ่า ๆprevedยินดีต้อนรับkrutoyya_za
      ya_dobryiผู้ช่วยne_huliganne_othodiFLUDห้ามใกล้
2 แสดงความคิดเห็น
การรวม NE555 ที่แปลกในไดรเวอร์เชิงลบ ((
เพื่อให้คดเคี้ยวไปที่สนามคุณต้องเชื่อมต่อพวกเขาเข้ากับเอาท์พุท IP
พอดี Arduino สำหรับความต้องการของคุณเองแน่นอนธุรกิจที่มีประโยชน์ แต่ได้มาเมื่อเร็ว ๆ นี้ปัญหาราคาน้อยกว่า 1t.r
ข้อมูลจำเพาะ UM24C
•จอแสดงผล: 1.44 ", 128х128, สี, มุมมองภาพอยู่ใกล้กับ180º
•พอร์ตอินพุต: USB Type A ตัวผู้, Micro USB Type B ตัวเมีย
•พอร์ตออก: USB Type A ตัวเมีย
•แรงดันไฟฟ้า: 4.50-24.00V
•ความแรงของกระแส: 0-3.000A
•ความละเอียดการแสดงแรงดันไฟฟ้า: 0.01V
•ความละเอียดการแสดงผลความแข็งแรงในปัจจุบัน: 0.001A
•ความแม่นยำในการวัดแรงดันไฟฟ้า: ± (0.2% + 1 หลัก)
•ความแม่นยำในการวัดปัจจุบัน: ± (0.8% + 3 หลัก)
•การสนับสนุน Qualcomm Quick Charge: QC 2.0 และ QC 3.0
• 10 เซลล์หน่วยความจำเพื่อเก็บประจุและพลังงานที่วัดได้
•ฟังก์ชั่นการวัดความต้านทานสายเคเบิล Micro USB
•การเลือกเกณฑ์การเริ่มต้นการวัดแบบแมนนวล: 0.00-0.30A
•แสดงอุณหภูมิ, ความต้านทานของโหลดที่เชื่อมต่อ, พลังงาน
•การแสดงผลของแรงดันไฟฟ้าและกราฟปัจจุบัน
•แสดงแรงดันไฟฟ้าบนสายข้อมูลของพอร์ต USB, โหมดการทำงานปัจจุบัน
•หน้าจอปิดอัตโนมัติ: 1-9 นาทีปิด
•ความสว่างหน้าจอ: 0-5 (6 ระดับ)
•แสดงอุณหภูมิ: เป็นองศาเซลเซียสหรือฟาเรนไฮต์
•ความช่วยเหลือออนไลน์
•การหมุนหน้าจอ90º / 180º / 270º
•การเชื่อมต่อบลูทู ธ แบบสองทางไร้สายกับพีซี (SPP - โปรไฟล์พอร์ตอนุกรม)
รอยยิ้ม

เราแนะนำให้คุณอ่าน:

มอบให้กับสมาร์ทโฟน ...