สารบัญ:

I - V Curve ด้วย Arduino: 5 ขั้นตอน
I - V Curve ด้วย Arduino: 5 ขั้นตอน

วีดีโอ: I - V Curve ด้วย Arduino: 5 ขั้นตอน

วีดีโอ: I - V Curve ด้วย Arduino: 5 ขั้นตอน
วีดีโอ: ทำ Solar cell ระบบ On Grid ด้วยตัวเอง ดูคลิปนี้จบทำเองได้เลย 2024, พฤศจิกายน
Anonim
I - V Curve ด้วย Arduino
I - V Curve ด้วย Arduino

ฉันตัดสินใจสร้างเส้นโค้ง IV ของไฟ LED แต่ฉันมีมัลติมิเตอร์เพียงตัวเดียว ดังนั้นฉันจึงสร้างเครื่องวัด IV อย่างง่ายด้วย Arduino Uno

จาก Wiki: ลักษณะกระแส-แรงดันหรือเส้นโค้ง I–V (เส้นโค้งแรงดันกระแสไฟ) เป็นความสัมพันธ์ ซึ่งโดยทั่วไปจะแสดงเป็นแผนภูมิหรือกราฟ ระหว่างกระแสไฟฟ้าผ่านวงจร อุปกรณ์ หรือวัสดุ และแรงดันที่สอดคล้องกัน หรือ ความต่างศักย์ข้ามมัน

ขั้นตอนที่ 1: รายการวัสดุ

สำหรับโครงการนี้ คุณจะต้อง:

Arduino Uno พร้อมสาย USB

สายเคเบิลเขียงหั่นขนมและสายเคเบิลดูปองต์

ไฟ LED (ฉันใช้ไฟ LED สีแดงและสีน้ำเงิน 5 มม.)

ตัวต้านทานแบบหล่น (ตัวต้านทานแบบแบ่ง) - ฉันตัดสินใจที่ 200 โอห์ม (สำหรับ 5V คือกระแสสูงสุด 25 mA)

ตัวต้านทานหรือโพเทนซิโอมิเตอร์ ฉันใช้ตัวต้านทานผสมกัน - 100k, 50k, 20k, 10k, 5k, 2.2k, 1k, 500k

ขั้นตอนที่ 2: วงจร

วงจร
วงจร

วงจรประกอบด้วย LED ทดสอบ ตัวต้านทาน shunt (R_drop) สำหรับวัดกระแส ในการเปลี่ยนแรงดันตกและกระแส ผมใช้ตัวต้านทานต่างๆ (R_x)

หลักการพื้นฐานคือ:

  • รับกระแสรวม I ในวงจร
  • รับแรงดันตกคร่อมการทดสอบนำ Ul

รวมปัจจุบันI

เพื่อให้ได้กระแสทั้งหมด ฉันวัดแรงดันตก Ur บนตัวต้านทานแบบแบ่ง ฉันใช้หมุดอะนาล็อกสำหรับสิ่งนั้น ฉันวัดแรงดันไฟฟ้า:

  • U1 ระหว่าง GND และ A0
  • U2 ระหว่าง GND และ A2

ความแตกต่างของแรงดันไฟฟ้านี้คือแรงดันตกที่เท่ากันบนตัวต้านทานแบบแบ่ง: Ur = U2-U1

ปัจจุบันทั้งหมด I คือ: I = Ur/R_drop = Ur/250

แรงดันตก Ul

ในการรับแรงดันไฟตกบน LED ฉันลบ U2 จากแรงดันไฟฟ้าทั้งหมด U (ซึ่งควรเป็น 5V): Ul = U - U2

ขั้นตอนที่ 3: รหัส

ลอย U = 4980; // แรงดันไฟฟ้าระหว่าง GND และ arduino VCC ใน mV = แรงดันไฟฟ้าทั้งหมด

ลอย U1=0; // 1 โพรบ

ลอย U2=0; // 2 โพรบ

ลอย Ur=0; // แรงดันตกบนตัวต้านทาน shunt

ลอย Ul=0; // แรงดันตกบน LED

ลอยฉัน =0; // กระแสรวมในวงจร

ลอย R_drop=200; // ความต้านทานของตัวต้านทานปิด

การตั้งค่าเป็นโมฆะ ()

{

Serial.begin(9600);

โหมดพิน (A0, INPUT);

โหมดพิน (A1, INPUT);

}

วงเป็นโมฆะ ()

{

U1 = float(analogRead(A0))/1023*U; // รับแรงดันไฟฟ้าระหว่าง GND และ A0 ในหน่วยมิลลิโวลต์

U2 = float(analogRead(A1))/1023*U; // รับแรงดันไฟฟ้าระหว่าง GND และ A1 ในหน่วยมิลลิโวลต์

Ur=U2-U1; // แรงดันตกบนตัวต้านทาน shunt

I=Ur/R_drop*1000; // กระแสรวมใน microAmps

Ul=U-U2; // แรงดันตกบน LED

Serial.print("1");

Serial.print(U1);

Serial.print("2");

Serial.print(U2);

Serial.print(" //// ");

Serial.print(" แรงดันตกบนตัวต้านทาน shunt: ");

Serial.print(Ur);

Serial.print (" แรงดันไฟ LED ตก: ");

Serial.print(Ul);

Serial.print(" กระแสรวม: ");

Serial.println(I);

// หยุดชั่วคราว

ล่าช้า (500);

}

ขั้นตอนที่ 4: การทดสอบ

การทดสอบ
การทดสอบ
การทดสอบ
การทดสอบ
การทดสอบ
การทดสอบ

ฉันทดสอบไฟ LED 2 ดวงสีแดงและสีน้ำเงิน อย่างที่คุณเห็น ไฟ LED สีน้ำเงินมีแรงดันเข่าที่ใหญ่กว่า และนั่นเป็นสาเหตุที่ไฟ LED สีน้ำเงินต้องการไฟ LED สีน้ำเงินเริ่มระเบิดประมาณ 3 โวลต์

ขั้นตอนที่ 5: การทดสอบตัวต้านทาน

ตัวต้านทานการทดสอบ
ตัวต้านทานการทดสอบ
ตัวต้านทานการทดสอบ
ตัวต้านทานการทดสอบ

ฉันทำ I - V เส้นโค้งสำหรับตัวต้านทาน อย่างที่คุณเห็น กราฟเป็นเส้นตรง กราฟแสดงให้เห็นว่ากฎของโอห์มใช้ได้กับตัวต้านทานเท่านั้น ไม่ใช่สำหรับไฟ LED ฉันคำนวณแนวต้าน R = U/I การวัดค่ากระแสไฟต่ำนั้นไม่แม่นยำ เนื่องจากตัวแปลงอนาล็อก - ดิจิตอลใน Arduino มีความละเอียด:

5V / 1024 = 4.8 mV และกระแส -> 19.2 microAmps

ฉันคิดว่าข้อผิดพลาดในการวัดคือ:

  • สารบัญของเขียงหั่นขนมไม่ใช่สารสำคัญและทำให้แรงดันไฟฟ้าผิดพลาด
  • ตัวต้านทานที่ใช้มีความต้านทานประมาณ 5%
  • ค่า ADC จากการอ่านออสซิเลตแบบอะนาล็อก

แนะนำ: