การสร้างออสซิลโลสโคปแบบ Single Channel โดยใช้ Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์ที่น่าสนใจนี้เราจะสร้างออสซิลโลสโคปแบบช่องสัญญาณเดี่ยวแบบง่ายๆโดยใช้ Arduino และคอมพิวเตอร์ส่วนบุคคลซึ่งจะแสดงรูปคลื่นบนจอแสดงผลของพีซีและความถี่และช่วงเวลาของคลื่นอินพุตจะแสดงบนจอแสดงผล 16 x 2 .

บทนำ

ผู้ที่ชื่นชอบเครื่องใช้ไฟฟ้าทุกคนเคยพูดว่า“ ฉันมีความฝันสักวันฉันจะซื้อออสซิลโลสโคป” แต่หลายคนก็ยังคงใฝ่ฝันที่จะมีออสซิลโลสโคปที่เหมาะสมสำหรับโครงการและการทดลองของพวกเขา



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

โครงการนี้อาจเป็นตัวเปลี่ยนเกมสำหรับหลาย ๆ คนผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์ไม่จำเป็นต้องเสียเงินเป็นจำนวนมากสำหรับออสซิลโลสโคปเพื่อวัดค่าพารามิเตอร์พื้นฐานของคลื่น



แนวคิดที่นำเสนอมีฟังก์ชันการทำงานที่ จำกัด มากดังนั้นอย่าคาดหวังว่าจะมีคุณลักษณะในไฟล์ ออสซิลโลสโคประดับสูง ที่จะนำเสนอในโครงการนี้ เราได้รับสามฟังก์ชันที่มั่นคงจากโครงการนี้:

1) การแสดงภาพของรูปคลื่นบนหน้าจอคอมพิวเตอร์

2) การวัดความถี่ของคลื่นอินพุต

3) การวัดช่วงเวลาของคลื่นอินพุตในหน่วยไมโครวินาที

ความถี่และช่วงเวลาของสัญญาณจะแสดงบนจอ LCD 16 x 2 มีสองวิธีในการแสดงรูปคลื่นบนหน้าจอคอมพิวเตอร์ซึ่งจะอธิบายไว้ในส่วนต่อไปของบทความ

ตอนนี้เรามาดูส่วนทางเทคนิคของการตั้งค่ากัน

การตั้งค่าที่นำเสนอประกอบด้วย arduino ซึ่งเป็นสมองของเราตามปกติจอแสดงผล LCD 16 x 2, IC 7404, โพเทนชิออมิเตอร์ 10K และคอมพิวเตอร์ควรเป็นเครื่อง windows

Arduino เป็นสมองของการตั้งค่าและเราต้องเลือก Arduino UNO หรือ Arduino mega หรือ Arduino nano สำหรับโครงการนี้เนื่องจากรุ่นอื่น ๆ ไม่มีตัวแปลง USB เป็นอนุกรมในตัวซึ่งจำเป็นสำหรับการสื่อสารระหว่าง Arduino กับคอมพิวเตอร์

หากเราเลือกบอร์ด arduino รุ่นอื่น ๆ เราจำเป็นต้องใช้ตัวแปลง USB ภายนอกเป็นอนุกรมซึ่งอาจทำให้โครงการยุ่งยาก

ภาพประกอบการเชื่อมต่อ LCD กับ Arduino:

จอแสดงผล LCD Oscilloscope ช่องเดียว

วงจรข้างต้นอธิบายได้เอง เราสามารถค้นหาการเชื่อมต่อที่คล้ายกันระหว่างจอแสดงผลและ arduino ในโครงการอื่น ๆ ที่ใช้ LCD

โพเทนชิออมิเตอร์ 10K ใช้เพื่อปรับความคมชัดของจอ LCD 16 x 2 ซึ่งผู้ใช้ต้องตั้งค่าเพื่อให้ได้มุมมองที่ดีที่สุด

Single Channel Oscilloscope โดยใช้ Arduino

ฟังก์ชั่นของ IC 7404 คือกำจัดสัญญาณรบกวนใด ๆ จากอินพุตและป้อนเข้ากับพินสุ่มตัวอย่างความถี่ A0 IC 7404 จะส่งสัญญาณคลื่นสี่เหลี่ยมเท่านั้นซึ่งเป็นข้อดีอย่างมากสำหรับ arduino เนื่องจาก arduino สามารถประมวลผลสัญญาณดิจิทัลได้มากกว่าสัญญาณอนาล็อก

โปรแกรม:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int Freqinput = A0
const int oscInput = A1
int Switch = A2
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
pinMode(Switch,INPUT)
pinMode(Freqinput,INPUT)
pinMode(oscInput,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,127)
lcd.setCursor(0,0)
lcd.print('Press the button')
}
void loop()
{
if(digitalRead(Switch)==HIGH)
{
lcd.clear()
lcd.setCursor(0,0)
X = pulseIn(Freqinput,HIGH)
Y = pulseIn(Freqinput,LOW)
Time = X+Y
frequency = 1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print('0.00 Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print('0.00 us')
}
else
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('F=')
lcd.print(frequency)
lcd.print('Hz')
lcd.setCursor(0,1)
lcd.print('T=')
lcd.print(Time)
lcd.print(' us')
delay(500)
}
}
else
{
Serial.println(analogRead(oscInput))
}
}
//-----Program Developed by R.Girish-----//

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

