코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-01-08 08:59:15
오실로스코프(Oscilloscope)란 특정 시간 간격(대역)의 전압변화를 볼 수 있는 장치입니다. 오실로스코프를 통해 시간에 따라 변화하는 신호를 주기적으로 반복적인 하나의 전압형태로 파악할 수 있습니다.
파형을 통해 관찰자는 파형의 전압 최소/최대치, 주기적 신호의 빈도, 펄스 간의 시간, 관련 신호 간의 시차 등을 분석할 수 있습니다.(위키백과 참조)
<그림1. 오실로스코프 화면>
오실로스코프는 전자전기쪽에서는 필수로 쓰이는 고가의 장비 중 하나입니다.
아두이노로도 완전한 오실로스코프는 아니지만 비슷하게나마 작게 구현할 수 있습니다! 간단히 OLED만 있으면 하나의 핀에서 나오는 전압 파형을 눈으로 볼 수 있습니다.
부품이 그렇게 많이 필요치 않기 때문에 누구나 쉽게 따라해 볼 수 있는 프로젝트 입니다.
이번 글에서는 간단히 아두이노 미니 오실로스코프를 제작해 보겠습니다.
이 프로젝트에서는 OLED와 버튼을 사용합니다.
kocoafab에 있는 튜토리얼을 참고해 기본 사용법을 익혀두세요!
*제작을 진행하시기 전에 아래 링크를 통해 각 모듈의 라이브러리 다운로드와 함수 사용법을 인지하시는 것을 권장드립니다.
- 버튼 사용하기
NO | 부품명 | 수량 | 상세 설명 |
1 | 오렌지 보드 | 1 | 우노 호환 보드 |
2 | OLED 128x64 0.96" | 1 | adafruit |
3 | 점퍼 케이블 | 15 | |
4 | 브레드 보드 | 1 | |
5 | 스위치 | 2 | 푸시버튼 |
6 | 저항 | 2 | 330옴 |
부품명 |
오렌지 보드 | OLED 128x64 0.96" | 점퍼 케이블 | 브레드보드 | 스위치 | 저항 |
부품 사진 |
※ 여기서 사용한 OLED의 경우에는 이니프로(http://www.inipro.net/goods_detail.php?goodsIdx=616400)에서 구매하여 사용했습니다.
꼭 이 제품이 아니더라도 Adafruit의 SSD1306 라이브러리와 호환되는 128 x 64 OLED라면 모두 사용이 가능합니다.
※ OLED 핀 연결(SPI통신을 기준으로 합니다)
꼭 이 선대로 연결하지 않으셔도 됩니다. 다만 다른 핀에 연결하실 경우 소스내에서 define한 핀번호를 다르게 설정해주셔야 합니다.
CLK(혹은 D0) - 13번 핀
MOSI(혹은 D1) - 11번 핀
CS - 10번 핀
DC - 4번 핀
RST - 12번 핀
VCC - 5V 핀
GND - GND 핀
OLED 사용에 관한 내용은 아래의 링크를 통해 튜토리얼로 확인해보세요!
OLED 사용하기 - http://kocoafab.cc/tutorial/view/448
디지털 2번핀은 TRIGGER_ENABLE 핀으로 2번핀에 HIGH값이 들어올 경우 전압값을 받아옴으로써 실시간으로 변화하는 파형을 볼 수 있게 합니다.
디지털 3번핀은 SCREEN_UPDATE_ENABLE 핀으로 2번핀에 HIGH값이 들어올 경우 OLED의 화면에서 움직이는 전압파형을 볼 수 있습니다.
코드에서는 아날로그 0번핀에서 받아오는 아날로그 값을 비트 연산자를 통해 값을 재구성합니다.
아날로그의 값은 0~1023사이의 값을 표현하는데 0부터 1023사이의 값은 2^10으로 표현할 수 있고 이 값을 오른쪽으로 4번 옮김으로써 값을 축소시킵니다.
오른쪽으로 4번 BIT shift를 옮기게 된다면 2^10(1024)은 2^6(64)이 되고 2^9(512)은 2^5(32)이 되버립니다.
값을 축소시킴으로써 작은 OLED화면에 0~1023까지의 값을 표현할 수 있습니다.
수박쨈