หน้าแรก ดูโปรเจกต์ทั้งหมด
Expert

โปรเจกต์ Arduino Oscilloscope

โปรเจกต์นี้มีวัตถุประสงค์เพื่อให้ความเข้าใจเกี่ยวกับการทำงานของ digital oscilloscope โดยโปรเจกต์นี้ถูกออกแบบมาเพื่อเป็นเครื่องมือสำหรับการเรียนรู้

โปรเจกต์ Arduino Oscilloscope

รายการอุปกรณ์และเครื่องมือ

1x TFT Touchscreen, 320x240
-
1x Arduino Mega 2560
-
1x Analog Accelerometer: ADXL335
-
}

รายละเอียดและวิธีทำ

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 และอื่นๆ ในลักษณะเดียวกัน

Inputs และสิ่งที่ควรพิจารณา

สัญญาณ 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

  • เสียบ Arduino (Uno หรือ Mega) เข้ากับคอมพิวเตอร์โดยใช้สาย USB-2.0
  • เปิดไฟล์ arduino-oscilloscope-high-freq_v1_5_HW.ino ใน Arduino IDE
  • เลือก Board ของคุณจากเมนู "Tools"
  • คลิก Upload
  • คุณพร้อมใช้งานแล้ว

/!\\ ตรวจสอบให้แน่ใจว่า 'CH1' และหรือ 'CH2' ถูกตั้งค่าเป็น 'ON'

Hello World

ต่อไปนี้คือตัวอย่าง "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

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: arduino-oscilloscope-6f5654
1499 บาท
PromptPay QR Code