ในโพสต์ที่น่าสนใจนี้เราจะสร้างออสซิลโลสโคปแบบช่องสัญญาณเดี่ยวแบบง่ายๆโดยใช้ 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:
วงจรข้างต้นอธิบายได้เอง เราสามารถค้นหาการเชื่อมต่อที่คล้ายกันระหว่างจอแสดงผลและ arduino ในโครงการอื่น ๆ ที่ใช้ LCD
โพเทนชิออมิเตอร์ 10K ใช้เพื่อปรับความคมชัดของจอ LCD 16 x 2 ซึ่งผู้ใช้ต้องตั้งค่าเพื่อให้ได้มุมมองที่ดีที่สุด
ฟังก์ชั่นของ 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 ตามภาพประกอบด้านล่าง
กดปุ่มเพื่อแสดงค่าที่อ่านและสำหรับการรีเฟรชการอ่านหน้าจอ LCD ต้องแสดงประมาณ 490Hz ใน 'โหมดทดสอบ'
แผนผังของโหมดทดสอบ:
โหมดทดสอบคือการตรวจสอบการทำงานที่เหมาะสมของออสซิลโลสโคป พิน # 9 ถูกตั้งโปรแกรมให้ให้เอาต์พุต 490Hz
วิธีที่ 2:
วิธีนี้ค่อนข้างง่าย แต่เราต้องดาวน์โหลดซอฟต์แวร์จากลิงค์ที่ระบุ: http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip
ซอฟต์แวร์นี้จะช่วยให้เราควบคุมและมีคุณสมบัติได้มากขึ้นเล็กน้อยเมื่อเทียบกับ serial plotter ของ arduino เราสามารถซูมเข้าและออกจากรูปคลื่นที่สร้างขึ้นเราสามารถตั้งค่าการทำงานของทริกเกอร์การควบคุมออฟเซ็ตเหนือแกนแนวตั้งและแนวนอนเป็นต้น
•ดาวน์โหลดซอฟต์แวร์และแตกไฟล์
•ดับเบิลคลิกที่แอปพลิเคชัน Serial Oscilloscope
•หน้าต่างจะเด้งขึ้นตามภาพประกอบด้านล่างและเลือกอัตราการส่งข้อมูลเป็น 9600
•ตอนนี้เลือกแท็บ 'พอร์ตอนุกรม' และเลือกพอร์ต COM ที่เหมาะสมซึ่งสามารถเปลี่ยนคอมพิวเตอร์กับคอมพิวเตอร์ได้ หากคุณเลือกพอร์ต COM ที่ถูกต้องคุณสามารถอ่านค่าได้ดังภาพประกอบด้านล่าง
•ตอนนี้เลือกแท็บ 'ออสซิลโลสโคป' และเลือก 'ช่อง 1, 2 และ 3' (ตัวเลือกแรก)
•คุณสามารถดูสัญญาณทดสอบที่สร้างขึ้นจาก Arduino ได้ดังภาพประกอบด้านล่าง
ดังที่คุณเห็นมีปุ่มควบคุมบางปุ่มบนซอฟต์แวร์ที่คุณสามารถวิเคราะห์รูปคลื่นได้ดีขึ้น
บันทึก:
การตั้งค่าที่เสนอมีข้อเสียที่สำคัญประการหนึ่ง:
Arduino ไม่สามารถแสดงรูปคลื่นอินพุตบนหน้าจอคอมพิวเตอร์และการอ่านความถี่ / ช่วงเวลาบนจอ LCD พร้อมกัน เพื่อแก้ไขปัญหานี้มีปุ่มกดสำหรับอ่าน / รีเฟรชความถี่และช่วงเวลาบนจอ LCD
เมื่อคุณกดปุ่มมันจะแสดงความถี่และช่วงเวลาบนจอ LCD ในเวลาเดียวกันรูปคลื่นจะหยุดบนหน้าจอคอมพิวเตอร์ตราบเท่าที่คุณกดปุ่มกดค้างไว้
คุณอาจพิจารณาว่านี่เป็นข้อดีเนื่องจากคุณสามารถหยุดความถี่บนหน้าจอคอมพิวเตอร์ได้ทุกเมื่อและอาจทำให้คุณมีเวลาวิเคราะห์รูปคลื่นที่แสดง
ต้นแบบของผู้แต่ง:
หากคุณมีข้อสงสัยเพิ่มเติมเกี่ยวกับวงจรออสซิลโลสโคป Arduino แบบช่องสัญญาณเดียวแบบเรียบง่ายนี้โปรดใช้ช่องแสดงความคิดเห็นด้านล่างเพื่อแสดงมุมมองเฉพาะของคุณ
คู่ของ: เครื่องวัดความถี่ Arduino โดยใช้จอแสดงผล 16 × 2 ถัดไป: วงจรส่งสัญญาณอินเทอร์เน็ต LiFi - การถ่ายโอนสัญญาณ USB ผ่าน LED