- ส่วนประกอบที่จำเป็น:
- คำอธิบายวงจร:
- เครื่องกำเนิดสัญญาณโดยใช้ 555 Timer IC:
- Schmitt Trigger Gate:
- คำอธิบายรหัสตัวนับความถี่ Arduino:
นักทำงานอดิเรกอิเล็กทรอนิกส์เกือบทุกคนต้องเผชิญกับสถานการณ์ที่เขาหรือเธอต้องวัดความถี่ของสัญญาณที่เกิดจากนาฬิกาหรือตัวนับหรือตัวจับเวลา เราสามารถใช้ออสซิลโลสโคปในการทำงานได้ แต่ไม่ใช่ทุกคนที่สามารถซื้อออสซิลโลสโคปได้ เราสามารถซื้ออุปกรณ์สำหรับวัดความถี่ได้ แต่อุปกรณ์เหล่านี้มีราคาแพงและไม่ใช่สำหรับทุกคน ด้วยเหตุนี้เราจึงจะออกแบบตัวนับความถี่ที่เรียบง่าย แต่มีประสิทธิภาพโดยใช้ Arduino Unoและ Schmitt trigger gate
นี้Arduino นับความถี่เป็นค่าใช้จ่ายที่มีประสิทธิภาพและสามารถทำได้อย่างง่ายดายเราจะใช้UNO ARDUINOสำหรับการวัดความถี่ของสัญญาณ, UNO เป็นหัวใจของโครงการที่นี่
ในการทดสอบเครื่องวัดความถี่เราจะสร้างเครื่องกำเนิดสัญญาณจำลอง กำเนิดสัญญาณหุ่นนี้จะทำโดยใช้ชิปจับเวลา 555 วงจรจับเวลาสร้างคลื่นสี่เหลี่ยมซึ่งจะมอบให้กับ UNO เพื่อทำการทดสอบ
เราจะมี Arduino Frequency meter และเครื่องกำเนิดคลื่นสี่เหลี่ยม Arduino ยังสามารถใช้เพื่อสร้างรูปคลื่นชนิดอื่น ๆ เช่นคลื่นไซน์คลื่นฟันเลื่อยเป็นต้น
ส่วนประกอบที่จำเป็น:
- 555 ตัวจับเวลา IC และ 74LS14 Schmitt trigger gate หรือ NOT gate
- ตัวต้านทาน 1K Ω (2 ชิ้น), ตัวต้านทาน100Ω
- ตัวเก็บประจุ 100nF (2 ชิ้น), ตัวเก็บประจุ 1000µF
- 16 * 2 LCD,
- หม้อ47KΩ,
- Breadboard และตัวเชื่อมต่อบางตัว
คำอธิบายวงจร:
แผนภาพวงจรของการวัดความถี่โดยใช้ Arduinoแสดงดังรูปด้านล่าง วงจรเป็นเรื่องง่าย LCD เชื่อมต่อกับ Arduino เพื่อแสดงความถี่ของสัญญาณที่วัดได้ 'Wave Input' จะไปที่ Signal Generator Circuit ซึ่งเรากำลังป้อนสัญญาณไปยัง Arduino Schmitt trigger gate (IC 74LS14) ใช้เพื่อให้แน่ใจว่ามีการป้อนคลื่นสี่เหลี่ยมให้ Arduino เท่านั้น สำหรับการกรองสัญญาณรบกวนเราได้เพิ่มตัวเก็บประจุสองตัวในกำลังไฟ ความถี่นี้ Meter สามารถวัดความถี่ได้ถึง1 MHz
วงจรกำเนิดสัญญาณและทริกเกอร์ Schmitt ได้อธิบายไว้ด้านล่าง
เครื่องกำเนิดสัญญาณโดยใช้ 555 Timer IC:
ก่อนอื่นเราจะพูดถึงเครื่องกำเนิดคลื่นสแควร์ 555 IC หรือฉันควรจะพูดว่า 555 Astable Multivibrator วงจรนี้จำเป็นเพราะเมื่อมีเครื่องวัดความถี่เราจะต้องมีสัญญาณที่เราทราบความถี่ หากไม่มีสัญญาณนั้นเราจะไม่สามารถบอกการทำงานของเครื่องวัดความถี่ได้ หากเรามีความถี่ที่ทราบกำลังสองเราสามารถใช้สัญญาณนั้นเพื่อทดสอบ Arduino Uno Frequency Meter และเราสามารถปรับแต่งเพื่อปรับความแม่นยำในกรณีที่มีการเบี่ยงเบนใด ๆ รูปภาพของ Signal Generator โดยใช้ 555 Timer IC แสดง ไว้ด้านล่าง:
วงจรทั่วไปของ 555 ในโหมด Astableได้รับด้านล่างซึ่งเราได้รับวงจรกำเนิดสัญญาณที่ระบุข้างต้น
ความถี่ของสัญญาณเอาต์พุตขึ้นอยู่กับตัวต้านทาน RA, RB และตัวเก็บประจุ C สมการจะได้รับเป็น
ความถี่ (F) = 1 / (ช่วงเวลา) = 1.44 / ((RA + RB * 2) * C)
ที่นี่ RA และ RB คือค่าความต้านทานและ C คือค่าความจุ ด้วยการใส่ค่าความต้านทานและค่าความจุในสมการข้างต้นเราจะได้ความถี่ของคลื่นสแควร์เอาท์พุต
เราจะเห็นว่า RB ของแผนภาพด้านบนถูกแทนที่ด้วยหม้อในวงจรกำเนิดสัญญาณ สิ่งนี้ทำเพื่อให้เราสามารถรับคลื่นความถี่ตัวแปรที่เอาต์พุตเพื่อการทดสอบที่ดีขึ้น เพื่อความเรียบง่ายเราสามารถเปลี่ยนหม้อด้วยตัวต้านทานแบบธรรมดาได้
Schmitt Trigger Gate:
เราทราบดีว่าสัญญาณการทดสอบทั้งหมดไม่ใช่คลื่นสี่เหลี่ยมจัตุรัสหรือสี่เหลี่ยม เรามีคลื่นสามเหลี่ยมคลื่นฟันคลื่นไซน์และอื่น ๆ ด้วย UNO ความสามารถในการตรวจสอบเพียงคลื่นสี่เหลี่ยมหรือสี่เหลี่ยมที่เราต้องการอุปกรณ์ที่สามารถปรับเปลี่ยนการส่งสัญญาณใด ๆ ที่คลื่นสี่เหลี่ยมทำให้เราใช้มิตทริกเกอร์ประตู Schmitt trigger gate เป็นประตูลอจิกดิจิตอลที่ออกแบบมาสำหรับการคำนวณทางคณิตศาสตร์และตรรกะ
ประตูนี้ให้เอาต์พุตตามระดับแรงดันไฟฟ้าอินพุต Schmitt Trigger มีระดับแรงดันไฟฟ้า THERSHOLD เมื่อสัญญาณ INPUT ที่ใช้กับประตูมีระดับแรงดันไฟฟ้าสูงกว่า THRESHOLD ของลอจิกเกตเอาต์พุตจะสูง หากระดับสัญญาณแรงดันไฟฟ้า INPUT ต่ำกว่า THRESHOLD เอาต์พุตของประตูจะอยู่ในระดับต่ำ โดยปกติเราไม่ได้รับ Schmitt trigger แยกกันเรามักจะมีประตู NOT ตาม Schmitt trigger เสมอ Schmitt Trigger อธิบายไว้ที่นี่: Schmitt Trigger Gate
เราจะใช้ชิป 74LS14 ชิปนี้มี 6 Schmitt Trigger gatesอยู่ในนั้น ประตู SIX เหล่านี้เชื่อมต่อภายในดังแสดงในรูปด้านล่าง
จริงตารางประตู Inverted มิตทริกเกอร์คือการแสดงในรูปด้านล่างด้วยนี้เรามีการเขียนโปรแกรม UNO สำหรับ inverting ช่วงเวลาบวกและลบที่ขั้วของมัน
ตอนนี้เราจะป้อนสัญญาณประเภทใดก็ได้ไปยังประตู ST เราจะมีคลื่นสี่เหลี่ยมของช่วงเวลากลับด้านที่เอาต์พุตเราจะป้อนสัญญาณนี้ไปยัง UNO
คำอธิบายรหัสตัวนับความถี่ Arduino:
รหัสสำหรับ การวัดความถี่โดยใช้ arduino นี้ค่อนข้างง่ายและเข้าใจได้ง่าย ที่นี่เรากำลังอธิบายถึงฟังก์ชัน pulseIn ซึ่งมีหน้าที่หลักในการวัดความถี่ Uno มีฟังก์ชั่นพิเศษ pulseIn , ซึ่งทำให้เราสามารถกำหนดระยะเวลารัฐบวกหรือระยะเวลาที่รัฐเชิงลบของคลื่นสี่เหลี่ยมโดยเฉพาะอย่างยิ่ง
Htime = pulseIn (8, สูง); Ltime = pulseIn (8, ต่ำ);
ฟังก์ชันที่กำหนดจะวัดเวลาที่ระดับสูงหรือต่ำอยู่ที่ PIN8 ของ Uno ดังนั้นในรอบเดียวของคลื่นเราจะมีระยะเวลาสำหรับระดับบวกและลบเป็นไมโครวินาที pulseIn ฟังก์ชั่นวัดเวลาในไมโครวินาที ในสัญญาณที่กำหนดเรามีเวลาสูง = 10mS และเวลาต่ำ = 30ms (ด้วยความถี่ 25 HZ) ดังนั้น 30000 จะถูกเก็บไว้ในจำนวนเต็ม Ltime และ 10,000 ใน Htime เมื่อเรารวมมันเข้าด้วยกันเราจะมี Cycle Duration และโดยการกลับด้านเราจะมีความถี่
รหัสและวิดีโอที่สมบูรณ์สำหรับเครื่องวัดความถี่นี้ โดยใช้ Arduino มีดังต่อไปนี้