Arduino를 사용하여 단일 채널 오실로스코프 만들기

문제를 제거하기 위해 도구를 사용해보십시오





이 흥미로운 게시물에서는 Arduino와 PC를 사용하여 간단한 단일 채널 오실로스코프를 만들 것입니다. 여기서 파형은 PC 디스플레이에 표시되고 입력 파형의 주파수와 시간은 16 x 2 디스플레이에 표시됩니다. .

소개

모든 전자 제품 애호가는 '나는 꿈이 있습니다. 언젠가는 오실로스코프를 구입할 것입니다.'라고 말했지만 여전히 많은 사람들이 프로젝트와 실험을 위해 적절한 오실로스코프를 소유하는 것이 꿈입니다.



오실로스코프는 보급형 모델에서도 값 비싼 장비이므로 고급 전자 도구로 간주하고 비용을 감당할 수 없기 때문에 실험과 프로젝트를 중단 할 수 있습니다.

이 프로젝트는 많은 전자 애호가들에게 파동의 기본 매개 변수를 측정하기 위해 오실로스코프에 많은 돈을 쓸 필요가없는 게임 체인저가 될 수 있습니다.



제안 된 아이디어는 기능이 매우 제한되어 있으므로 하이 엔드 오실로스코프 이 프로젝트에 참석합니다. 이 프로젝트에서 세 가지 견고한 기능을 얻을 수 있습니다.

1) 컴퓨터 화면에 파형의 시각적 표현

2) 입력 파의 주파수 측정

3) 마이크로 초 단위의 입력 파형의 시간주기 측정.

신호의 주파수와 시간은 16 x 2 LCD 디스플레이에 표시됩니다. 이 기사의 뒷부분에서 설명 할 컴퓨터 화면에 파형을 시각적으로 나타내는 두 가지 방법이 있습니다.

이제 설정의 기술적 부분을 살펴 보겠습니다.

제안 된 설정은 평소처럼 우리 프로젝트의 두뇌 인 arduino, 16 x 2 LCD 디스플레이, IC 7404, 10K 전위차계 및 컴퓨터 (바람직하게는 윈도우 머신)로 구성됩니다.

arduino는 설정의 두뇌이며 다른 모델에는 Arduino와 컴퓨터 간의 통신에 필수적인 USB- 직렬 변환기가 내장되어 있지 않으므로이 프로젝트를 위해 Arduino UNO 또는 Arduino mega 또는 Arduino nano를 선택해야합니다.

다른 모델의 arduino 보드를 선택하는 경우 프로젝트를 복잡하게 만들 수있는 직렬 변환기에 외부 USB가 필요합니다.

LCD와 Arduino 연결 그림 :

단일 채널 오실로스코프 LCD 디스플레이

위의 회로는 자명합니다. 다른 LCD 기반 프로젝트에서 디스플레이와 arduino 사이에 유사한 연결을 찾을 수 있습니다.

10K 전위차계는 최적의보기를 위해 사용자가 설정해야하는 16 x 2 LCD 디스플레이의 대비를 조정하는 데 사용됩니다.

Arduino를 사용하는 단일 채널 오실로스코프

IC 7404의 기능은 입력에서 노이즈 신호를 제거하고 주파수 샘플링 핀 A0에 공급하는 것입니다. arduino가 아날로그 신호보다 디지털 신호를 더 잘 처리 할 수 ​​있기 때문에 IC 7404는 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 :

• 입력 와이어를 arduino의 9 번 핀에 연결합니다 (테스트 모드).
• Arduino IDE를 엽니 다 (버전 1.6.6 이상이어야 함).
• '도구'탭으로 이동하여 직렬 플로터를 선택합니다.

직렬 플로터가 열리면 바로 아래 그림과 같이 arduino의 9 번 핀에서 생성 된 직사각형 파형을 볼 수 있습니다.

arduino의 9 번 핀에서 생성 된 구형파

푸시 버튼을 눌러 판독 값을 표시하고 LCD 디스플레이에 판독 값을 새로 고치려면 '테스트 모드'에서 약 490Hz를 표시해야합니다.

테스트 모드의 개략도 :

테스트 모드는 오실로스코프의 적절한 기능을 확인하는 것입니다. 핀 # 9는 490Hz 출력을 제공하도록 프로그래밍되어 있습니다.

방법 2 :

이 방법은 비교적 쉽지만 주어진 링크에서 소프트웨어를 다운로드해야합니다 : http://www.x-io.co.uk/downloads/Serial-Oscilloscope-v1.5.zip

이 소프트웨어는 arduino의 직렬 플로터에 비해 더 많은 제어와 기능을 제공합니다. 생성 된 파형을 확대 및 축소 할 수 있으며 트리거 기능, 수직 및 수평 축에 대한 오프셋 제어 등을 설정할 수 있습니다.

• 소프트웨어를 다운로드하고 압축을 풉니 다.

• 이제 직렬 오실로스코프 애플리케이션을 두 번 클릭합니다.

arduino의 직렬 플로터

• 아래 그림과 같은 창이 팝업되고 전송 속도를 9600으로 선택합니다.

전송 속도를 9600으로 선택합니다.

• 이제 '직렬 포트'탭을 선택하고 컴퓨터마다 다를 수있는 올바른 COM 포트를 선택합니다. 올바른 COM 포트를 선택하면 아래와 같이 판독 값을 볼 수 있습니다.

• 이제 '오실로스코프'탭을 선택하고 '채널 1, 2 및 3'(첫 번째 옵션)을 선택합니다.

이제 Arduino를 사용하는 단일 채널 오실로스코프의 파형

• 아래 그림과 같이 Arduino에서 생성 된 테스트 신호를 볼 수 있습니다.

보시다시피 소프트웨어에는 파형을 더 잘 분석 할 수있는 몇 가지 제어 버튼이 있습니다.

노트:

제안 된 설정에는 한 가지 주요 단점이 있습니다.

Arduino는 컴퓨터 화면에 입력 파형을 표시하고 LCD 디스플레이에 주파수 / 시간 읽기를 동시에 표시 할 수 없습니다. 이 문제를 극복하기 위해 LCD 디스플레이에서 주파수 및 시간을 읽고 새로 고칠 수있는 푸시 버튼이 제공됩니다.

버튼을 누르면 LCD 디스플레이에 주파수와 시간이 표시되는 동시에 푸시 버튼을 계속 누르고있는 동안 파형이 컴퓨터 화면에 고정됩니다.

언제든지 컴퓨터 모니터에서 주파수를 중지 할 수 있고 표시된 파형을 분석 할 시간을 제공 할 수 있으므로이를 이점으로 간주 할 수도 있습니다.

저자의 프로토 타입 :

Arduino 오실로스코프 회로의 프로토 타입 이미지

이 간단한 단일 채널 Arduino 오실로스코프 회로에 대한 추가 질문이 있으면 아래 주석 상자를 사용하여 특정 견해를 표현하십시오.




이전 : 16 × 2 디스플레이를 사용하는 Arduino 주파수 측정기 다음 : LiFi 인터넷 송신기 회로 – LED를 통한 USB 신호 전송