
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12




เคยต้องการพาวเวอร์ซัพพลายที่คุณสามารถใช้ได้ทุกที่แม้ไม่มีเต้ารับไฟฟ้าในบริเวณใกล้เคียงหรือไม่? และคงจะดีไม่น้อยถ้ามันมีความแม่นยำ ดิจิตอล และควบคุมได้ผ่านทางพีซีด้วย
ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างสิ่งนั้น: พาวเวอร์ซัพพลายที่ใช้แบตเตอรี่ดิจิตอลซึ่งเข้ากันได้กับ Arduino และสามารถควบคุมผ่านพีซีผ่าน USB
ไม่นานมานี้ ฉันสร้างพาวเวอร์ซัพพลายจาก ATX PSU รุ่นเก่า และแม้ว่าจะใช้งานได้ดี ฉันก็อยากจะยกระดับเกมด้วยพาวเวอร์ซัพพลายแบบดิจิทัล ดังที่ได้กล่าวไปแล้ว มันใช้พลังงานจากแบตเตอรี่ (เซลล์ลิเธียม 2 เซลล์ที่แม่นยำ) และสามารถส่งได้สูงสุด 20 V ที่ 1 A; ซึ่งเพียงพอสำหรับโครงการส่วนใหญ่ของฉันที่ต้องการพาวเวอร์ซัพพลายที่แม่นยำ
ฉันจะแสดงขั้นตอนการออกแบบทั้งหมด และไฟล์โครงการทั้งหมดสามารถพบได้ในหน้า GitHub ของฉัน:
มาเริ่มกันเลย!
ขั้นตอนที่ 1: คุณสมบัติ & ราคา

คุณสมบัติ
- โหมดแรงดันคงที่และกระแสคงที่
- ใช้ตัวควบคุมเชิงเส้นเสียงต่ำ นำหน้าด้วยตัวควบคุมล่วงหน้าเพื่อลดการกระจายพลังงาน
- การใช้ส่วนประกอบที่สามารถจับต้องได้เพื่อให้สามารถเข้าถึงโปรเจ็กต์ได้
- ขับเคลื่อนโดย ATMEGA328P ซึ่งตั้งโปรแกรมด้วย Arduino IDE
- การสื่อสารพีซีผ่านแอปพลิเคชัน Java ผ่าน micro USB
- ขับเคลื่อนโดยเซลล์ลิเธียมไอออน 18650 ที่ได้รับการป้องกัน 2 เซลล์
- ปลั๊กกล้วยระยะห่าง 18 มม. เข้ากันได้กับอะแดปเตอร์ BNC
ข้อมูลจำเพาะ
- 0 - 1A, ขั้นตอน 1 mA (10 บิต DAC)
- 0 - 20V, ขั้นตอน 20 mV (10 บิต DAC) (การทำงาน 0V จริง)
- การวัดแรงดันไฟฟ้า: ความละเอียด 20 mV (10 บิต ADC)
-
การวัดกระแส:
- < 40mA: ความละเอียด 10uA (ina219)
- <80mA: ความละเอียด 20uA (ina219)
- <160mA: ความละเอียด 40uA (ina219)
- < 320mA: ความละเอียด 80uA (ina219)
- > 320mA: ความละเอียด 1mA (10 บิต ADC)
ค่าใช้จ่าย
พาวเวอร์ซัพพลายแบบสมบูรณ์ทำให้ฉันเสียค่าใช้จ่ายประมาณ 135 เหรียญสหรัฐฯ โดยมีส่วนประกอบแบบใช้ครั้งเดียวทั้งหมด แบตเตอรี่เป็นส่วนที่แพงที่สุด (30 เหรียญสำหรับ 2 เซลล์) เนื่องจากได้รับการป้องกันเซลล์ลิเธียม 18650 สามารถลดค่าใช้จ่ายได้อย่างมากหากไม่จำเป็นต้องใช้แบตเตอรี่ หากละเว้นแบตเตอรี่และวงจรชาร์จ ราคาจะลดลงเหลือประมาณ 100 เหรียญ แม้ว่าสิ่งนี้อาจดูมีราคาแพง แต่พาวเวอร์ซัพพลายที่มีประสิทธิภาพและคุณสมบัติน้อยกว่ามากมักจะมีราคาสูงกว่านี้
ถ้าคุณไม่รังเกียจที่จะสั่งซื้อส่วนประกอบของคุณจาก ebay หรือ aliexpress ราคาพร้อมแบตเตอรี่จะลดลงเหลือ $100 และ $70 หากไม่มี ใช้เวลานานกว่าชิ้นส่วนจะเข้ามา แต่เป็นตัวเลือกที่ใช้งานได้
ขั้นตอนที่ 2: แผนผังและทฤษฎีการดำเนินงาน

เพื่อให้เข้าใจการทำงานของวงจร เราจะต้องดูแผนผัง ฉันแบ่งออกเป็นกลุ่มการใช้งานเพื่อให้เข้าใจได้ง่ายขึ้น ฉันจะอธิบายการทำงานทีละขั้นตอน ส่วนนี้ค่อนข้างลึกและต้องใช้ความรู้ด้านอิเล็กทรอนิกส์ที่ดี หากคุณเพียงต้องการทราบวิธีการสร้างวงจร คุณสามารถข้ามไปยังขั้นตอนถัดไปได้
บล็อกหลัก
การดำเนินการนี้ใช้ชิป LT3080 ซึ่งเป็นตัวควบคุมแรงดันไฟฟ้าเชิงเส้น ซึ่งสามารถลดแรงดันไฟฟ้าลงได้ โดยอิงจากสัญญาณควบคุม สัญญาณควบคุมนี้จะถูกสร้างขึ้นโดยไมโครคอนโทรลเลอร์ วิธีการดำเนินการนี้จะอธิบายโดยละเอียดในภายหลัง
การตั้งค่าแรงดันไฟฟ้า
วงจรรอบ LT3080 สร้างสัญญาณควบคุมที่เหมาะสม อันดับแรก เราจะมาดูกันว่าแรงดันไฟฟ้าถูกตั้งค่าอย่างไร การตั้งค่าแรงดันไฟฟ้าจากไมโครคอนโทรลเลอร์คือสัญญาณ PWM (PWM_Vset) ซึ่งกรองโดยตัวกรองความถี่ต่ำ (C9 & R26) สิ่งนี้สร้างแรงดันแอนะล็อก - ระหว่าง 0 ถึง 5 V - เป็นสัดส่วนกับแรงดันเอาต์พุตที่ต้องการ เนื่องจากช่วงเอาต์พุตของเราคือ 0 - 20 V เราจะต้องขยายสัญญาณนี้ด้วยปัจจัย 4 ซึ่งทำได้โดยการกำหนดค่า opamp แบบไม่กลับด้านของ U3C เกนของพินที่ตั้งไว้ถูกกำหนดโดย R23 // R24 // R25 และ R34 ตัวต้านทานเหล่านี้มีความทนทาน 0.1% เพื่อลดข้อผิดพลาด R39 และ R36 ไม่สำคัญที่นี่ เนื่องจากเป็นส่วนหนึ่งของวงจรป้อนกลับ
การตั้งค่าปัจจุบัน
พินชุดนี้ยังสามารถใช้สำหรับการตั้งค่าที่สอง: โหมดปัจจุบัน เราต้องการวัดการดึงปัจจุบัน และปิดเอาต์พุตเมื่อเกินกระแสที่ต้องการ ดังนั้นเราจึงเริ่มต้นอีกครั้งโดยสัญญาณ PWM (PWM_Iset) ที่สร้างโดยไมโครคอนโทรลเลอร์ ซึ่งขณะนี้ถูกกรองความถี่ต่ำและลดทอนเพื่อให้เปลี่ยนจากช่วง 0 - 5 V เป็นช่วง 0 - 2 V แรงดันไฟฟ้านี้ถูกเปรียบเทียบกับแรงดันไฟฟ้าตกคร่อมตัวต้านทานความรู้สึกปัจจุบัน (ADC_Iout ดูด้านล่าง) โดยการกำหนดค่าตัวเปรียบเทียบของ opamp U3D หากกระแสไฟสูงเกินไป จะเป็นการเปิดไฟ LED และดึงเส้นที่ตั้งไว้ของ LT3080 ลงกราวด์ (ผ่าน Q2) ซึ่งเป็นการปิดเอาต์พุต การวัดกระแสและการสร้างสัญญาณ ADC_Iout ทำได้ดังนี้ กระแสไฟขาออกไหลผ่านตัวต้านทาน R7 - R16 เหล่านี้ทั้งหมด 1 โอห์ม; เหตุผลที่ไม่ใช้ 1R ในตอนแรกเป็นสองเท่า: ตัวต้านทาน 1 ตัวจะต้องมีระดับพลังงานที่สูงกว่า (ต้องกระจายอย่างน้อย 1 W) และโดยการใช้ตัวต้านทาน 10 1% แบบขนานเราจะได้ความแม่นยำสูงกว่า ด้วยตัวต้านทาน 1% ตัวเดียว วิดีโอดีๆ เกี่ยวกับสาเหตุที่ทำงานนี้สามารถพบได้ที่นี่: https://www.youtube.com/embed/1WAhTdWErrU&t=1s เมื่อกระแสไหลผ่านตัวต้านทานเหล่านี้ มันจะสร้างแรงดันตก ซึ่งเราสามารถวัดได้ และมันคือ วางไว้ก่อน LT3080 เนื่องจากแรงดันตกคร่อมไม่ควรส่งผลต่อแรงดันไฟขาออก แรงดันตกคร่อมวัดด้วยดิฟเฟอเรนเชียลแอมพลิฟายเออร์ (U3B) ด้วยอัตราขยาย 2 ซึ่งส่งผลให้ช่วงแรงดันไฟฟ้า 0 - 2 V (เพิ่มเติมในภายหลัง) ดังนั้นตัวแบ่งแรงดันที่สัญญาณ PWM ของกระแส บัฟเฟอร์ (U3A) อยู่ที่นั่นเพื่อให้แน่ใจว่ากระแสที่ไหลเข้าสู่ตัวต้านทาน R21, R32 และ R33 ไม่ผ่านตัวต้านทานความรู้สึกในปัจจุบัน ซึ่งจะส่งผลต่อการอ่าน โปรดทราบว่านี่ควรเป็น opamp แบบ rail-to-rail เนื่องจากแรงดันไฟฟ้าขาเข้าที่อินพุตบวกเท่ากับแรงดันไฟฟ้าของแหล่งจ่าย แอมพลิฟายเออร์แบบไม่กลับด้านมีไว้สำหรับการวัดหลักสูตรเท่านั้น สำหรับการวัดที่แม่นยำมาก เรามีชิป INA219 อยู่บนบอร์ด ชิปนี้ช่วยให้เราวัดกระแสขนาดเล็กมาก และจัดการผ่าน I2C
สิ่งเพิ่มเติม
ที่เอาต์พุตของ LT3080 เรามีบางอย่างเพิ่มเติม อย่างแรกเลย มีซิงก์ปัจจุบัน (LM334) สิ่งนี้ดึงกระแสคงที่ 677 uA (กำหนดโดยตัวต้านทาน R41) เพื่อทำให้ LT3080 เสถียร อย่างไรก็ตามมันไม่ได้เชื่อมต่อกับกราวด์ แต่กับ VEE ซึ่งเป็นแรงดันลบ นี่เป็นสิ่งจำเป็นเพื่อให้ LT3080 ทำงานที่ 0 V เมื่อเชื่อมต่อกับกราวด์ แรงดันไฟฟ้าต่ำสุดจะอยู่ที่ประมาณ 0.7 V ซึ่งดูเหมือนต่ำเพียงพอ แต่โปรดจำไว้ว่าสิ่งนี้จะป้องกันไม่ให้เราปิดพาวเวอร์ซัพพลายโดยสมบูรณ์ ซีเนอร์ไดโอด D3 ใช้เพื่อยึดแรงดันเอาต์พุตหากสูงกว่า 22 V และตัวแบ่งตัวต้านทานจะลดช่วงแรงดันเอาต์พุตจาก 0 - 20 V เป็น 0 - 2 V (ADC_Vout) น่าเสียดายที่วงจรเหล่านี้อยู่ที่เอาต์พุตของ LT3080 ซึ่งหมายความว่ากระแสของพวกมันจะส่งผลต่อกระแสเอาต์พุตที่เราต้องการวัด โชคดีที่กระแสเหล่านี้คงที่หากแรงดันคงที่ เพื่อให้เราสามารถสอบเทียบกระแสได้เมื่อถอดโหลดออกก่อน
ปั๊มชาร์จ
แรงดันลบที่เรากล่าวถึงก่อนหน้านี้ถูกสร้างขึ้นโดยวงจรเล็กๆ ที่แปลกประหลาด นั่นคือ ปั๊มประจุ สำหรับการทำงานฉันจะอ้างถึงที่นี่: https://www.youtube.com/embed/1WAhTdWErrU&t=1s มันถูกป้อนโดย 50% PWM ของไมโครคอนโทรลเลอร์ (PWM)
Boost Converter
ทีนี้มาดูแรงดันไฟฟ้าขาเข้าของบล็อกหลักของเรากัน: Vboost เราเห็นว่ามัน 8 - 24V แต่เดี๋ยวก่อนลิเธียมเซลล์ 2 เซลล์ในซีรีย์ให้สูงสุด 8.4 V? ที่จริงแล้ว นั่นคือเหตุผลที่เราต้องเพิ่มแรงดันไฟฟ้าด้วยตัวแปลงบูสต์ที่เรียกว่า เราสามารถเพิ่มแรงดันไฟฟ้าเป็น 24 V ได้เสมอ ไม่ว่าเราต้องการเอาต์พุตอะไร อย่างไรก็ตาม สิ่งนี้จะสิ้นเปลืองพลังงานอย่างมากใน LT3080 และสิ่งต่างๆ จะร้อนจัด! ดังนั้นแทนที่จะทำเช่นนั้น เราจะเพิ่มแรงดันไฟให้มากกว่าแรงดันเอาต์พุตเล็กน้อย ประมาณ 2.5 V ที่สูงกว่านั้นเหมาะสม เพื่อพิจารณาแรงดันไฟฟ้าตกในตัวต้านทานความรู้สึกปัจจุบันและแรงดันตกคร่อมของ LT3080 แรงดันไฟฟ้าถูกกำหนดโดยตัวต้านทานบนสัญญาณเอาท์พุตของตัวแปลงบูสต์ ในการเปลี่ยนแรงดันไฟฟ้านี้ในทันที เราใช้โพเทนชิออมิเตอร์แบบดิจิตอล MCP41010 ซึ่งควบคุมผ่าน SPI
การชาร์จแบตเตอรี่
สิ่งนี้นำเราไปสู่แรงดันไฟฟ้าขาเข้าจริง: แบตเตอรี่! เนื่องจากเราใช้เซลล์ที่ได้รับการป้องกัน เราเพียงแค่ต้องจัดเซลล์เป็นชุด เท่านี้ก็เสร็จเรียบร้อย! สิ่งสำคัญคือต้องใช้เซลล์ที่ได้รับการป้องกันที่นี่ เพื่อหลีกเลี่ยงกระแสไฟเกินหรือการคายประจุเกิน และทำให้เซลล์เสียหาย อีกครั้ง เราใช้ตัวแบ่งแรงดันไฟเพื่อวัดแรงดันไฟแบตเตอรี่ และวางลงให้อยู่ในช่วงที่ใช้งานได้ มาถึงส่วนที่น่าสนใจ: วงจรการชาร์จ เราใช้ชิป BQ2057WSN เพื่อจุดประสงค์นี้: เมื่อใช้ร่วมกับ TIP32CG โดยทั่วไปแล้วจะเป็นตัวจ่ายไฟเชิงเส้นเอง ชิปนี้ชาร์จเซลล์ผ่านวิถี CV CC ที่เหมาะสม เนื่องจากแบตเตอรี่ของฉันไม่มีหัววัดอุณหภูมิ อินพุตนี้จึงควรผูกไว้กับแรงดันไฟฟ้าของแบตเตอรี่ครึ่งหนึ่ง สรุปส่วนควบคุมแรงดันไฟฟ้าของพาวเวอร์ซัพพลาย
ตัวควบคุม 5V
แรงดันไฟฟ้า 5 V ของ Arduino ทำด้วยตัวควบคุมแรงดันไฟฟ้าแบบง่ายนี้ มันไม่ใช่เอาต์พุต 5 V ที่แม่นยำที่สุด แต่จะได้รับการแก้ไขด้านล่าง
แรงดันอ้างอิง 2.048 V
ชิปตัวเล็กนี้ให้การอ้างอิงแรงดันไฟฟ้า 2.048 V ที่แม่นยำมาก ใช้เป็นข้อมูลอ้างอิงสำหรับสัญญาณแอนะล็อก ADC_Vout, ADC_Iout, ADC_Vbatt นั่นเป็นเหตุผลที่เราต้องการตัวแบ่งแรงดันไฟฟ้าเพื่อลดสัญญาณเหล่านี้ลงไปที่ 2 V ไมโครคอนโทรลเลอร์ สมองของโครงการนี้คือ ATMEGA328P ซึ่งเป็นชิปตัวเดียวกับที่ใช้ใน Arduino Uno เราได้ตรวจสอบสัญญาณควบคุมส่วนใหญ่แล้ว แต่ก็มีส่วนเพิ่มเติมที่น่าสนใจอยู่บ้าง ตัวเข้ารหัสแบบหมุนเชื่อมต่อกับหมุดขัดจังหวะภายนอกเพียง 2 ตัวของ Arduino: PD2 และ PD3 นี่เป็นสิ่งจำเป็นสำหรับการใช้งานซอฟต์แวร์ที่เชื่อถือได้ สวิตช์ด้านล่างใช้ตัวต้านทานแบบดึงขึ้นภายใน จากนั้นมีตัวแบ่งแรงดันไฟฟ้าแปลก ๆ บนเส้นเลือกชิปของโพเทนชิออมิเตอร์ (หม้อ) ตัวแบ่งแรงดันไฟฟ้าที่เอาต์พุต ดีสำหรับอะไร คุณอาจจะพูด ดังที่ได้กล่าวไว้ก่อนหน้านี้การจ่ายไฟ 5 V นั้นไม่แม่นยำอย่างยิ่ง ดังนั้นจึงเป็นการดีที่จะวัดค่านี้ให้ถูกต้องและปรับรอบการทำงานของสัญญาณ PWM ให้เหมาะสม แต่เนื่องจากฉันไม่มีอินพุตว่างอีกแล้ว ฉันจึงต้องดึงพินสองหน้าที่ เมื่อบูทพาวเวอร์ซัพพลาย พินนี้จะถูกตั้งค่าเป็นอินพุตก่อน: มันวัดรางจ่ายไฟและปรับเทียบตัวเอง ถัดไป มันถูกตั้งค่าเป็นเอาต์พุต และสามารถขับเคลื่อนบรรทัดการเลือกชิปได้
ไดรเวอร์จอแสดงผล
สำหรับจอแสดงผล ฉันต้องการจอ LCD hitachi ที่มีจำหน่ายทั่วไปและราคาถูก พวกมันขับเคลื่อนด้วยหมุด 6 ตัว แต่เนื่องจากฉันไม่มีหมุดเหลือ ฉันจึงต้องการวิธีแก้ปัญหาอื่น กะลงทะเบียนเพื่อช่วยเหลือ! 74HC595 อนุญาตให้ฉันใช้สาย SPI เพื่อควบคุมการแสดงผล ดังนั้นจึงต้องการเพียง 1 สายการเลือกชิปเพิ่มเติม
FTDI
ส่วนสุดท้ายของพาวเวอร์ซัพพลายนี้คือการเชื่อมต่อกับโลกภายนอกที่โหดร้าย สำหรับสิ่งนี้ เราจำเป็นต้องแปลงสัญญาณอนุกรมเป็นสัญญาณ USB ทำได้โดยชิป FTDI ซึ่งเชื่อมต่อกับพอร์ต micro USB เพื่อการเชื่อมต่อที่ง่ายดาย
และนั่นคือทั้งหมดที่มี!
ขั้นตอนที่ 3: PCB & อิเล็กทรอนิกส์




ตอนนี้เราเข้าใจวิธีการทำงานของวงจรแล้ว ก็เริ่มสร้างวงจรได้เลย! คุณสามารถสั่งซื้อ PCB ออนไลน์จากผู้ผลิตที่คุณชื่นชอบ (ราคาของฉันประมาณ $ 10) ไฟล์ gerber สามารถพบได้ใน GitHub ของฉันพร้อมกับรายการวัสดุ การประกอบ PCB นั้นโดยทั่วไปแล้วเป็นเรื่องของการบัดกรีส่วนประกอบให้เข้าที่ตามซิลค์สกรีนและรายการวัสดุ
ขั้นตอนแรกคือการบัดกรีส่วนประกอบ SMD ส่วนใหญ่ทำด้วยมือง่าย ยกเว้นจากชิป FTDI และขั้วต่อ micro USB ดังนั้น คุณจึงสามารถหลีกเลี่ยงการบัดกรีส่วนประกอบ 2 ชิ้นนั้นได้ด้วยตัวเอง และใช้บอร์ดฝ่าวงล้อม FTDI แทน ฉันจัดเตรียมหมุดส่วนหัวที่สามารถบัดกรีได้
เมื่องาน SMD เสร็จสิ้น คุณสามารถย้ายไปยังส่วนประกอบรูทั้งหมดได้ สิ่งเหล่านี้ตรงไปตรงมามาก สำหรับชิป คุณอาจต้องการใช้ซ็อกเก็ตแทนการบัดกรีโดยตรงไปยังบอร์ด ควรใช้ ATMEGA328P กับ Arduino bootloader ไม่เช่นนั้น คุณจะต้องอัปโหลดโดยใช้ส่วนหัวของ ICSP (แสดงไว้ที่นี่)
ส่วนเดียวที่ต้องให้ความสนใจมากกว่านี้เล็กน้อยคือหน้าจอ LCD เนื่องจากต้องติดตั้งในมุมหนึ่ง ประสานส่วนหัวที่ทำมุมชายเข้ากับมัน โดยให้ชิ้นพลาสติกหันไปทางด้านล่างของหน้าจอ นี้จะช่วยให้การวางตำแหน่งที่ดีของหน้าจอบน pcb หลังจากนั้น ก็สามารถบัดกรีให้เข้าที่เหมือนกับส่วนประกอบในรูเจาะอื่นๆ
เหลือแค่เพิ่มสายไฟ 2 เส้น ซึ่งจะต่อกับขั้วกล้วยที่แผ่นด้านหน้า
ขั้นตอนที่ 4: เคสและการประกอบ



ด้วยการทำ pcb เราสามารถไปยังเคสได้ ฉันออกแบบ PCB รอบเคสแฮมมอนด์นี้โดยเฉพาะ ดังนั้นจึงไม่แนะนำให้ใช้เคสอื่น อย่างไรก็ตาม คุณสามารถพิมพ์เคสสามมิติที่มีขนาดเท่ากันได้เสมอ
ขั้นตอนแรกคือการเตรียมแผงปิดท้าย เราจะต้องเจาะรูสำหรับสกรู สวิตช์ ฯลฯ ฉันทำด้วยมือ แต่ถ้าคุณเข้าถึง CNC นั่นจะเป็นตัวเลือกที่แม่นยำยิ่งขึ้น ฉันทำรูตามแผนผังและเคาะรูสกรู
เป็นความคิดที่ดีที่จะเพิ่มแผ่นไหมบางส่วนตอนนี้และยึดไว้กับที่ด้วยซุปเปอร์กาวหยดเล็กน้อย สิ่งเหล่านี้จะแยก LT3080 และ TIP32 ออกจากแผ่นรองด้านหลัง ในขณะที่ยังคงให้การถ่ายเทความร้อน อย่าลืม!เมื่อขันชิปเข้ากับแผงด้านหลัง ให้ใช้เครื่องล้างไมกาเพื่อให้แน่ใจว่าแยกออกจากกัน!
ตอนนี้เราสามารถโฟกัสไปที่แผงด้านหน้าซึ่งเลื่อนเข้าที่ ตอนนี้เราสามารถเพิ่มหัวต่อกล้วยและปุ่มหมุนสำหรับเครื่องเข้ารหัสแบบหมุนได้แล้ว
เมื่อติดตั้งทั้งสองแผงเข้าที่แล้ว เราก็สามารถใส่ชุดประกอบลงในเคส ใส่แบตเตอรี่และปิดให้สนิท ตรวจสอบให้แน่ใจว่าคุณใช้แบตเตอรี่ที่มีการป้องกัน คุณไม่ต้องการให้เซลล์ระเบิด!
ณ จุดนี้ฮาร์ดแวร์เสร็จเรียบร้อยแล้ว ตอนนี้เหลือเพียงการเติมชีวิตชีวาให้กับซอฟต์แวร์ด้วยซอฟต์แวร์!
ขั้นตอนที่ 5: รหัส Arduino

สมองของโครงการนี้คือ ATMEGA328P ซึ่งเราจะตั้งโปรแกรมด้วย Arduino IDE ในส่วนนี้ ผมจะพูดถึงการใช้งานพื้นฐานของโค้ด โดยสามารถดูรายละเอียดได้จากความคิดเห็นภายในโค้ด
โดยทั่วไปโค้ดจะวนซ้ำตามขั้นตอนเหล่านี้:
- อ่านข้อมูลซีเรียลจาก java
- ปุ่มสำรวจความคิดเห็น
- วัดแรงดัน
- วัดกระแส
- วัดกระแสด้วย INA219
- ส่งข้อมูลซีเรียลไปยัง java
- กำหนดค่าบูสต์คอนเวอร์เตอร์
- รับชาร์จแบตเตอรี่
- อัพเดทหน้าจอ
เครื่องเข้ารหัสแบบโรตารี่ได้รับการจัดการโดยรูทีนบริการขัดจังหวะเพื่อให้ตอบสนองได้ดีที่สุด
ขณะนี้สามารถอัปโหลดโค้ดไปยังบอร์ดผ่านพอร์ต micro USB ได้แล้ว (หากชิปมี bootloader) บอร์ด: Arduino pro หรือ pro mini โปรแกรมเมอร์: AVR ISP / AVRSP MKII
ตอนนี้เราสามารถดูการโต้ตอบระหว่าง Arduino และพีซีได้
ขั้นตอนที่ 6: รหัส Java

สำหรับการบันทึกข้อมูลและควบคุมพาวเวอร์ซัพพลายผ่านพีซี ฉันได้สร้างแอปพลิเคชันจาวา ซึ่งช่วยให้เราควบคุมบอร์ดผ่าน GUI ได้อย่างง่ายดาย เช่นเดียวกับโค้ด Arduino ฉันจะไม่ลงรายละเอียดทั้งหมด แต่ให้ภาพรวม
เราเริ่มต้นด้วยการสร้างหน้าต่างที่มีปุ่ม ฟิลด์ข้อความ ฯลฯ สิ่ง GUI พื้นฐาน
ส่วนที่สนุกก็มาถึงแล้ว: การเพิ่มพอร์ต USB ซึ่งฉันใช้ไลบรารี jSerialComm เมื่อเลือกพอร์ตแล้ว java จะรับฟังข้อมูลที่เข้ามา เรายังสามารถส่งข้อมูลไปยังอุปกรณ์
นอกจากนี้ ข้อมูลขาเข้าทั้งหมดจะถูกบันทึกลงในไฟล์ csv สำหรับการจัดการข้อมูลในภายหลัง
เมื่อเรียกใช้ไฟล์.jar อันดับแรก เราควรเลือกพอร์ตที่ถูกต้องจากเมนูแบบเลื่อนลง หลังจากเชื่อมต่อข้อมูลจะเริ่มเข้ามา และเราสามารถส่งการตั้งค่าของเราไปที่พาวเวอร์ซัพพลาย
แม้ว่าโปรแกรมจะค่อนข้างธรรมดา แต่ก็มีประโยชน์มากในการควบคุมผ่านพีซีและบันทึกข้อมูล
ขั้นตอนที่ 7: สำเร็จ



