สารบัญ:

Arduino-Oscilloscope: ทำไมจึงใช้งานได้: 4 ขั้นตอน
Arduino-Oscilloscope: ทำไมจึงใช้งานได้: 4 ขั้นตอน

วีดีโอ: Arduino-Oscilloscope: ทำไมจึงใช้งานได้: 4 ขั้นตอน

วีดีโอ: Arduino-Oscilloscope: ทำไมจึงใช้งานได้: 4 ขั้นตอน
วีดีโอ: การใช้งาน Oscilloscope 2024, พฤศจิกายน
Anonim
Image
Image

เมื่อสองสามปีก่อนขณะที่ฉันกำลังเรียนเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์และศึกษาหลักการพื้นฐาน ฉันพบว่าขอบเขตเป็นเครื่องมือที่ช่วยคุณในเกือบทุกอย่าง ตอนนี้ฉันเข้าใจแล้ว ฉันเริ่มเรียนรู้หลักการพื้นฐานของการทำงานของสโคป หลังจากนั้นสองสามเดือน ฉันคิดกับตัวเองว่า ออสซิลโลสโคปสามารถนำไปใช้กับไมโครคอนโทรลเลอร์ได้ ถ้าฉันใส่ตัวเองในจุดเรียนรู้ของ ทัศนคติ. ทำไมถึงเป็นไมโครคอนโทรลเลอร์ เพราะมีครบทุกอย่างที่จำเป็นในการสร้างอย่างใดอย่างหนึ่ง เช่น ADC เพื่อรับสัญญาณ (แต่ไม่มีส่วนหน้าควบคุม) จึงมีพอร์ต GPIO ที่ใช้งานได้หลากหลาย มีซีพียูแม้ว่าจะถ่อมตัว! (ฉันกำลังคิดถึง Arduino)

ฉันเริ่มต้นด้วยการค้นคว้าเกี่ยวกับออสซิลโลสโคป Arduino ที่ดีและดีมาก แต่ฉันจะชอบโค้ดที่ง่ายกว่าซึ่งง่ายต่อการแก้ไขและทำความเข้าใจ ขณะที่ฉันกำลังค้นหาอยู่ ฉันบังเอิญพบฐานของรหัสปัจจุบันบนฟอรัม Arduino จาก 'vaupell' ฉันเริ่มแก้ไขและแสดงความคิดเห็นเกี่ยวกับมันและทำความสะอาดสิ่งต่าง ๆ เพื่อให้อ่านง่ายขึ้น รหัสดั้งเดิมมาจาก Noriaki Mitsunaga

มาดูวิธีตั้งค่าฮาร์ดแวร์และซอฟต์แวร์และวิธีใช้งานกัน

ฉันยังไม่ได้เริ่มเขียนคำอธิบายสำหรับโค้ดบน GitHub wiki หากคุณมีเวลาว่างลองดูรอบ ๆ

! - โปรเจ็กต์นี้ไม่มีรายละเอียดเกี่ยวกับวิธีการสร้างออสซิลโลสโคป แต่จะแสดงให้คุณเห็นว่าคุณสามารถใช้ไมโครคอนโทรลเลอร์อย่างง่ายเพื่อเลียนแบบพฤติกรรมของออสซิลโลสโคปในโลกแห่งความเป็นจริงได้อย่างไร เพื่อทำความเข้าใจว่าออสซิลโลสโคปทำงานอย่างไร

ขั้นตอนที่ 1: รู้จักฮาร์ดแวร์ของคุณ

รู้จักฮาร์ดแวร์ของคุณ
รู้จักฮาร์ดแวร์ของคุณ

เป้าหมายของโครงการนี้คือการให้ข้อมูลเชิงลึกเกี่ยวกับการทำงานของขอบเขต ด้วยเหตุผลดังกล่าว ฉันจึงเลือกแพลตฟอร์มฮาร์ดแวร์ Arduino ที่ง่ายที่สุดและเป็นที่นิยม รหัสสามารถรันได้บน Arduino uno หรือ Arduino mega โดยที่ควรใช้รหัสหลังเนื่องจากมีพินที่ว่างและเข้าถึงได้ง่ายกว่าเมื่อติดตั้งจอแสดงผลไว้

ดังนั้นในโครงการนี้ ฉันจะใช้ Arduino mega (2560)

องค์ประกอบต่อไปคือการแสดงผล การตั้งค่านี้ใช้แผงสัมผัส Arduino TFT 2.5 นิ้ว (รหัสไดรเวอร์คือ0x9341) ทำให้สามารถแสดงช่องต่างๆ บนหน้าจอได้หลายช่องซึ่งแยกจากกัน

นั่นคือทั้งหมดที่มีให้ อย่างไรก็ตาม !, ขอบเขตนี้มีความสามารถจำกัดมาก ดังนั้นอย่าผลักดันจนสุดขอบ สิ่งที่ต้องใส่ใจเป็นพิเศษคือ

