สารบัญ:

ARDUINO ENERGY METER: 10 ขั้นตอน (พร้อมรูปภาพ)
ARDUINO ENERGY METER: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ARDUINO ENERGY METER: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ARDUINO ENERGY METER: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Project EP 3 : เครื่องคิดค่าพลังงานไฟฟ้า Digital Energy Meter 2024, กรกฎาคม
Anonim
Image
Image
เครื่องวัดพลังงาน ARDUINO
เครื่องวัดพลังงาน ARDUINO
เครื่องวัดพลังงาน ARDUINO
เครื่องวัดพลังงาน ARDUINO

[เล่นวีดีโอ]

ฉันอยู่ในหมู่บ้าน Odisha ประเทศอินเดีย ที่มีการตัดไฟบ่อยครั้งเป็นเรื่องปกติมาก มันขัดขวางชีวิตของทุกคน ในช่วงวัยเด็กของฉัน การเรียนต่อหลังพลบค่ำเป็นความท้าทายที่แท้จริง ด้วยเหตุนี้ฉันจึงออกแบบระบบสุริยะสำหรับบ้านของฉันโดยอาศัยการทดลอง ฉันใช้แผงโซลาร์เซลล์ขนาด 10 วัตต์ 6V สำหรับให้แสง LED สว่างสองสามดวง หลังจากเผชิญความยากลำบากมากมาย โครงการก็ประสบผลสำเร็จ จากนั้นฉันก็ตัดสินใจตรวจสอบแรงดันไฟฟ้า กระแสไฟ กำลังและพลังงานที่เกี่ยวข้องกับระบบ ทำให้เกิดแนวคิดในการออกแบบ ENERGY METER ฉันใช้ ARDUINO เป็นหัวใจของโครงการนี้ เนื่องจากเขียนโค้ดใน IDE ได้ง่ายมาก และมีไลบรารีโอเพ่นซอร์สจำนวนมากในอินเทอร์เน็ต ซึ่งสามารถใช้งานได้ตาม ข้อกำหนด ฉันได้ทดลองโครงการสำหรับระบบสุริยะที่มีกำลังไฟต่ำมาก (10 วัตต์) แต่สามารถปรับเปลี่ยนได้อย่างง่ายดายเพื่อใช้สำหรับระบบการให้คะแนนที่สูงขึ้น

คุณสามารถค้นหาโครงการทั้งหมดของฉันได้ที่:

คุณสมบัติ: ตรวจสอบพลังงานโดย 1.จอแสดงผล LCD 2. ผ่านอินเทอร์เน็ต (อัปโหลด Xively) 3. การบันทึกข้อมูลในการ์ด SD

คุณสามารถดู ARDUINO MPPT SOLAR CHARGE CONTROLLER ที่สอนได้ใหม่ของฉัน (เวอร์ชัน-3.0)

คุณสามารถดูคำแนะนำอื่น ๆ ของฉันได้ที่

ARDUINO SOLAR CHARGE CONTROLLER (เวอร์ชัน 2.0)

ARDUINO SOLAR CHARGE CONTROLLER (รุ่น-1)

ขั้นตอนที่ 1: อะไหล่ที่จำเป็น:

อะไหล่ที่ต้องการ
อะไหล่ที่ต้องการ

1. ARDUINO UNO (อเมซอน)2. ARDUINO ETHERNET SHIELD (อเมซอน)

3. 16x2 CHARACTER LCD (อเมซอน)

4. ACS 712 เซ็นเซอร์ปัจจุบัน (Amazon)4. ตัวต้านทาน (10k, 330ohm) (Amazon)5. โพเทนชิโอมิเตอร์ 10K (Amazon)6. สายจัมเปอร์ (อเมซอน)7. สายเคเบิลอีเธอร์เน็ต (อเมซอน)8. บอร์ดขนมปัง (อเมซอน)

ขั้นตอนที่ 2: พลังงานและพลังงาน

กำลังไฟฟ้า: พลังงานเป็นผลคูณของแรงดัน (โวลต์) และกระแส (แอมป์) P=VxI หน่วยของกำลังคือวัตต์ หรือ KWEnergy: พลังงานเป็นผลคูณของกำลัง (วัตต์) และเวลา (ชั่วโมง) E= Pxt หน่วยของพลังงานคือวัตต์ ชั่วโมงหรือกิโลวัตต์ ชั่วโมง (kWh) จากสูตรข้างต้น จะเห็นได้ชัดเจนว่าในการวัดพลังงาน เราต้องการพารามิเตอร์สามตัว 1. แรงดัน 2. กระแส 3. เวลา

