아두이노:엑셀기록: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
잔글편집 요약 없음
 
40번째 줄: 40번째 줄:
void setup(){
void setup(){
     Serial.println("CLEARDATA");  // 초기화
     Serial.println("CLEARDATA");  // 초기화
     Serial.println("LABEL,열1,열2"); // 라벨 작성
     Serial.println("LABEL,time,열1,열2"); // 라벨 작성(열 이름을 한글로 하면 못알아먹는다.)
}
}
</syntaxhighlight>
</syntaxhighlight>
55번째 줄: 55번째 줄:
|}
|}


=== 유의사항 ===


ps. 데이터를 너무 빨리 읽어오면 에러가 날 수 있다. 때문에 루프가 끝나기 전에 delay(500); 과 같이, 기다리는 시간을 넣어주어야 한다.
* 데이터를 너무 빨리 읽어오면 에러가 날 수 있다. 때문에 루프가 끝나기 전에 delay(500); 과 같이, 기다리는 시간을 넣어주어야 한다.
* 엑셀에서 연결을 하면 기존 데이터는 다 날려버리고 새로 시작한다.

2023년 6월 23일 (금) 21:50 기준 최신판

아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노

  1. 아두이노:개요
  2. 아두이노:하드웨어
    1. 아두이노:우노보드
  3. 아두이노:코드
    1. 아두이노:기초 문법
    2. 아두이노:라이브러리
    3. 아두이노:컴퓨터에서 보드로
    4. 아두이노:안드로이드에서 보드로
  4. 아두이노:핀 사용
    1. 아두이노:전원공급
  5. 아두이노:시리얼 통신
    1. 아두이노:엑셀기록
    2. 아두이노:파이썬과 통신
  6. 아두이노:편의함수
  7. 센서 사용
    1. 아두이노:모션센서
    2. 아두이노:온습도센서
    3. 아두이노:조도센서
    4. 아두이노:pH미터 만들기(Gravity 아날로그 pH센서)
  8. 아두이노:LCD 사용
  9. 아두이노:스위치 사용
  10. 아두이노:릴레이
  11. 아두이노:WIFI
  12. 아두이노:해결되지 않은 다양한 의문들
  13. 수업용 간단 실습
    1. 아두이노:LED
    2. 아두이노:초음파센서
  14. 분류:아두이노 프로젝트

개요[편집 | 원본 편집]

아두이노를 통해 데이터를 쉽게 확인할 수 있으나, 데이터 저장에 대한 기능은 없다.

시리얼 통신과 함께 파이썬으로 엑셀파일 제어가 가능하지만, 엑셀이 켜진 상태에서 제어할 수는 없다.(아는 사람 있으면 적어주세요~) 파일이 열린 상태에서 실시간 제어하기...

이를 위해 개발된 도구로 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); 과 같이, 기다리는 시간을 넣어주어야 한다.
  • 엑셀에서 연결을 하면 기존 데이터는 다 날려버리고 새로 시작한다.