วิธีที่ 1:

•เชื่อมต่อสายอินพุตเข้ากับพิน # 9 ของ arduino (โหมดทดสอบ)
•เปิด Arduino IDE (ต้องเป็นเวอร์ชัน 1.6.6 ขึ้นไป)
•ไปที่แท็บ 'เครื่องมือ' และเลือกพล็อตเตอร์แบบอนุกรม

ทันทีที่พล็อตเตอร์อนุกรมเปิดขึ้นคุณจะเห็นคลื่นสี่เหลี่ยมซึ่งสร้างจากพิน # 9 ของ arduino ตามภาพประกอบด้านล่าง

คลื่นสี่เหลี่ยมซึ่งสร้างจากขา # 9 ของ arduino

กดปุ่มเพื่อแสดงค่าที่อ่านและสำหรับการรีเฟรชการอ่านหน้าจอ LCD ต้องแสดงประมาณ 490Hz ใน 'โหมดทดสอบ'

แผนผังของโหมดทดสอบ:

โหมดทดสอบคือการตรวจสอบการทำงานที่เหมาะสมของออสซิลโลสโคป พิน # 9 ถูกตั้งโปรแกรมให้ให้เอาต์พุต 490Hz

วิธีที่ 2:

วิธีนี้ค่อนข้างง่าย แต่เราต้องดาวน์โหลดซอฟต์แวร์จากลิงค์ที่ระบุ: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

ซอฟต์แวร์นี้จะช่วยให้เราควบคุมและมีคุณสมบัติได้มากขึ้นเล็กน้อยเมื่อเทียบกับ serial plotter ของ arduino เราสามารถซูมเข้าและออกจากรูปคลื่นที่สร้างขึ้นเราสามารถตั้งค่าการทำงานของทริกเกอร์การควบคุมออฟเซ็ตเหนือแกนแนวตั้งและแนวนอนเป็นต้น

•ดาวน์โหลดซอฟต์แวร์และแตกไฟล์

•ดับเบิลคลิกที่แอปพลิเคชัน Serial Oscilloscope

พลอตเตอร์อนุกรมของ arduino

•หน้าต่างจะเด้งขึ้นตามภาพประกอบด้านล่างและเลือกอัตราการส่งข้อมูลเป็น 9600

เลือกอัตราการส่งข้อมูลเป็น 9600

•ตอนนี้เลือกแท็บ 'พอร์ตอนุกรม' และเลือกพอร์ต COM ที่เหมาะสมซึ่งสามารถเปลี่ยนคอมพิวเตอร์กับคอมพิวเตอร์ได้ หากคุณเลือกพอร์ต COM ที่ถูกต้องคุณสามารถอ่านค่าได้ดังภาพประกอบด้านล่าง

•ตอนนี้เลือกแท็บ 'ออสซิลโลสโคป' และเลือก 'ช่อง 1, 2 และ 3' (ตัวเลือกแรก)

ตอนนี้เลือกแท็บ รูปคลื่นจากออสซิลโลสโคปแบบช่องสัญญาณเดียวโดยใช้ Arduino

•คุณสามารถดูสัญญาณทดสอบที่สร้างขึ้นจาก Arduino ได้ดังภาพประกอบด้านล่าง

ดังที่คุณเห็นมีปุ่มควบคุมบางปุ่มบนซอฟต์แวร์ที่คุณสามารถวิเคราะห์รูปคลื่นได้ดีขึ้น

บันทึก:

การตั้งค่าที่เสนอมีข้อเสียที่สำคัญประการหนึ่ง:

Arduino ไม่สามารถแสดงรูปคลื่นอินพุตบนหน้าจอคอมพิวเตอร์และการอ่านความถี่ / ช่วงเวลาบนจอ LCD พร้อมกัน เพื่อแก้ไขปัญหานี้มีปุ่มกดสำหรับอ่าน / รีเฟรชความถี่และช่วงเวลาบนจอ LCD

เมื่อคุณกดปุ่มมันจะแสดงความถี่และช่วงเวลาบนจอ LCD ในเวลาเดียวกันรูปคลื่นจะหยุดบนหน้าจอคอมพิวเตอร์ตราบเท่าที่คุณกดปุ่มกดค้างไว้

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

ต้นแบบของผู้แต่ง:

ภาพต้นแบบสำหรับวงจรออสซิลโลสโคป Arduino

หากคุณมีข้อสงสัยเพิ่มเติมเกี่ยวกับวงจรออสซิลโลสโคป Arduino แบบช่องสัญญาณเดียวแบบเรียบง่ายนี้โปรดใช้ช่องแสดงความคิดเห็นด้านล่างเพื่อแสดงมุมมองเฉพาะของคุณ




คู่ของ: เครื่องวัดความถี่ Arduino โดยใช้จอแสดงผล 16 × 2 ถัดไป: วงจรส่งสัญญาณอินเทอร์เน็ต LiFi - การถ่ายโอนสัญญาณ USB ผ่าน LED