โปรเจกต์ Arduino Oscilloscope
โปรเจกต์นี้มีวัตถุประสงค์เพื่อให้ความเข้าใจเกี่ยวกับการทำงานของ digital oscilloscope โดยโปรเจกต์นี้ถูกออกแบบมาเพื่อเป็นเครื่องมือสำหรับการเรียนรู้
โปรเจกต์นี้มีวัตถุประสงค์เพื่อให้ความเข้าใจเกี่ยวกับการทำงานของ digital oscilloscope โดยโปรเจกต์นี้ถูกออกแบบมาเพื่อเป็นเครื่องมือสำหรับการเรียนรู้
Arduino Oscilloscope
Arduino-based Oscilloscope พร้อมฟีเจอร์ขั้นสูงและมี 2 Channels โดยเป็น Oscilloscope แบบ DIY ที่สร้างขึ้นบน Arduino แพลตฟอร์มที่เป็นที่นิยม
Arduino-Oscilloscope (ในที่นี้จะเรียกว่า Osciduino) คือ Arduino-based Oscilloscope (ผ่านการทดสอบแล้วบน Arduino Uno R3 และ Mega 2560) อย่างไรก็ตาม ผมแนะนำให้ใช้ Mega หากคุณสามารถทำได้ เนื่องจากมีโปรเจกต์อื่นที่ใช้ชื่อเดียวกัน ผมจึงเปลี่ยนชื่อที่พาดหัวหลังจากที่เห็นโปรเจกต์ OsciDuino นั้น
นี่คือโปรเจกต์เพื่อการศึกษาเพื่อให้เข้าใจการทำงานภายในของ Digital Oscilloscope (DSO) แบบมีบัฟเฟอร์ โดยเวอร์ชันนี้ได้เพิ่มฟังก์ชันการทำงานขั้นสูงเข้าไป เช่น dual channel, offset, trigger, time/div, volts/div และอื่นๆ ในลักษณะเดียวกัน
สัญญาณ Input จะรับมาจาก Analog input Pins จำนวน 2 Pins บน Arduino อย่างไรก็ตาม Pins เหล่านี้รองรับช่วงแรงดันไฟฟ้าที่ 0 ถึง +5 Volts เท่านั้น ดังนั้น Oscilloscope นี้จะทำงานได้ดีเฉพาะเมื่อสัญญาณที่ตรวจสอบมีความแรงสูงสุดไม่เกิน +5 Volts Peak to Peak และไม่มีช่วงซีกพัลส์ลบ (Negative halfs) หากต้องการดูช่วงซีกพัลส์ลบ จะต้องใช้งาน Oscilloscope ในโหมด +2.5 Volts Peak ซึ่งทำได้โดยการปรับสเกลแรงดันไฟฟ้าจากภายนอกแล้วทำการ Offset ด้วยแรงดัน +2.5 Volts
มีการรวม Display Library เพิ่มเติมสำหรับ SPFD5408 ไว้ใน Master หากจำเป็นต้องใช้ นอกจากนี้ยังมี Schematics สำหรับการต่อวงจรอยู่ในโฟลเดอร์ "arduino files"
ปัจจุบันโค้ดทำงานได้ดีที่สุดกับ Library ที่จัดเตรียมไว้ให้ และใช้กับ Display Driver เฉพาะรุ่น SPDF5408 อย่างไรก็ตาม ไม่ได้หมายความว่าจะใช้งานกับ Driver รุ่นอื่นไม่ได้ เพียงแต่พฤติกรรมการทำงานอาจแตกต่างออกไปเนื่องจากผมยังไม่ได้ทดสอบกับ Display รุ่นอื่นๆ คุณสามารถเพิ่มการรองรับสำหรับ Display Driver ของคุณได้ หากต้องการเพิ่มการรองรับให้กับ Display ของคุณ คุณสามารถช่วยสนับสนุนโค้ดหรือสร้าง Pull-request ได้ ตัวอย่างเช่นการเพิ่มการรองรับสำหรับ Adafruit 2.5 inch Resistive touch screen displayhttps://github.com/wayri/Osciduino/issues/1
นี่เป็นขั้นตอนที่ง่ายมาก เพียงทำตามขั้นตอนต่อไปนี้คุณก็พร้อมใช้งานแล้ว
อันดับแรกและสำคัญที่สุดคือเสียบ Display เข้ากับ Arduino สำหรับขั้นตอนนี้ให้ดูที่ How to assemble the hardware
/!\\ ตรวจสอบให้แน่ใจว่า 'CH1' และหรือ 'CH2' ถูกตั้งค่าเป็น 'ON'
ต่อไปนี้คือตัวอย่าง "Hello World" สำหรับ Osciduino
การสังเกตการชาร์จและคายประจุของ Capacitor
การติดตั้ง (Setup)
จ่ายไฟให้ Osciduino ตามที่ระบุไว้ในขั้นตอน Quick Start ด้านบน จากนั้นบน Breadboard ให้ต่อ Electrolytic Capacitor แบบอนุกรมกับ Resistor เข้ากับ Square wave generator วาง Probe ไว้ที่จุดต่อระหว่าง Resistor และ Capacitor และต่อสาย Ground ร่วมกันระหว่าง Osciduino และวงจร RC
จากนั้นคุณควรจะเริ่มเห็นเส้นกราฟแสดงลักษณะการขึ้นและลง (Rise and fall slopes) ที่เกี่ยวข้องกับการชาร์จและการคายประจุของ Capacitor
ดูเพิ่มเติม
การติดตั้งนี้จำเป็นต้องมีส่วนควบคุมภายนอกแบบ Resistive control interface ซึ่งต้องมีการ Calibration ทุกครั้งที่เริ่มระบบ (Boot) เนื่องจากค่าความต้านทานเปลี่ยนแปลงได้ง่ายตามอุณหภูมิและระยะเวลาการทำงานที่นาน ปัญหานี้สามารถบรรเทาได้หลายวิธี เช่น เปลี่ยนการกำหนดค่าสวิตช์แบบแบ่งแรงดัน (Resistive divider) เป็นแบบระบบสัมผัส (Touch based) หรือระบบปุ่มกด (Push button) โดยใช้ GPIO Pins ที่ยังว่างอยู่บน Arduino Mega
เริ่มตั้งแต่เวอร์ชัน 1.5 เป็นต้นไป จะมีการเพิ่มการรองรับส่วนขยายด้าน Hardware เข้าไปในโปรเจกต์ - release v1.5.0
โค้ดนี้เดิมมีพื้นฐานมาจากโค้ดของคุณ Noriaki Mitsunaga http://n.mtng.org/ele/index.html
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้