아두이노:엑셀기록
아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노
- 아두이노:개요
- 아두이노:하드웨어
- 아두이노:코드
- 아두이노:핀 사용
- 아두이노:시리얼 통신
- 아두이노:편의함수
- 센서 사용
- 아두이노:LCD 사용
- 아두이노:스위치 사용
- 아두이노:릴레이
- 아두이노:WIFI
- 아두이노:해결되지 않은 다양한 의문들
- 수업용 간단 실습
- 분류:아두이노 프로젝트
개요
아두이노를 통해 데이터를 쉽게 확인할 수 있으나, 데이터 저장에 대한 기능은 없다.
시리얼 통신과 함께 파이썬으로 엑셀파일 제어가 가능하지만, 엑셀이 켜진 상태에서 제어할 수는 없다.(아는 사람 있으면 적어주세요~) 파일이 열린 상태에서 실시간 제어하기...
이를 위해 개발된 도구로 PLX-DAQ가 거의 유일하다시피 하다.
단점
상당히...느리다. 좋은 컴퓨터를 써도...느리다.
사전준비
다운로드
https://forum.arduino.cc/t/plx-daq-version-2-now-with-64-bit-support-and-further-new-features/420628 에서 다운받고 압축 풀고 .exe 파일 실행한다.
설치하고 나면 'PLX-DAQ' 폴더가 생기는데, 이 폴더에서 엑셀파일 PLX-DAQ Spreadsheet을 통해 데이터를 받을 수 있다.
엑셀파일
엑셀파일을 열면 '안전하지 않을 수 있는...' 뜨는데, 아무거나 누른다.
포트번호를 써넣고, 대역폭(대부분 9600)을 지정해준다.
이후 connect 버튼을 누른다.(아두이노에 코딩이 되어있어야 한다.)
코드
(0.3초 간격으로, 굉장히 느리다;)
과정 | 설명 | 코드 |
---|---|---|
setup | setup 끝에 다음의 코드 입력.
|
void setup(){
Serial.println("CLEARDATA"); // 초기화
Serial.println("LABEL,time,열1,열2"); // 라벨 작성(열 이름을 한글로 하면 못알아먹는다.)
}
|
loop | 안에 다음의 코드 입력. | void loop(){
Serial.print("DATA,TIME,"); // 첫 번째 열에 현재 시간을 출력.
Serial.print(a); // 두 번째 열에 변수 a에 담긴 값을 출력.
Serial.println(b); // 마지막 열에 넣을 값을 넣고 엔터처리.
}
|
유의사항
- 데이터를 너무 빨리 읽어오면 에러가 날 수 있다. 때문에 루프가 끝나기 전에 delay(500); 과 같이, 기다리는 시간을 넣어주어야 한다.
- 엑셀에서 연결을 하면 기존 데이터는 다 날려버리고 새로 시작한다.