ขั้นตอนที่ 3: การวัดแรงดันไฟฟ้า

การวัดแรงดัน
การวัดแรงดัน
การวัดแรงดัน
การวัดแรงดัน
การวัดแรงดัน
การวัดแรงดัน

แรงดันถูกวัดโดยวงจรแบ่งแรงดัน เนื่องจากแรงดันไฟขาเข้าแบบอนาล็อกของ ARDUINO ถูกจำกัดไว้ที่ 5V ผมจึงออกแบบตัวแบ่งแรงดันไฟในลักษณะที่แรงดันไฟขาออกควรน้อยกว่า 5V แบตเตอรี่ของฉันที่ใช้สำหรับจัดเก็บ กำลังไฟฟ้าจากแผงโซลาร์เซลล์อยู่ที่ 6v, 5.5Ah ดังนั้นฉันต้องลดระดับ 6.5v นี้เป็นแรงดันไฟฟ้าที่ต่ำกว่า 5V ฉันใช้ R1=10k และ R2 =10K ค่าของ R1 และ R2 อาจต่ำกว่านี้ แต่ปัญหาคือเมื่อความต้านทานสูงต่ำ กระแสจะไหลผ่านมันส่งผลให้พลังงานจำนวนมาก (P = I^2R) กระจายไปในรูปของความร้อน สามารถเลือกค่าความต้านทานที่แตกต่างกันได้ แต่ควรใช้ความระมัดระวังเพื่อลดการสูญเสียพลังงานทั่วทั้งความต้านทาน Vout=R2/(R1+R2)*Vbat Vbat=6.5 เมื่อชาร์จเต็ม R1=10k และ R2=10k Vout=10/(10+10)*6.5=3.25v ซึ่งต่ำกว่า 5v และเหมาะสำหรับ ARDUINO analog pinNOTE I ได้แสดงแบตเตอรี่ 9 โวลต์ในวงจรบอร์ดแบบเปลือยเป็นเพียงตัวอย่างเพื่อเชื่อมต่อสายไฟ แต่แบตเตอรี่จริงที่ฉันใช้คือแบตเตอรี่กรดตะกั่วขนาด 6 โวลต์ 5.5Ah การสอบเทียบแรงดันไฟฟ้า: เมื่อแบตเตอรี่ชาร์จเต็ม (6.5v) เราจะได้รับ a Vout=3.25v และค่าที่ต่ำกว่าสำหรับแรงดันไฟแบตเตอรี่ที่ต่ำกว่าอื่นๆ AEDUINO ADC แปลงสัญญาณอนาล็อกเป็นค่าประมาณดิจิตอลที่สอดคล้องกัน เมื่อแรงดันแบตเตอรี่ 6.5v ฉันได้รับ 3.25v จากตัวแบ่งแรงดันและ sample1 = 696 ในมอนิเตอร์แบบอนุกรม โดยที่ sample1 คือค่า ADC ที่สอดคล้องกับ 3.25v เพื่อความเข้าใจที่ดีขึ้น ฉันได้แนบการจำลองแบบเรียลไทม์โดย 123D.circuit สำหรับการวัดแรงดันไฟฟ้า การสอบเทียบ: 3.25v เทียบเท่ากับ 696 1 เท่ากับ 3.25/696=4.669mv Vout = (4.669*sample1)/1000 volt แรงดันไฟแบตเตอรี่จริง = (2*Vout) voltARDUINO CODE: // นำตัวอย่าง 150 ตัวอย่างจากตัวแบ่งแรงดันไฟ โดยมีช่วงเวลา 2 วินาที แล้วเฉลี่ยข้อมูลตัวอย่างที่รวบรวมสำหรับ (int i=0;i<150;i++) { sample1=sample1+analogRead(A2); //อ่านค่าแรงดันจากวงจรดีเลย์ของตัวแบ่ง (2); } sample1=sample1/150; แรงดันไฟฟ้า=4.669*2*ตัวอย่าง1/1000;

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

การวัดกระแส
การวัดกระแส
การวัดกระแส
การวัดกระแส

สำหรับการวัดกระแส ฉันใช้เซ็นเซอร์กระแส Hall Effect ACS 712 (20 A) มีเซ็นเซอร์ ACS712 แบบช่วงกระแสที่แตกต่างกันในตลาด ดังนั้นให้เลือกตามความต้องการของคุณ ในแผนภาพบอร์ดขนมปัง ฉันได้แสดง LED เป็นโหลด แต่โหลดจริงต่างกัน หลักการทำงาน: Hall Effect คือการสร้างความต่างศักย์ไฟฟ้า (แรงดันฮอลล์) ข้ามตัวนำไฟฟ้า ขวางเป็นกระแสไฟฟ้าในตัวนำและ สนามแม่เหล็กตั้งฉากกับกระแส หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์ Hall Effect คลิกที่นี่ ดูเอกสารข้อมูลของเซ็นเซอร์ ACS 712 ที่นี่ จากเอกสารข้อมูล 1. ACS 712 วัดค่าบวกและลบ 20Amps ซึ่งสอดคล้องกับเอาต์พุตอะนาล็อก 100mV/A 2. ไม่มีกระแสทดสอบผ่านแรงดันเอาต์พุต VCC / 2 =5v/2=2.5Vการสอบเทียบ: การอ่านแบบอะนาล็อกสร้างค่า 0-1023 เท่ากับ 0v ถึง 5v ดังนั้นการอ่านแบบอะนาล็อก 1 = (5/1024) V = 4.89mv ค่า = (4.89 * ค่าการอ่านแบบอะนาล็อก)/ 1000 V แต่ตามข้อมูลออฟเซ็ตของแผ่นข้อมูลคือ 2.5V (เมื่อศูนย์ปัจจุบัน คุณจะได้ 2.5V จากเอาต์พุตของเซนเซอร์) ค่าจริง = (ค่า-2.5) V กระแสในแอมป์ = ค่าจริง*10ARDUINO CODE: // นำตัวอย่าง 150 ตัวอย่างจาก เซ็นเซอร์ที่มีช่วงเวลา 2 วินาที จากนั้นจึงเฉลี่ยข้อมูลตัวอย่างที่รวบรวมไว้สำหรับ (int i=0;i<150;i++) { sample2+=analogRead(A3); // อ่านกระแสจากความล่าช้าของเซ็นเซอร์ (2); } sample2=sample2/150; วาล =(5.0*ตัวอย่าง2)/1024.0; ค่าจริง =val-2.5; // แรงดันออฟเซ็ตคือ 2.5v แอมป์ =actualval*10;

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

สำหรับการวัดเวลาไม่จำเป็นต้องใช้ฮาร์ดแวร์ภายนอกใดๆ เนื่องจาก ARDUINO เองมีตัวจับเวลาในตัว ฟังก์ชัน millis() จะคืนค่าจำนวนมิลลิวินาทีเนื่องจากบอร์ด Arduino เริ่มรันโปรแกรมปัจจุบัน รหัส ARDUINO: long milisec = millis(); // คำนวณเวลาเป็นมิลลิวินาทีเป็นเวลานาน = milisec/1000; // แปลงมิลลิวินาทีเป็นวินาที

ขั้นตอนที่ 6: ARDUINO คำนวณพลังงานและพลังงานอย่างไร

โทแทมป์=โทแทมป์+แอมป์; // คำนวณจำนวนแอมป์ทั้งหมด avgamps=totamps/time; // แอมป์เฉลี่ย amhr=(avgamps*time)/3600; // แอมป์-ชั่วโมง วัตต์ =แรงดัน*แอมป์; // กำลัง = แรงดัน * พลังงานปัจจุบัน = (วัตต์ * เวลา)/3600; Watt-sec ถูกแปลงเป็น Watt-Hr อีกครั้งโดยหาร 1hr(3600sec) // energy=(watt*time)/(1000*3600); สำหรับการอ่านในหน่วย kWh

ขั้นตอนที่ 7: การแสดงผลภาพ

การแสดงผลภาพ
การแสดงผลภาพ