หลังจากทั้งหมดนี้ เราก็มีพาวเวอร์ซัพพลายที่ทำงานได้อย่างสมบูรณ์!
ฉันต้องขอบคุณบางคนที่ให้การสนับสนุน:
- โครงการนี้อิงตามโครงการ uSupply ของ EEVBLOG และแผนผัง Rev C ของเขา ขอขอบคุณ David L. Jones เป็นพิเศษสำหรับการเผยแพร่แผนผังของเขาภายใต้ใบอนุญาตโอเพนซอร์สและแบ่งปันความรู้ทั้งหมดของเขา
- ขอบคุณมากสำหรับ Johan Pattyn สำหรับการผลิตต้นแบบของโครงการนี้
- นอกจากนี้ Cedric Busschots และ Hans Ingelberts ยังสมควรได้รับเครดิตสำหรับความช่วยเหลือในการแก้ปัญหา
ตอนนี้เราสามารถเพลิดเพลินกับพาวเวอร์ซัพพลายที่ทำเองที่บ้านได้ ซึ่งจะมีประโยชน์ในขณะที่ทำงานในโครงการที่ยอดเยี่ยมอื่นๆ! และที่สำคัญที่สุด: เราได้เรียนรู้หลายสิ่งหลายอย่างระหว่างทาง
หากคุณชอบโครงการนี้ โปรดโหวตให้ฉันในการแข่งขัน powersupply ฉันจะขอบคุณมาก!https://www.instructables.com/contest/powersupply/


รางวัลที่สองในการประกวดพาวเวอร์ซัพพลาย
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)

DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)

Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)

Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)

4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)

ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-