본문 바로가기
공부하는/GPT, 코딩

아두이노를 컴퓨터와 연결해보자~( IDE 설치 / 씨리얼 모니터에 원하는 문장 출력하기)

by 공부하는이땡땡 2020. 3. 7.
반응형

아두이노의 보드는 매우 많은 종류가 있다. 

필자는 그 중 가장 기본이 되는 아두이노 우노 보드를 그냥 아두이노라고 칭하도록 하겠다. 

 

 

[아두이노 IDE 다운받기]

 

IDE란?

정보·통신 (integrated development environment)
통합개발환경(애플리케이션에 도입된 프로그래밍 환경) by 네이버 백과사전

 

아두이노와 소통하는, 명령을 입력하는 프로그램이라고 생각하면 되겠다

 

검색창에 '아두이노 IDE'를 검색하거나 

https://www.arduino.cc/ 싸이트에 들어가면

상단 메뉴  중 SOFTWARE -> DOWNLOAD 로 가서 

사용하는 운영체제 맞는 프로그램을 다운로드 받으면 된다.

 

윈도우 사용자는 첫 번째는 설치, 두 번째는 무설치. 선택해서 다운로드!
기부 관련 내용. JUST DOWNLOAD!
필자는 압축파일을 다운받아 압축을 풀었다. 

 

[참고]

구형 아두이노의 경우 칩셋에 따라서 별도의 드라이버를 설치해줘야 하는 경우가 있다

ATMEGA328의 경우 별도의 드라이버는 필요하지 않는다~

 

칩셋에 쓰여있는 글씨를 확인하고 다르면 드라이버를 설치하고 컴퓨터에 연결하자

FTDI chip 드라이버 다운로드 링크 : https://www.ftdichip.com/

CH340 드라이버 다운로드 링크 : http://www.wch.cn/products/CH340.html

 

프로그램 설치 후 아두이노와 컴퓨터를 랜선으로 연결해주자

 

윈도우에서 자동으로 인식해준다

그 다음 IDE 환경에서 아두이노 보드와 통신 포트를 설정해주자

보드: Aduion Uno / 포트: 방금 전 인식한 COM5번으로 설정

 

 

[씨리얼 통신을 이용하여 씨리얼 모니터에 원하는 문장 출력하기]

 

이왕 연결했으니 씨리얼 통신과 씨리얼 모니터를 가지고 한 번 가지고 놀아보죠~! 

1번 연습 - 씨리얼 모니터에 값을 입력하면 읽은 값을 출력해내기

그런 다음 시리얼 모니터를 열어줍니다.

돋보기 모양이 단축키입니다.
12345를 입력해보았습니다.

아스키코드라고 하던데요... 

1이라는 숫자를 입력하면 아두이노가 이해하는 값은 49입니다. 

12345를 동시에 입력해도 하나당 한개의 코드씩을 출력해냅니다. 

1=49

2=50...

이렇게 출력이 된거죠!

(10은 마지막에 왜 있는지 잘 모르겠.... ㅋㅋ)

[명령어 입력시 참고사항]

//  ← 쓰면 아무렇게나 추가 부연 설명을 할 수 있어 좋았습니다. 

{ }  ← 명령어의 묶음입니다. 시작이 있으면 끝이 있어야 하죠.

        여러 명령어가 섞이면 들여쓰기로 차이를 두시는 것도 좋습니다. 

;  ← 명령어 입력시 엔터는 마음대로 쳐도 좋으나, 명령이 끝나는 부분에 세미콜론을 표시해주셔야 합니다. 

 


void setup() // 셋업 창입니다. 처음 기본적인 약속을 정하는 곳이에요

{  
  // 꺾인 괄호 안에 명령을 쓰면 되지요 
  Serial.begin(9600); // 기본 통신9600 쓰구요, 맨 뒤에 세미콜론은 줄이 끝났음을 의미합니다. 


void loop()   // loop는 반복. 여기에 입력한 명령을 반복해서 수행합니다. 

  if(Serial.available()) // 씨리얼에서 값을 인식한다면 아래 괄호 안의 명령을 수행합니다. 
  { 
    Serial.println(Serial.read());  //씨리얼모니토로 프린트 하는데 씨리얼통신으로 읽은 값을 출력합니다.

  } 



2. '1'을 입력하면 hello 라고 대답하기

1을 입력했을 아스키코드 값이 49 였습니다.

h가 49의 값이 되었을 때, 헬로를 출력합니다. 

 

(응용 첫번째) 변수 값을 h 말고 다른 걸로 해보면 어떨까요?

(응용 두번째) 출력할 때 약속을 다른 걸로 해보면 어떨까요? 

(응용 세번째) 헬로 말고 다른 문구를 출력하려면 어떻게 할까요?

(응용 네번째) 1에는 hello, 3에는 bye를 출력하려면 어떻게 할까요?

 

 

 


void setup() // 셋업 창입니다. 처음 기본적인 약속을 정하는 곳이에요 
 
  // 꺾인 괄호 안에 명령을 쓰면 되지요 
  Serial.begin(9600); // 기본 통신9600 쓰구요, 맨 뒤에 세미콜론은 줄이 끝났음을 의미합니다. 
} 

void loop()   // loop는 반복. 여기에 입력한 명령을 반복해서 수행합니다. 
{ 
  if(Serial.available()) // 씨리얼에서 값을 인식한다면 아래 괄호 안의 명령을 수행합니다. 
  {int p = Serial.read(); //int로 변수 p를 정의합니다. 이 때 p 값은 씨리얼 모니터에 읽은 값이에요 
   if(p == 49) // p의 값이 49(숫자1)와 같으면 아래 명령을 수행합니다 
   { 
    Serial.println("hello"); // 제가 준 명령은 hello 라고 인사하길 바래요 
   }  
   if(p == 51) // p의 값이 51(숫자3)과 같으면 아래 명령을 수행합니다 
   { 
    Serial.println("bye"); // 제가 준 명령은 bye 라고 인사하길 바래요 
   }  
  } 
}


 

3. 다음을 참고하셔서 다양하게 활용해보세요~ ㅎㅎㅎ 

변수를 p로 바꾸어보았고, 1을 입력하면 hello, 3을 입력하면 bye를 출력합니다

반응형

댓글