ผลลัพธ์ทั้งหมดสามารถมองเห็นได้ในจอภาพแบบอนุกรมหรือโดยใช้ LCD ฉันใช้ LCD ขนาด 16x2 อักขระเพื่อแสดงผลลัพธ์ทั้งหมดที่ได้รับในขั้นตอนก่อนหน้า สำหรับแผนผังให้ดูวงจรบอร์ดขนมปังที่แสดงด้านบน เชื่อมต่อ LCD กับ ARDUINO ตามที่ให้ไว้:LCD -> Arduino 1. VSS -> Arduino GND 2. VDD - > Arduino +5v 3. VO -> Arduino GND pin + Resistor หรือ Potentiometer 4. RS -> Arduino pin 8 5. RW -> Arduino pin 7 6. E -> Arduino pin 6 7. D0 -> Arduino - ไม่ได้เชื่อมต่อ 8. D1 -> Arduino - ไม่ได้เชื่อมต่อ 9. D2 -> Arduino - ไม่ได้เชื่อมต่อ 10. D3 -> Arduino - ไม่ได้เชื่อมต่อ 11. D4 -> Arduino pin 5 12. D5 -> Arduino pin 4 13. D6 -> Arduino pin 3 14. D7 -> Arduino pin 2 15. A -> Arduino Pin 13 + ตัวต้านทาน (Backlight power) 16. K -> Arduino GND (Backlight ground) ARDUINO CODE: สำหรับ Serial Monitor:

Serial.print("แรงดัน: "); Serial.print (แรงดันไฟฟ้า); Serial.println("โวลต์"); Serial.print("ปัจจุบัน:"); Serial.print (แอมป์); Serial.println("แอมป์"); Serial.print("พลัง:"); Serial.print(วัตต์); Serial.println("วัตต์"); Serial.print("พลังงานที่บริโภค:"); Serial.print(พลังงาน); Serial.println("วัตต์-ชั่วโมง"); Serial.println(""); // พิมพ์ชุดพารามิเตอร์ถัดไปหลังจากการหน่วงเวลาบรรทัดว่าง (2000) สำหรับ LCD: สำหรับจอ LCD คุณต้องนำเข้าไลบรารี "LiquidCrystal" ในโค้ดก่อน หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี LequidCrystal คลิกที่นี่ สำหรับบทช่วยสอน LCD คลิกที่นี่ รหัสต่อไปนี้เป็นรูปแบบที่แสดงการคำนวณพลังงานและพลังงานทั้งหมดใน LCD #include lcd(8, 7, 6, 5, 4, 3, 2); int แสงพื้นหลัง = 9; การตั้งค่าเป็นโมฆะ () { pinMode (แบ็คไลท์, เอาต์พุต); // ตั้งค่าพิน 9 เป็นเอาต์พุต analogWrite (แบ็คไลท์ 150); //ควบคุมความเข้มของแสงพื้นหลัง 0-254 lcd.begin(16, 2); // คอลัมน์, แถว ขนาดของจอแสดงผล lcd.clear(); // ล้างหน้าจอ } วงเป็นโมฆะ () { lcd.setCursor (16, 1); // ตั้งค่าเคอร์เซอร์นอกจำนวนการแสดงผล lcd.print(" "); // พิมพ์ดีเลย์ว่างเปล่า (600); ////////////////////////////////////////// กำลังพิมพ์และพลังงานไปยัง LCD/ ////////////////////////////////////////////// lcd.setCursor (1, 0); // ตั้งค่าเคอร์เซอร์ที่แถวที่ 1 และแถวที่ 1 lcd.print(วัตต์); lcd.print("W"); lcd.print (แรงดันไฟฟ้า); lcd.print("วี"); lcd.setCursor(1, 1); // ตั้งเคอร์เซอร์ที่แถวที่ 1 และแถวที่ 2 lcd.print(พลังงาน); lcd.print("WH"); lcd.print (แอมป์); lcd.print ("A"); }

ขั้นตอนที่ 8: การอัปโหลดข้อมูลไปยัง Xively.com

การอัพโหลดข้อมูลไปยัง Xively.com
การอัพโหลดข้อมูลไปยัง Xively.com
การอัพโหลดข้อมูลไปยัง Xively.com
การอัพโหลดข้อมูลไปยัง Xively.com
การอัพโหลดข้อมูลไปยัง Xively.com
การอัพโหลดข้อมูลไปยัง Xively.com

