สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
เครื่องกำเนิดสัญญาณเป็นอุปกรณ์ทดสอบที่มีประโยชน์มาก อันนี้ใช้โมดูล AD9833 และ Arduino Nano นั่นคือทั้งหมดไม่ใช่ PCB คุณสามารถเพิ่มจอแสดงผล OLED ได้ AD9833 สามารถสร้างคลื่นไซน์ สามเหลี่ยม และสี่เหลี่ยมจาก 0.1 Hz ถึง 12.5 MHz - ซอฟต์แวร์ในโครงการนี้จำกัดที่ 1Hz ถึง 100kHz
มีคำแนะนำอื่น ๆ ที่ใช้ Arduino และ AD9833 ที่นี่และที่นี่ วิธีนี้ง่ายกว่าและสามารถใช้เป็นเครื่องกวาดได้ เครื่องกำเนิดไฟฟ้าแบบกวาดช่วยทดสอบการตอบสนองความถี่ของตัวกรอง แอมพลิฟายเออร์ และอื่นๆ ไม่เหมือนกับการออกแบบ Instructables อื่น ๆ สิ่งนี้ไม่รวมแอมพลิฟายเออร์หรือการควบคุมแอมพลิจูด แต่คุณสามารถเพิ่มได้หากต้องการ
ขั้นตอนที่ 1: เครื่องกำเนิดสัญญาณที่ง่ายที่สุด
สำหรับเครื่องกำเนิดสัญญาณที่ง่ายที่สุด คุณเพียงแค่ประสานโมดูล AD9833 เข้ากับด้านหลังของ Arduino Nano ไม่จำเป็นต้องใช้ PCB
โมดูล AD9833 ที่ฉันเลือกนั้นคล้ายกับโมดูลนี้ ฉันไม่ได้บอกว่าเป็นซัพพลายเออร์ที่ดีที่สุดหรือถูกที่สุด แต่คุณควรซื้อที่ดูเหมือนรูปนั้น (หรือรูปด้านบน)
การเชื่อมต่อระหว่างโมดูลคือ:
- พื้นดินที่เชื่อมต่อกัน
- D2 = FSync
- D3 = Clk
- D4 = ข้อมูล
- D6 = Vcc ของ AD9833
AD9833 ใช้พลังงานจาก data pin D6 ของ Arduino - Arduino สามารถจ่ายกระแสไฟได้เพียงพอ ฉันได้เพิ่มตัวเก็บประจุแยกคัปปลิ้ง 100n เพราะฉันคิดว่าฉัน "ควร" แต่ฉันไม่เห็นความแตกต่างใดๆ - มีตัวเก็บประจุแยกคัปปลิ้งบนบอร์ดโมดูล AD9833 แล้ว
หากคุณเป็นแฟนซี คุณอาจกังวลเกี่ยวกับ "อนาล็อกกราวด์" กับ "กราวด์ดิจิทัล" แต่ถ้าคุณเป็นคนแฟนซี คุณจะต้องใช้เงินมากกว่า 4 ปอนด์
เครื่องกำเนิดสัญญาณที่ง่ายที่สุดถูกควบคุมและขับเคลื่อนผ่านสาย USB จากพีซี USB จำลองพอร์ตอนุกรมที่ทำงานที่ 115200bps (8 บิต ไม่มีความเท่าเทียมกัน) คำสั่งคือ:
- '0'..'9': เลื่อนตัวเลขเป็นอาร์เรย์ความถี่ "นาที"
- 'S': ตั้งค่าความถี่ AD9833 และสร้างคลื่นไซน์
- 'T': ตั้งค่าความถี่และสร้างคลื่นสามเหลี่ยม
- 'Q': ตั้งค่าความถี่และสร้างคลื่นสี่เหลี่ยม
- 'R': รีเซ็ต AD9833
- 'M': คัดลอกอาร์เรย์ความถี่ "นาที" ลงในอาร์เรย์ "สูงสุด"
- 'G': กวาดจาก "min" เป็น "max" ใน 1 วินาที
- 'H': กวาดจาก "min" เป็น "max" เกิน 5 วินาที
- 'I': กวาดจาก "min" เป็น "max" เกิน 20 วินาที
โปรแกรม Arduino ประกอบด้วยอาร์เรย์ 6 ตัว "min" และ "max" สองตัว หากคุณส่งตัวเลขจะถูกเปลี่ยนเป็นอาร์เรย์ "min" หากคุณส่ง 'S' อักขระอาร์เรย์ "min" จะถูกแปลงเป็น ความถี่ลองจินต์แล้วส่งไปที่ AD9833 เลยส่งสตริง
002500S
จะตั้งค่าเอาต์พุต AD9833 เป็นคลื่นไซน์ 2500Hz คุณต้องส่งทั้ง 6 หลักเสมอ ความถี่ต่ำสุดคือ 000001 และความถี่สูงสุดคือ 999999
หากคุณส่ง 'M' อาร์เรย์ "min" จะถูกคัดลอกไปยังอาร์เรย์ "max" หากคุณส่ง 'H' AD9833 จะส่งสัญญาณออกความถี่ที่เพิ่มขึ้นเรื่อยๆ เป็นเวลา 5 วินาที เริ่มต้นที่ความถี่ "นาที" และ 5 วินาทีต่อมาที่ความถี่ "สูงสุด" ดังนั้น
020000M000100SH
กวาดจาก 100Hz ถึง 20kHz การเปลี่ยนแปลงความถี่เป็นแบบลอการิทึม ดังนั้นหลังจาก 1 วินาที ความถี่จะเป็น 288Hz หลังจาก 2 วินาที 833Hz จากนั้น 2402, 6931 และ 20000 ความถี่จะเปลี่ยนทุกมิลลิวินาที
การวนซ้ำจะหยุดเมื่อ Arduino ได้รับอักขระอื่น ดังนั้นระวังอย่าส่งคำสั่งตามด้วย carriage-return หรือ line-feed อักขระพิเศษนั้นจะยุติการวนซ้ำ หากคุณกำลังใช้ Serial Monitor จะมีกล่องที่ด้านล่างขวาที่อาจบอกว่า "Both NL & CR" ซึ่ง (ฉันคิดว่า) ส่งอักขระตามคำสั่งของคุณ ตั้งค่าเป็น "ไม่มีการสิ้นสุดบรรทัด"
คุณสามารถดาวน์โหลดโปรแกรม Windows EXE ที่ด้านล่างซึ่งจะส่งคำสั่งที่จำเป็นหรือเขียนเองก็ได้ ไฟล์ Arduino INO ก็อยู่ที่นี่เช่นกัน
ขั้นตอนที่ 2: เพิ่ม OLED
หากคุณเพิ่ม OLED และปุ่มสองปุ่ม เครื่องกำเนิดสัญญาณสามารถทำงานได้โดยลำพังโดยไม่ต้องใช้พีซี
บรรดาผู้ที่ได้อ่านคำสั่งออสซิลโลสโคปของฉันจะรับรู้ถึงความคล้ายคลึงกัน คุณสามารถเพิ่มโมดูล AD9833 ลงในออสซิลโลสโคปของฉันเพื่อสร้าง "ออสซิลโลสโคปและเครื่องกำเนิดสัญญาณในกล่องไม้ขีดไฟ"
จอแสดงผลเป็น OLED ขนาด 1.3 นิ้วที่ทำงานที่ 3.3V ซึ่งควบคุมโดยชิป SH1106 ผ่านบัส I2C
ค้นหา OLED ขนาด 1.3 นิ้วใน eBay ฉันไม่ต้องการแนะนำผู้ขายรายใดรายหนึ่งเนื่องจากลิงก์ล้าสมัยอย่างรวดเร็ว เลือกหนึ่งรายการที่ดูเหมือนรูปภาพนั้น โดยพูดว่า "I2C" หรือ "IIC" และมีหมุดสี่ตัวที่ระบุว่า VDD GND SCL SDA (จอแสดงผลบางจอดูเหมือนจะมีหมุดในลำดับที่แตกต่างกัน โปรดตรวจสอบ ชื่อที่ถูกต้องสำหรับนาฬิกาของ I2C คือ "SCL" แต่บน eBay กระดานอาจมีป้ายกำกับว่า "SCK" เหมือนในรูปภาพ)
คำอธิบายที่สมบูรณ์ของไลบรารี OLED อยู่ใน oscilloscope ของฉันที่สอนได้ในขั้นตอนที่ 8 คุณควรดาวน์โหลดและติดตั้งไลบรารีไดรเวอร์ SimpleSH1106.zip ซึ่งอยู่ในขั้นตอนที่ 8 (ฉันไม่ต้องการอัปโหลดสำเนาอื่นที่นี่และต้องเก็บรักษาไว้สองชุด.)
สามารถดาวน์โหลดไฟล์ INO ได้ด้านล่าง หมายเลขพินที่ใช้สำหรับ OLED ถูกประกาศประมาณบรรทัดที่ 70 หากคุณได้สร้าง "ออสซิลโลสโคปและเครื่องกำเนิดสัญญาณในกล่องไม้ขีดไฟ" และต้องการทดสอบไฟล์ INO นี้ด้วย หมายเลขพินสำรองจะเปิดใช้งานผ่าน #define
ฉันได้แสดงเลย์เอาต์สตริปบอร์ดสำหรับวงจรแล้ว มีแถบแถบสองแถบ - อันหนึ่งสำหรับ Nano และ AD9833 และอีกอันสำหรับจอแสดงผล พวกเขาควรทำแซนวิช แผงจะแสดงจากด้านส่วนประกอบ สายไฟที่ยืดหยุ่นได้ดีเชื่อมเข้ากับบอร์ดทั้งสอง ติดบอร์ดพร้อมกับขาตั้งแบบบัดกรี ในไดอะแกรมของฉัน ทองแดงของสตริปบอร์ดแสดงเป็นสีฟ้า เส้นสีแดงคือเส้นลวดบนแผ่นกระดานหรือสายอ่อนที่เชื่อมแผงเข้าด้วยกัน ฉันไม่ได้แสดงพลังและ "สัญญาณ" นำไปสู่
โมดูล AD9833 ถูกบัดกรีที่ด้านทองแดงของแผ่นแถบ - ด้านตรงข้ามกับนาโน บัดกรีหมุดบนแถบทองแดงจากนั้นใส่ AD9833 เข้ากับพวกมันแล้วบัดกรีให้แน่น
จอแสดงผลจะแสดงความถี่เดียวหรือความถี่ "ต่ำสุด" และ "สูงสุด"
มีปุ่มกดสองปุ่ม: ปุ่ม "แนวนอน" เพื่อเลือกตัวเลขของความถี่ และปุ่ม "แนวตั้ง" เพื่อเปลี่ยนตัวเลขนั้น
ฉันจ่ายไฟให้กับเครื่องกำเนิดสัญญาณจากวงจรที่ฉันกำลังพัฒนา - ฉันมักจะมี 5V ที่เวิร์กสเตชันของฉัน
ขั้นตอนที่ 3: การพัฒนาในอนาคต
สามารถใช้แบตเตอรี่ได้หรือไม่? ใช่ เพียงเพิ่ม 9V PP3 ที่เชื่อมต่อกับพิน RAW ของนาโน โดยทั่วไปจะใช้ 20mA
สามารถใช้พลังงานจากเซลล์ลิเธียมเพียงเซลล์เดียวได้หรือไม่? ฉันไม่เห็นว่าทำไม คุณควรเชื่อมต่อ OLED Vdd และตัวต้านทานแบบดึงขึ้นกับแบตเตอรี่ 3.7V (ฉันสงสัยว่าเอาต์พุต 3.3V ของ Arduino จะทำงานอย่างถูกต้องหรือไม่)
เครื่องกำเนิดการกวาดมีประโยชน์มากกว่าเมื่อทดสอบการตอบสนองความถี่ของตัวกรอง หากคุณสร้างกราฟแอมพลิจูดและความถี่ได้ การวัดแอมพลิจูดของสัญญาณนั้นยาก คุณต้องแลกกับการเสื่อมสลายของตัวตรวจจับซองจดหมายของคุณเทียบกับการกระเพื่อมสำหรับความถี่ต่ำและเวลาตอบสนองสำหรับความถี่สูง เมื่อสร้างเครื่องตรวจจับแอมพลิจูดของคุณแล้ว คุณสามารถป้อนเอาต์พุตไปยัง ADC ของ Arduino ของ "เครื่องกำเนิดสัญญาณที่ง่ายที่สุด" จากนั้นส่งผลพร้อมกับความถี่ปัจจุบันไปยังพีซี
หน้านี้เป็นจุดเริ่มต้นที่มีประโยชน์หรือค้นหา Google สำหรับ "ตัวตรวจจับซองจดหมาย" หรือ "ตัวตรวจจับจุดยอด" ในวงจรที่แนะนำข้างต้น คุณจะต้องตั้งค่าความถี่ของสัญญาณ รอให้เสถียร ตั้งค่าพิน Arduino A0 เป็นเอาต์พุตดิจิตอลต่ำ รอปล่อย C ตั้งค่า A0 เป็นอินพุต รอ จากนั้นวัดด้วย ADC แจ้งให้เราทราบว่าคุณไปอย่างไร
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
เครื่องกำเนิดสัญญาณ RF 100 KHz-600 MHZ บน DDS AD9910 Arduino Shield: 5 ขั้นตอน
เครื่องกำเนิดสัญญาณ RF 100 KHz-600 MHZ บน DDS AD9910 Arduino Shield: วิธีทำสัญญาณรบกวนต่ำ, ความแม่นยำสูง, เครื่องกำเนิด RF ที่เสถียร (พร้อม AM, การมอดูเลต FM) บน Arduino
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
เครื่องกำเนิดสัญญาณ RF: 8 ขั้นตอน (พร้อมรูปภาพ)
เครื่องกำเนิดสัญญาณ RF: เครื่องกำเนิดสัญญาณ RF เป็นเครื่องมือที่ต้องมีเมื่อเล่นกับเครื่องรับวิทยุ ใช้สำหรับปรับวงจรเรโซแนนซ์และปรับเกนของระยะ RF ต่างๆ คุณลักษณะที่มีประโยชน์มากของเครื่องกำเนิดสัญญาณ RF คือความสามารถในการมอดูเลต ถ้ามันค