Arduino ADC ไม่สามารถจัดการกับแรงดันไฟฟ้าที่สูงกว่า 5 โวลต์ได้เป็นอย่างดีและไม่สามารถจัดการกับแรงดันไฟฟ้าที่ต่ำกว่า 0 โวลต์ได้เป็นอย่างดี เพราะอะไร เพราะมันถูกออกแบบมาอย่างนั้น

การรับข้อมูลจากหลายช่องสัญญาณพร้อมกันจะลดอัตราการสุ่มตัวอย่างที่มีประสิทธิภาพของช่องสัญญาณเดียว เนื่องจากตัวอย่างจะถูกเลือกจากหลายช่องสัญญาณ

อัตราการสุ่มตัวอย่างต่ำมาก (สำหรับการได้มาซึ่งช่องสัญญาณเดียว อาจสูงถึง 10kSps แต่ด้วยสองช่องสัญญาณ จะลดลงเหลือ 5kSps/ช่องสัญญาณ) สิ่งนี้สามารถบรรเทาได้โดยการตั้งค่าความถี่อ้างอิง ADC (การตั้งค่าพรีสเกลาร์) เป็นค่าที่ต่ำกว่า อย่างไรก็ตามสิ่งนี้มีปัญหาในการแก้ไขที่ไม่ดี

อย่าลืมคอมพิวเตอร์เพื่ออัปโหลดรหัสไปยัง Arduino

ขั้นตอนที่ 2: ตั้งค่า

ติดตั้ง
ติดตั้ง
ติดตั้ง
ติดตั้ง

การตั้งค่าทำได้ง่ายมาก

ติดแผ่นป้องกันจอแสดงผลเข้ากับ Arduino Mega เพื่อให้หมุดจ่ายไฟบนกระดานทั้งสองจัดตำแหน่ง

เชื่อมต่อบอร์ดกับคอมพิวเตอร์โดยใช้สาย USB

เปิด arduino IDE และเพิ่มไลบรารีการแสดงผล TFT SPFD5408 (0x9341) หากยังไม่มีอยู่

ตอนนี้อัปโหลดไฟล์โค้ดจาก github ไปยัง Arduino

GitHub - Arduino-ออสซิลโลสโคป

ที่นั่นคุณมีมัน!. คุณสามารถปรับแต่งโค้ดได้โดยการตั้งค่าช่อง 8 (ch0) และ 15 (ch1) เปิดหรือปิดในส่วนการตั้งค่าช่องรหัส คุณสามารถเปลี่ยนตัวแปรอัตราเป็นค่าจากอาร์เรย์อัตราเพื่อตั้งเวลา/ส่วนของขอบเขตได้ คุณสามารถตั้งค่าประเภททริกเกอร์เป็นอัตโนมัติหรือเดี่ยวได้ในส่วนทริกเกอร์ของโค้ด

ขั้นตอนต่อไปนี้แสดงตัววัดความเร่ง 3 แกน ADXL335 ที่ขับเคลื่อนและอ่านโดย Arduino-Oscilloscope ดังที่เห็นในวิดีโอแรก

ขั้นตอนที่ 3: ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง

ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง
ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง
ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง
ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง
ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง
ตัวอย่าง - ADXL335 การอ่านมาตรความเร่ง

จ่ายไฟให้กับโมดูลมาตรความเร่งจาก 5V DC และ GND ของบอร์ด Arduino ที่ด้านขวาสุดที่ด้านบนและด้านล่าง ตอนนี้เชื่อมต่อพิน x-out ของโมดูล adxl335 กับพิน A8 ของบอร์ด Arduino ดังที่เห็นในภาพ หากแกน x ของมาตรความเร่งถูกชี้ลงด้านล่าง เส้นข้อมูลบนหน้าจอขอบเขตจะถูกชดเชยจากศูนย์ เนื่องจากโมดูล adxl จะอ่านค่าความเร่งเนื่องจากแรงโน้มถ่วง ลองเขย่าในทิศทาง x ตามที่ทำเครื่องหมายไว้บนบอร์ด adxl หนามแหลมจะปรากฏขึ้นบนหน้าจอ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตและการทำงานของขอบเขต โปรดดูที่ GitHub Wiki

ขั้นตอนที่ 4: มีส่วนร่วม?

หากคุณต้องการมีส่วนร่วมในเอกสารวิกิ คุณก็ยินดีเป็นอย่างยิ่ง ออสซิลโลสโคปเป็นอุปกรณ์ที่ยอดเยี่ยม และฉันคิดว่ามันเป็นเครื่องมือ STEM ที่ดี!

ฉันกำลังทำงานกับส่วนหน้าเล็ก ๆ ที่มี PGA จำลองและการควบคุมออฟเซ็ตและจะเพิ่มการควบคุมสำหรับเวลา / div และอาจอ่านสัญญาณ AC แรงดันต่ำ

แนะนำ: