ในโครงการนี้เราจะลดระดับ 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 แบตเตอรี่
แผนภูมิวงจรรวม
ทำการเชื่อมต่อตามที่แสดงในแผนภาพวงจร
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