สร้าง Buck Converter โดยใช้ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโครงการนี้เราจะลดระดับ 12v D.C เป็นค่า D.C ใด ๆ ระหว่าง 2 ถึง 11 โวลต์ วงจรที่ลดแรงดันไฟฟ้า D.C เรียกว่าตัวแปลงบั๊ก แรงดันไฟฟ้าขาออกหรือแรงดันไฟฟ้าลดขั้นที่จำเป็นจะถูกควบคุมโดยใช้โพเทนชิออมิเตอร์ที่เชื่อมต่อกับ arduino

โดย Ankit Negi



บทนำในการแปลง:

โดยทั่วไปมีตัวแปลงสองประเภท:

1. ตัวแปลงบั๊ก



2. เพิ่มตัวแปลง

ตัวแปลงทั้งสองเปลี่ยนแรงดันไฟฟ้าขาเข้าตามความต้องการ คล้ายกับไฟล์ หม้อแปลงไฟฟ้า ด้วยความแตกต่างหลักอย่างหนึ่ง ในขณะที่หม้อแปลงก้าวขึ้น / ลงแรงดันไฟฟ้า A.C ตัวแปลง D.C จะเพิ่ม / ลดแรงดันไฟฟ้า D.C ส่วนประกอบหลักของตัวแปลงทั้งสองคือ:

ก. มอสเฟต

ข. ตัวเหนี่ยวนำ

ค. CAPACITOR

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

BOOST CONVERTER: ตามชื่อที่แนะนำการเพิ่มหมายถึงการเพิ่มแรงดันไฟฟ้าขาเข้า

Boost converter ให้แรงดัน DC มากกว่าแรงดัน D.C ที่อินพุต ยังเป็นการแปลงโดยตรง

** ในโปรเจ็กต์นี้เราจะสร้างวงจรบัคคอนเวอร์เตอร์เพื่อลดระดับ 12 v DC โดยใช้ arduino เป็นแหล่ง PWM

การเปลี่ยนความถี่ PWM บน ARDUINO PINS:

หมุด PWM ของ arduino UNO คือ 3, 5, 6, 9, 10 และ 11

ในการดำเนินการ PWM คำสั่งที่ใช้คือ:

analogWrite (หมายเลข PIN PWM, ค่า PWM)

และความถี่ PWM สำหรับหมุดเหล่านี้คือ:

สำหรับ Arduino Pins 9, 10, 11 และ 3 ---- 500Hz

สำหรับ Arduino Pins 5 และ 6 ---- 1kHz

ความถี่เหล่านี้เหมาะสำหรับการใช้งานทั่วไปเช่นการทำให้ไฟ LED ซีดจาง แต่สำหรับวงจรเช่น เจ้าชู้หรือเพิ่มตัวแปลง หนึ่งต้องการแหล่งสัญญาณ PWM ความถี่สูง (ในช่วงหลายสิบ KHZ) เนื่องจาก MOSFET ต้องการความถี่สูงเพื่อการสลับที่สมบูรณ์แบบและอินพุตความถี่สูงจะลดค่าหรือขนาดของส่วนประกอบวงจรเช่นตัวเหนี่ยวนำและตัวเก็บประจุ ดังนั้นสำหรับโครงการนี้เราต้องการแหล่งสัญญาณ PWM ความถี่สูง

สิ่งที่ดีคือเราสามารถเปลี่ยนความถี่ PWM ของหมุด PWM ของ arduino ได้โดยใช้รหัสง่ายๆ:

สำหรับ ARDUINO UNO:

ความถี่ PWM ที่ใช้ได้สำหรับ D3 & D11:
// TCCR2B = TCCR2B & B11111000 | B00000001 // สำหรับความถี่ PWM ที่ 31372.55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000010 // สำหรับความถี่ PWM ที่ 3921.16 Hz
// TCCR2B = TCCR2B & B11111000 | B00000011 // สำหรับความถี่ PWM ที่ 980.39 Hz
TCCR2B = TCCR2B & B11111000 | B00000100 // สำหรับความถี่ PWM 490.20 Hz (ค่าเริ่มต้น)
// TCCR2B = TCCR2B & B11111000 | B00000101 // สำหรับความถี่ PWM 245.10 Hz
// TCCR2B = TCCR2B & B11111000 | B00000110 // สำหรับความถี่ PWM 122.55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000111 // สำหรับความถี่ PWM 30.64 Hz
ความถี่ PWM ที่ใช้ได้สำหรับ D5 & D6:
// TCCR0B = TCCR0B & B11111000 | B00000001 // สำหรับความถี่ PWM 62500.00 Hz
// TCCR0B = TCCR0B & B11111000 | B00000010 // สำหรับความถี่ PWM ที่ 7812.50 Hz
TCCR0B = TCCR0B & B11111000 | B00000011 // สำหรับความถี่ PWM 976.56 Hz (ค่าเริ่มต้น)
// TCCR0B = TCCR0B & B11111000 | B00000100 // สำหรับความถี่ PWM 244.14 Hz
// TCCR0B = TCCR0B & B11111000 | B00000101 // สำหรับความถี่ PWM ที่ 61.04 Hz
ความถี่ PWM ที่ใช้ได้สำหรับ D9 และ D10:
// TCCR1B = TCCR1B & B11111000 | B00000001 // ตั้งตัวจับเวลา 1 ตัวหารเป็น 1 สำหรับความถี่ PWM ที่ 31372.55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000010 // สำหรับความถี่ PWM ที่ 3921.16 Hz
TCCR1B = TCCR1B & B11111000 | B00000011 // สำหรับความถี่ PWM 490.20 Hz (ค่าเริ่มต้น)
// TCCR1B = TCCR1B & B11111000 | B00000100 // สำหรับความถี่ PWM 122.55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000101 // สำหรับความถี่ PWM 30.64 Hz
** เราจะใช้หมายเลขพิน 6 สำหรับ PWM ดังนั้นรหัส:
// TCCR0B = TCCR0B & B11111000 | B00000001 // สำหรับความถี่ PWM 62.5 KHz

รายการส่วนประกอบ:

1. ARDUINO UNO

2. ตัวเหนี่ยวนำ (100Uh)

3. SCHOTTKY DIODE

4. ตัวเก็บประจุ (100uf)

5. IRF540N

6. โพเทนทิโอมิเตอร์

7. ตัวต้านทาน 10k, 100ohm

8. โหลด (มอเตอร์ในกรณีนี้)

9.12 V แบตเตอรี่

แผนภูมิวงจรรวม

Buck Converter โดยใช้ Arduino

Buck Converter โดยใช้เค้าโครงสายไฟ Arduino

ทำการเชื่อมต่อตามที่แสดงในแผนภาพวงจร

1. เชื่อมต่อขั้วปลายของโพเทนชิออมิเตอร์กับขา 5v และพินกราวด์ของ arduino UNO ตามลำดับในขณะที่ขั้วปัดน้ำฝนกับขาอะนาล็อก A1

2. เชื่อมต่อ PWM pin 6 ของ arduino เข้ากับฐานของ mosfet

3. ขั้วบวกของแบตเตอรี่เพื่อระบาย mosfet และขั้วลบไปยัง p-terminal ของ schottky diode

4. จาก p-terminal ของ schottky diode เชื่อมต่อโหลด (มอเตอร์) แบบอนุกรมพร้อมตัวเหนี่ยวนำไปยังขั้วต้นทางของ mosfet

5. ตอนนี้เชื่อมต่อ n-terminal ของ schottky diode กับขั้วต้นทางของ mosfet

6. เชื่อมต่อตัวเก็บประจุ 47uf ข้ามมอเตอร์

7. ในที่สุดเชื่อมต่อขากราวด์ของ arduino กับขั้วต้นทางของ mosfet

วัตถุประสงค์ของ mosfet:

Mosfet ใช้เพื่อเปลี่ยนแรงดันไฟฟ้าขาเข้าที่ความถี่สูงและเพื่อให้กระแสไฟฟ้าสูงและกระจายความร้อนน้อยลง

วัตถุประสงค์ของ arduino:

สำหรับความเร็วในการเปลี่ยนมอสเฟ็ทสูง (ที่ความถี่ 65 KHz โดยประมาณ)

วัตถุประสงค์ของตัวเหนี่ยวนำ:

หากวงจรนี้ทำงานโดยไม่ได้เชื่อมต่อตัวเหนี่ยวนำมีโอกาสสูงที่จะทำให้มอสเฟ็ตเสียหายเนื่องจากแรงดันไฟฟ้าสูงที่ขั้วของมอสเฟต

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

วัตถุประสงค์ของไดโอด Schottky:

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

วัตถุประสงค์ของโพเทนชิออมิเตอร์:

โพเทนชิออมิเตอร์ ให้ค่าอนาล็อกแก่ arduino (ตามตำแหน่งของขั้วปัดน้ำฝน) ตามแรงดันไฟฟ้า pwm ที่ได้รับจากขั้วประตูของ mosfet จาก PWM พิน 6 ของ Arduino ในที่สุดค่านี้จะควบคุมแรงดันขาออกระหว่างโหลด

เหตุใดตัวต้านทานจึงเชื่อมต่อระหว่างประตูและแหล่งที่มา

แม้เสียงเพียงเล็กน้อยก็สามารถเปิด mosfet ได้ ดังนั้น ดึงตัวต้านทานลง เชื่อมต่อระหว่างประตูและพื้นดินเช่นแหล่งที่มา

รหัสโปรแกรม

Burn this code to arduino:
int m // initialize variable m
int n // initialize variable n
void setup()
B00000001 // for PWM frequency of 62.5 KHz on pin 6( explained under code section)
Serial.begin(9600) // begin serial communication

void loop()
{
m= analogRead(A1) // read voltage value from pin A1 at which pot. wiper terminal is connected
n= map(m,0,1023,0,255) // map this ip value betwenn 0 and 255
analogWrite(6,n) // write mapped value on pin 6
Serial.print(' PWM Value ')
Serial.println(n)
}

คำอธิบายรหัส

1. ตัวแปร x คือค่าแรงดันไฟฟ้าที่ได้รับจากพิน A1 ที่เชื่อมต่อขั้วปัดน้ำฝนของหม้อ

2. ตัวแปร y ถูกกำหนดค่าที่แมปซึ่งอยู่ระหว่าง 0 ถึง 255

3. ** ตามที่อธิบายไว้แล้วในหัวข้อข้างต้นสำหรับวงจรเช่นบัคหรือตัวแปลงบูสต์เราต้องการแหล่ง PWM ความถี่สูง (ในช่วงหลายสิบ KHZ) เนื่องจาก MOSFET ต้องการความถี่สูงเพื่อการสลับที่สมบูรณ์แบบและอินพุตความถี่สูงจะลดค่าหรือขนาด ของส่วนประกอบวงจรเช่นตัวเหนี่ยวนำและตัวเก็บประจุ

ดังนั้นเราจะใช้โค้ดง่ายๆนี้เพื่อสร้างแรงดันไฟฟ้า pwm โดยประมาณ ความถี่ 65 kHz: TCCR0B = TCCR0B & B11111000 | B00000001 // สำหรับความถี่ PWM 62.5 KHz ที่ขา 6

มันทำงานอย่างไร:

เนื่องจากโพเทนชิออมิเตอร์ให้ค่าอะนาล็อกกับ arduino (ขึ้นอยู่กับตำแหน่งของขั้วปัดน้ำฝน) สิ่งนี้จะกำหนดค่าแรงดันไฟฟ้า pwm ที่ได้รับจาก gate terminal ของ mosfet จาก PWM pin 6 ของ Arduino

และในที่สุดค่านี้จะควบคุมแรงดันขาออกระหว่างโหลด

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

ภาพต้นแบบ:

คลิปวิดีโออธิบายวงจร Buck Converter ด้านบนโดยใช้ Arduino




คู่ของ: วงจรวัดการไหลของน้ำแบบดิจิตอลอย่างง่ายโดยใช้ Arduino ถัดไป: วงจรพร็อกซิมิตีเซนเซอร์แบบง่าย 4 วงจร - ใช้ IC LM358, IC LM567, IC 555