อ้างถึงภาพหน้าจอด้านบนเพื่อการยืนที่ดีขึ้น สำหรับการอัปโหลดข้อมูลไปยัง xively.com ไลบรารีต่อไปนี้ที่จะดาวน์โหลดก่อน HttpClient: คลิกที่นี่ Xively: คลิกที่นี่SPI: นำเข้าจาก arduino IDE (ร่าง -> นำเข้าไลบรารี…..)อีเธอร์เน็ต: นำเข้าจาก arduino IDE ((ร่าง -> นำเข้าไลบรารี…..) เปิดบัญชีด้วย https://xively.com (เดิมคือ pachube.com และ cosm.com) ลงทะเบียนสำหรับบัญชีนักพัฒนาซอฟต์แวร์ฟรีที่

เลือกชื่อผู้ใช้ รหัสผ่าน ตั้งค่าที่อยู่และเขตเวลาของคุณ ฯลฯ คุณจะได้รับอีเมลยืนยัน

จากนั้นคลิกลิงก์เปิดใช้งานเพื่อเปิดใช้งานบัญชีของคุณ หลังจากเปิดบัญชีสำเร็จแล้ว คุณจะเปลี่ยนเส้นทางไปที่หน้าอุปกรณ์การพัฒนา

  • คลิกที่ +เพิ่มกล่องอุปกรณ์
  • ตั้งชื่ออุปกรณ์และคำอธิบายของคุณ (เช่น การตรวจสอบพลังงาน)·
  • เลือกข้อมูลส่วนตัวหรือข้อมูลสาธารณะ (ฉันเลือกส่วนตัว)·
  • คลิกที่เพิ่มอุปกรณ์

หลังจากเพิ่มอุปกรณ์แล้ว คุณจะเปลี่ยนเส้นทางไปยังหน้าใหม่ซึ่งมีข้อมูลสำคัญมากมาย

  • Product ID, Product Secret, Serial Number, รหัสเปิดใช้งาน·
  • Feed ID, FeedURL, API End Point (รหัสฟีดใช้ในโค้ด ARDUINO)
  • เพิ่มช่องสัญญาณ (IChoose ENERGY และ POWER แต่คุณสามารถเลือกได้ตามต้องการ) ให้หน่วยและสัญลักษณ์สำหรับพารามิเตอร์·
  • เพิ่มตำแหน่งของคุณ ·
  • คีย์ API (ใช้ในโค้ด ARDUINO หลีกเลี่ยงการแชร์หมายเลขนี้) ·
  • ทริกเกอร์ (ping หน้าเว็บเมื่อมีเหตุการณ์เกิดขึ้น เช่น เมื่อการใช้พลังงานเกินขีดจำกัด)

ขั้นตอนที่ 9: รหัส Xively และ ARDUINO

ที่นี่ฉันแนบรหัสที่สมบูรณ์ (รุ่นเบต้า) สำหรับเครื่องวัดพลังงานโดยไม่รวมการบันทึกข้อมูลการ์ด SD ซึ่งแนบแยกต่างหากในขั้นตอนต่อไป /** อัปโหลดข้อมูลการตรวจสอบพลังงานไปที่ xively **/ #include #include #include #include #define API_KEY "xxxxxxxx" // ป้อนคีย์ Xively API #define FEED_ID xxxxxxxxx // ป้อน Xively feed ID // ที่อยู่ MAC ของคุณ อีเธอร์เน็ตชีลด์ไบต์ mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // พินอะนาล็อกที่เรากำลังตรวจสอบ (0 และ 1 ถูกใช้โดยอีเธอร์เน็ตชิลด์) int sensorPin = 2; LastConnectionTime แบบยาวที่ไม่ได้ลงชื่อ = 0; // ครั้งสุดท้ายที่เราเชื่อมต่อกับ Cosm const unsigned long connectionInterval = 15000; // หน่วงเวลาระหว่างการเชื่อมต่อกับ Cosm ในหน่วยมิลลิวินาที // เริ่มต้นไลบรารี Cosm // กำหนดสตริงสำหรับ datastream ID ของเรา ถ่าน sensorId = "POWER"; ถ่าน sensorId2 = "พลังงาน"; XivelyDatastream datastreams = { XivelyDatastream (sensorId, strlen (sensorId), DATASTREAM_FLOAT), XivelyDatastream (sensorId2, strlen (sensorId2), DATASTREAM_FLOAT), DATASTREAM_FLOAT), }; // ล้อม datastream เป็น feed XivelyFeed feed(FEED_ID, datastreams, 2 /* number of datastreams */); ไคลเอนต์ EthernetClient; XivelyClient xivelyclient(ไคลเอนต์); การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Serial.println("กำลังเริ่มต้นเครือข่าย"); ในขณะที่ (Ethernet.begin(mac) != 1) { Serial.println("เกิดข้อผิดพลาดในการรับที่อยู่ IP ผ่าน DHCP ลองอีกครั้ง…"); ล่าช้า (15000); } Serial.println("เครือข่ายเริ่มต้น"); Serial.println(); } วงเป็นโมฆะ () { ถ้า (มิลลิวินาที () - lastConnectionTime > ช่วงการเชื่อมต่อ) { sendData (); // ส่งข้อมูลไปที่ xively getData(); // อ่าน datastream กลับจาก xively lastConnectionTime = millis(); // อัปเดตเวลาเชื่อมต่อดังนั้นเราจึงรอก่อนที่จะเชื่อมต่ออีกครั้ง } } ถือเป็นโมฆะ sendData () { int sensor1 = วัตต์; int sensor2 = พลังงาน; datastreams[0].setFloat(เซ็นเซอร์1); // ค่าพลังงาน datastreams [1].setFloat(sensor2); // ค่าพลังงาน Serial.print("อ่านกำลังไฟฟ้า"); Serial.println(datastreams[0].getFloat()); Serial.print("อ่านพลังงาน "); Serial.println(กระแสข้อมูล[1].getFloat()); Serial.println("กำลังอัปโหลดไปยัง Xively"); int ret = xivelyclient.put (ฟีด, API_KEY); Serial.print("ใส่โค้ดส่งคืน: "); Serial.println(เกษียณ); Serial.println(); } // รับค่า datastream จาก xively พิมพ์ค่าที่เราได้รับ void getData() { Serial.println("Reading data from Xively"); int ret = xivelyclient.get (ฟีด, API_KEY); Serial.print("รับโค้ดส่งคืน: "); Serial.println(เกษียณ); if (ret > 0) { Serial.print ("กระแสข้อมูลคือ: "); Serial.println(ฟีด[0]); Serial.print("ค่าพลังงานคือ: "); Serial.println(ฟีด[0].getFloat()); Serial.print("กระแสข้อมูลคือ: "); Serial.println(ฟีด [1]); Serial.print("ค่าพลังงานคือ: "); Serial.println(ฟีด[1].getFloat()); } Serial.println();

ขั้นตอนที่ 10: การบันทึกข้อมูลในการ์ด SD

สำหรับการจัดเก็บข้อมูลในการ์ด SD คุณต้องนำเข้าไลบรารี SD สำหรับบทช่วยสอน คลิกที่นี่หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี SD คลิกที่นี่โค้ดสำหรับจัดเก็บข้อมูลในการ์ด SD ถูกเขียนแยกต่างหากเนื่องจากฉันมีหน่วยความจำไม่เพียงพอใน ARDUINO UNO ของฉัน การเขียนโค้ดสำหรับจอ LCD และการอัพโหลดข้อมูล xively.com แต่ฉันกำลังพยายามปรับปรุงรหัสรุ่นเบต้าเพื่อให้รหัสเดียวสามารถมีคุณลักษณะทั้งหมด (จอ LCD การอัปโหลดข้อมูล Xively และจัดเก็บข้อมูลในการ์ด SD) รหัสสำหรับการบันทึกข้อมูลจะแนบมาด้วยหากใครเขียน รหัสที่ดีขึ้นโดยการแก้ไขรหัสของฉันโปรดแบ่งปันกับฉัน นี่เป็นคำแนะนำทางเทคนิคครั้งแรกของฉัน หากใครพบข้อผิดพลาดใด ๆ โปรดแสดงความคิดเห็น.. เพื่อที่ฉันจะได้ปรับปรุงตัวเอง หากคุณพบจุดที่ต้องปรับปรุงในโครงการนี้ โปรดแสดงความคิดเห็น หรือส่งข้อความมาว่า ดังนั้นโครงการจะมีประสิทธิภาพมากขึ้น ฉันคิดว่ามันจะเป็นประโยชน์สำหรับคนอื่นเช่นเดียวกับฉัน

การแข่งขัน 123D Circuits
การแข่งขัน 123D Circuits
การแข่งขัน 123D Circuits
การแข่งขัน 123D Circuits

รางวัลที่สามในการแข่งขัน 123D Circuits

แนะนำ: