- ส่วนประกอบที่ต้องการ:
- คำอธิบายการทำงาน:
- คำอธิบายวงจร:
- คำอธิบายการเขียนโปรแกรม:
- การออกแบบวงจรและ PCB โดยใช้ EasyEDA:
- การคำนวณและการสั่งซื้อ PCBs ออนไลน์:
เรามักจะเห็นความผันผวนของแรงดันไฟฟ้าในการจ่ายไฟฟ้าที่บ้านซึ่งอาจทำให้เครื่องใช้ไฟฟ้าในบ้านของเราทำงานผิดปกติ วันนี้เรากำลังสร้างวงจรป้องกันแรงดันไฟฟ้าสูงและต่ำราคาประหยัดซึ่งจะตัดการจ่ายไฟไปยังเครื่องใช้ไฟฟ้าในกรณีที่มีแรงดันไฟฟ้าสูงหรือต่ำ นอกจากนี้ยังจะแสดงข้อความแจ้งเตือนบนจอ LCD 16x2 ในโครงการนี้เราได้ใช้ไมโครคอนโทรลเลอร์ PICเพื่ออ่านและเปรียบเทียบแรงดันไฟฟ้าขาเข้ากับแรงดันอ้างอิงและดำเนินการตามนั้น
เราได้สร้างวงจรนี้บน PCB และเพิ่มวงจรเพิ่มเติมบน PCB เพื่อจุดประสงค์เดียวกัน แต่คราวนี้ใช้ op-amp LM358 (ไม่มีไมโครคอนโทรลเลอร์) เพื่อวัตถุประสงค์ในการสาธิตเราได้เลือกขีด จำกัด แรงดันไฟฟ้าต่ำเป็น 150v และขีด จำกัด แรงดันไฟฟ้าสูงเป็น 200v ในโครงการนี้เราไม่ได้ใช้รีเลย์ใด ๆ ในการตัดสัญญาณเราเพิ่งสาธิตโดยใช้ LCD ตรวจสอบวิดีโอในตอนท้ายของบทความนี้ แต่ผู้ใช้อาจต่อรีเลย์กับวงจรนี้และเชื่อมต่อกับ GPIO ของ PIC
ตรวจสอบโครงการ PCB อื่น ๆ ของเราเพิ่มเติมได้ที่นี่
ส่วนประกอบที่ต้องการ:
- ไมโครคอนโทรลเลอร์ PIC PIC18F2520
- PCB (สั่งจาก EasyEDA)
- ไอซี LM358
- ขั้วต่อขั้วต่อ 3 พิน (อุปกรณ์เสริม)
- 16x2 LCD
- BC547 ทรานซิสเตอร์
- ตัวต้านทาน 1k
- ตัวต้านทาน 2k2
- ตัวต้านทาน 30K SMD
- 10k SMD
- ตัวเก็บประจุ - 0.1uf, 10uF, 1000uF
- ฐาน IC 28 พิน
- หัวขโมยชาย / หญิง
- 7805 ตัวควบคุมแรงดันไฟฟ้า - 7805, 7812
- Pickit2 โปรแกรมเมอร์
- LED
- ซีเนอร์ไดโอด - 5.1v, 7.5v, 9.2v
- หม้อแปลง 12-0-12
- คริสตัล 12MHz
- ตัวเก็บประจุ 33pF
- ตัวควบคุมแรงดันไฟฟ้า (ตัวควบคุมความเร็วพัดลม)
คำอธิบายการทำงาน:
ในวงจรตัดแรงดันไฟฟ้าสูงและต่ำนี้เราได้อ่านแรงดันไฟฟ้ากระแสสลับโดยใช้ไมโครคอนโทรลเลอร์ PICด้วยความช่วยเหลือของหม้อแปลงวงจรเรียงกระแสสะพานและวงจรแบ่งแรงดันไฟฟ้าและแสดงบนจอ LCD ขนาด 16x2 จากนั้นเราได้เปรียบเทียบแรงดันไฟฟ้ากระแสสลับกับขีด จำกัด ที่กำหนดไว้ล่วงหน้าและแสดงข้อความแจ้งเตือนบนจอ LCD ตามนั้น เช่นเดียวกับถ้าแรงดันไฟฟ้าต่ำกว่า 150v เราจะแสดง "แรงดันไฟฟ้าต่ำ" และถ้าแรงดันไฟฟ้าสูงกว่า 200v เราจะแสดงข้อความ "แรงดันไฟฟ้าสูง" บนจอ LCD เราสามารถเปลี่ยนขีด จำกัด เหล่านั้นในรหัส PIC ที่ให้ไว้ในตอนท้ายของโครงการนี้ ที่นี่เราได้ใช้ Fan Regulator เพื่อเพิ่มและลดแรงดันไฟฟ้าขาเข้าเพื่อการสาธิตในวิดีโอ
ในวงจรนี้เราได้เพิ่มSimple Under and Over Voltage Protection Circuitโดยไม่ต้องใช้ไมโครคอนโทรลเลอร์ใด ๆ ในวงจรง่ายๆนี้เราได้ใช้ตัวเปรียบเทียบ LM358 เพื่อเปรียบเทียบแรงดันไฟฟ้าขาเข้าและอ้างอิง ดังนั้นเรามีสามทางเลือกในโครงการนี้:
- วัดและเปรียบเทียบแรงดันไฟฟ้ากระแสสลับด้วยความช่วยเหลือของหม้อแปลงวงจรเรียงกระแสสะพานวงจรแบ่งแรงดันและไมโครคอนโทรลเลอร์ PIC
- การตรวจจับแรงดันไฟฟ้าเกินและต่ำโดยใช้ LM358 ด้วยความช่วยเหลือของหม้อแปลงวงจรเรียงกระแสและตัวเปรียบเทียบ LM358 (ไม่มีไมโครคอนโทรลเลอร์)
- ตรวจจับแรงดันไฟฟ้าต่ำและเกินโดยใช้เครื่องเปรียบเทียบ LM358 และป้อนเอาต์พุตไปยังไมโครคอนโทรลเลอร์ PIC เพื่อดำเนินการตามรหัส
เราได้สาธิตตัวเลือกแรกของโครงการนี้แล้ว ซึ่งเราได้ลดแรงดันไฟฟ้าอินพุต AC ลงแล้วจึงแปลงเป็น DC โดยใช้วงจรเรียงกระแสแบบบริดจ์แล้วแมปแรงดันไฟฟ้ากระแสตรงนี้เป็น 5v อีกครั้งจากนั้นป้อนแรงดันไฟฟ้านี้ไปยังไมโครคอนโทรลเลอร์ PIC เพื่อเปรียบเทียบและแสดง
ในไมโครคอนโทรลเลอร์ PIC เราได้อ่านแรงดันไฟฟ้ากระแสตรงที่แมปนี้และจากค่าที่แมปนั้นเราได้คำนวณแรงดันไฟฟ้ากระแสสลับขาเข้าด้วยความช่วยเหลือของสูตรที่กำหนด:
โวลต์ = ((adcValue * 240) / 1023)
โดยที่ adcValue เทียบเท่าค่าแรงดันอินพุต DC ที่พิน ADC คอนโทรลเลอร์ PIC และ โวลต์ คือแรงดันไฟฟ้ากระแสสลับที่ใช้ ที่นี่เราได้รับ 240v เป็นแรงดันไฟฟ้าขาเข้าสูงสุด
หรือเราสามารถใช้วิธีการที่กำหนดสำหรับการแมปค่าอินพุต DC ที่เทียบเท่า
โวลต์ = แผนที่ (adcVlaue, 530, 895, 100, 240)
โดยที่ adcValue เทียบเท่าค่าแรงดันไฟฟ้าอินพุต DC ที่ขา ADC คอนโทรลเลอร์ PIC 530 คือค่าแรงดันไฟฟ้ากระแสตรงต่ำสุดเทียบเท่าและ 895 คือค่าเทียบเท่าแรงดันไฟฟ้ากระแสตรงสูงสุด และ 100v คือแรงดันไฟฟ้าในการทำแผนที่ขั้นต่ำและ 240v คือแรงดันไฟฟ้าสูงสุดในการทำแผนที่
หมายถึงอินพุต 10mV DC ที่พิน PIC ADC เท่ากับ 2.046 ค่าเทียบเท่า ADC ดังนั้นที่นี่เราได้เลือก 530 เป็นค่าต่ำสุดแรงดันไฟฟ้าที่ขา ADC ของ PIC จะเป็น:
(((530 / 2.046) * 10) / 1000) โวลต์
2.6v ซึ่งจะถูกแมปค่าต่ำสุด 100VAC
(การคำนวณเดียวกันสำหรับขีด จำกัด สูงสุด)
ตรวจสอบ ฟังก์ชั่น แผนที่ ได้รับในรหัสโปรแกรม PIC ในตอนท้าย เรียนรู้เพิ่มเติมเกี่ยวกับวงจรแบ่งแรงดันไฟฟ้าและการทำแผนที่แรงดันไฟฟ้าโดยใช้ ADC ที่นี่
การทำงานของโครงการนี้เป็นเรื่องง่าย ในโครงการนี้เราได้ใช้ตัวควบคุมพัดลมแรงดันไฟฟ้ากระแสสลับในการสาธิต เราได้ติดตั้งตัวควบคุมพัดลมเข้ากับอินพุตของหม้อแปลง จากนั้นโดยการเพิ่มหรือลดความต้านทานเราได้เอาต์พุตแรงดันไฟฟ้าที่ต้องการ
ในรหัสเราได้กำหนดค่าแรงดันไฟฟ้าสูงสุดและต่ำสุดสำหรับการตรวจจับแรงดันไฟฟ้าสูงและแรงดันไฟฟ้าต่ำ เราได้แก้ไข 200v เป็นขีด จำกัด แรงดันไฟฟ้าเกินและ 150v เป็นขีด จำกัด แรงดันไฟฟ้าที่ต่ำกว่า หลังจากเปิดวงจรแล้วเราจะเห็นแรงดันไฟฟ้าขาเข้า AC ผ่านจอ LCD เมื่อแรงดันไฟฟ้าขาเข้าเพิ่มขึ้นเราจะเห็นการเปลี่ยนแปลงของแรงดันไฟฟ้าบน LCD และหากแรงดันไฟฟ้าเกินขีด จำกัด แรงดันไฟฟ้า LCD จะแจ้งเตือนเราด้วย“ การแจ้งเตือนแรงดันไฟฟ้าสูง” และหากแรงดันไฟฟ้าต่ำกว่าขีด จำกัด แรงดันไฟฟ้า LCD จะแจ้งเตือนเราโดยแสดง“ ข้อความ LOW Voltage Alert” วิธีนี้สามารถใช้เป็นเบรกเกอร์อิเล็กทรอนิกส์ได้
เราสามารถเพิ่มรีเลย์เพิ่มเติมเพื่อต่อเครื่องใช้ไฟฟ้ากระแสสลับใด ๆ เพื่อตัดไฟอัตโนมัติที่แรงดันไฟฟ้าต่ำหรือสูง เราต้องเพิ่มบรรทัดรหัสเพื่อปิดเครื่องใต้ข้อความแจ้งเตือน LCD ที่แสดงรหัส ตรวจสอบที่นี่เพื่อใช้รีเลย์กับอุปกรณ์ AC
คำอธิบายวงจร:
ในวงจรป้องกันแรงดันไฟฟ้าสูงและต่ำเราได้ใช้ออปแอมป์ LM358 ซึ่งมีเอาต์พุตสองตัวเชื่อมต่อกับพิน 2 และ 3 ของไมโครคอนโทรลเลอร์ PIC และตัวแบ่งแรงดันใช้เพื่อแบ่งแรงดันไฟฟ้าและเชื่อมต่อเอาต์พุตที่พินหมายเลข 4 ของไมโครคอนโทรลเลอร์ PIC LCD เชื่อมต่อที่ PORTB ของ PIC ในโหมด 4 บิต RS และ EN เชื่อมต่อโดยตรงที่ B0 และ B1 และหมุดข้อมูล D4, D5, D6 และ D7of LCD เชื่อมต่อที่ B2, B3, B4 และ B5 ตามลำดับ ในโครงการนี้เราได้ใช้ตัวควบคุมแรงดันไฟฟ้าสองตัว: 7805 สำหรับการจ่ายไมโครคอนโทรลเลอร์และ 7812 สำหรับวงจร LM358 และยังใช้หม้อแปลงแบบ step-down 12v-0-12v เพื่อลดแรงดันไฟฟ้ากระแสสลับ ส่วนประกอบที่เหลือแสดงอยู่ในแผนภาพวงจรด้านล่าง
คำอธิบายการเขียนโปรแกรม:
ส่วนการเขียนโปรแกรมของโครงการนี้ทำได้ง่าย ในรหัสนี้เราต้องคำนวณแรงดันไฟฟ้ากระแสสลับโดยใช้แรงดันไฟฟ้า 0-5v ที่แมปจากวงจรแบ่งแรงดันไฟฟ้าแล้วเปรียบเทียบกับค่าที่กำหนดไว้ คุณสามารถตรวจสอบรหัส PIC ที่สมบูรณ์ได้หลังจากโครงการนี้
อันดับแรกในโค้ดเราได้รวมส่วนหัวและกำหนดค่าบิตกำหนดค่าไมโครคอนโทรลเลอร์ PIC หากคุณยังใหม่กับการเข้ารหัส PIC ให้เรียนรู้ไมโครคอนโทรลเลอร์ PIC และบิตการกำหนดค่าที่นี่
จากนั้นเราได้ใช้ fucntions ในการขับเคลื่อน LCD เช่น void lcdbegin () สำหรับการเริ่มต้น LCD, void lcdcmd (char ch) สำหรับการส่งคำสั่งไปยัง LCD, void lcdwrite (char ch) สำหรับการส่งข้อมูลไปยัง LCD และ void lcdprint (char * str) สำหรับส่งสตริงไปยัง LCD ตรวจสอบฟังก์ชันทั้งหมดในโค้ดด้านล่าง
ฟังก์ชันที่ระบุด้านล่างนี้ใช้สำหรับการแมปค่า:
แผนที่ยาว (long x, in_min ยาว, in_max ยาว, long out_min, long out_max) {return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }
กำหนด ฟังก์ชัน int analogRead (int ch) สำหรับการเริ่มต้นและการอ่าน ADC:
int analogRead (int ch) {int adcData = 0; ถ้า (ch == 0) ADCON0 = 0x03; // adc ช่อง 0 อื่นถ้า (ch == 1) ADCON0 = 0x0b; // เลือกช่อง adc 1 อื่นถ้า (ch == 2) ADCON0 = 0x0b; // เลือกช่อง adc 2 ADCON1 = 0b00001100; // เลือกอะนาล็อก i / p 0,1 และ 2 ช่องของ ADC ADCON2 = 0b10001010; // เวลา eqisation ถือเวลาสูงสุดในขณะที่ (GODONE == 1); // เริ่มการแปลงค่า adc adcData = (ADRESL) + (ADRESH << 8); // จัดเก็บเอาต์พุต 10 บิต ADON = 0; // adc ปิดการส่งคืน adcData; }
เส้นที่กำหนดใช้สำหรับรับตัวอย่าง ADC และคำนวณค่าเฉลี่ยจากนั้นคำนวณแรงดันไฟฟ้า:
ในขณะที่ (1) {long adcValue = 0; int โวลต์ = 0; สำหรับ (int i = 0; i <100; i ++) // รับตัวอย่าง {adcValue + = analogRead (2); ล่าช้า (1); } adcValue / = 100; #if วิธี == 1 โวลต์ = (((ลอย) adcValue * 240.0) /1023.0); #else volt = แผนที่ (adcValue, 530, 895, 100, 240); #endif sprintf (ผลลัพธ์, "% d", โวลต์);
และสุดท้ายฟังก์ชันที่กำหนดจะถูกใช้เพื่อดำเนินการผลลัพธ์:
ถ้า (โวลต์> 200) {lcdcmd (1); lcdprint ("ไฟฟ้าแรงสูง"); lcdcmd (192); lcdprint ("การแจ้งเตือน"); ล่าช้า (1,000); } else if (โวลต์ <150) {lcdcmd (1); lcdprint ("แรงดันไฟฟ้าต่ำ"); lcdcmd (192); lcdprint ("การแจ้งเตือน"); ล่าช้า (1,000); }
การออกแบบวงจรและ PCB โดยใช้ EasyEDA:
ในการออกแบบวงจรตรวจจับแรงดันไฟฟ้าสูงและต่ำนี้เราได้เลือกเครื่องมือ EDA ออนไลน์ที่เรียกว่า EasyEDA ก่อนหน้านี้เราเคยใช้ EasyEDA หลายครั้งและพบว่าสะดวกในการใช้งานเมื่อเทียบกับตัวผลิต PCB อื่น ๆ ตรวจสอบโครงการ PCB ทั้งหมดของเราที่นี่ EasyEDA ไม่ได้เป็นเพียงโซลูชั่นครบวงจรสำหรับการจับแผนผังการจำลองวงจรและการออกแบบ PCB เท่านั้น แต่ยังมีบริการจัดหา PCB Prototype และ Components ที่มีต้นทุนต่ำอีกด้วย พวกเขาเพิ่งเปิดตัวบริการจัดหาชิ้นส่วนซึ่งมีชิ้นส่วนอิเล็กทรอนิกส์จำนวนมากและผู้ใช้สามารถสั่งซื้อส่วนประกอบที่ต้องการพร้อมกับคำสั่งซื้อ PCB
ในขณะที่ออกแบบวงจรและ PCB ของคุณคุณยังสามารถกำหนดให้การออกแบบวงจรและ PCB ของคุณเป็นแบบสาธารณะเพื่อให้ผู้ใช้รายอื่นสามารถคัดลอกหรือแก้ไขได้และสามารถใช้ประโยชน์จากที่นั่นได้เรายังทำให้วงจรและเลย์เอาต์ PCB ทั้งหมดของเราเป็นสาธารณะสำหรับ แรงดันไฟฟ้าสูงและต่ำ วงจรป้องกันตรวจสอบลิงค์ด้านล่าง:
easyeda.com/circuitdigest/HIGH_LOW_Voltage_Detector-4dc240b0fde140719c2401096e2410e6
ด้านล่างนี้เป็นภาพรวมของเลเยอร์บนสุดของเลย์เอาต์ PCB จาก EasyEDA คุณสามารถดูเลเยอร์ใดก็ได้ (บน, ล่าง, ท็อปซิล, พื้นและอื่น ๆ) ของ PCB โดยเลือกเลเยอร์จากหน้าต่าง 'เลเยอร์'
คุณยังสามารถชำระเงินในมุมมองภาพถ่ายของ PCB โดยใช้ EasyEDA:
การคำนวณและการสั่งซื้อ PCBs ออนไลน์:
หลังจากออกแบบ PCB เสร็จแล้วคุณสามารถคลิกไอคอนของ ผลลัพธ์การผลิต ด้านบน จากนั้นคุณจะเข้าสู่หน้าคำสั่ง PCB เพื่อดาวน์โหลดไฟล์ Gerber ของ PCB ของคุณและส่งไปยังผู้ผลิตรายใดก็ง่ายกว่ามาก (และถูกกว่า) ในการสั่งซื้อโดยตรงใน EasyEDA ที่นี่คุณสามารถเลือกจำนวน PCB ที่คุณต้องการสั่งจำนวนชั้นทองแดงที่คุณต้องการความหนาของ PCB น้ำหนักทองแดงและแม้แต่สี PCB หลังจากที่คุณเลือกตัวเลือกทั้งหมดแล้วให้คลิก“ บันทึกลงในรถเข็น” และดำเนินการสั่งซื้อของคุณให้เสร็จสิ้นคุณจะได้รับ PCBs ของคุณในอีกไม่กี่วันต่อมา ผู้ใช้อาจไปกับผู้จำหน่าย PCB ในพื้นที่เพื่อสร้าง PCB โดยใช้ไฟล์ Gerber
การจัดส่งของ EasyEDA รวดเร็วมากและหลังจากสั่งซื้อ PCB ไม่กี่วันฉันก็ได้ตัวอย่าง PCB:
ด้านล่างนี้เป็น ภาพหลังจากการบัดกรีส่วนประกอบบน PCB:
นี่คือวิธีที่เราสามารถสร้างวงจรป้องกันไฟฟ้าแรงสูงต่ำสำหรับบ้านของเราได้อย่างง่ายดาย นอกจากนี้คุณต้องเพิ่มรีเลย์เพื่อเชื่อมต่อเครื่องใช้ไฟฟ้า AC ใด ๆเพื่อป้องกันแรงดันไฟฟ้าที่ผันผวน เพียงเชื่อมต่อรีเลย์กับพินวัตถุประสงค์ทั่วไปของ PIC MCU และเขียนรหัสเพื่อให้พินนั้นสูงและต่ำพร้อมกับรหัสข้อความแจ้งเตือน LCD