제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신5
안녕하세요!! Jimae입니다.
오늘은 저번에 이어서 시리얼통신 심화 버전을 가보겠습니다!!
저번에 컴퓨터에서 아두이노로 시리얼통신을 통해 데이터를 보내는 방법을 말했었죠.
그방법 입니다.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
char ch = Serial.read();
Serial.println(ch);
}
}
자 분석해볼까요? setup 함수 내부에는 시리얼통신 속도를 설정하는것 이기에 넘어가도 될것같습니다.
그렇다면 밑에 loop 함수를 봐야하는대
if(Serial.available()) 이부분이 바로 컴퓨터에서 아두이노로 데이터 들어왔을때
Ture 즉 인식이되어 if문구에 { } 이렇게 괄호 쳐져있는 프로그램이 실행이 된다고 보시면 됩니다.
다시 컴퓨터에서 아두이노로 들어왔을때
char ch = Serial.read();
Serial.println(ch);
이 프로그램이 실행이 된다고 보시면 됩니다.
Serial.read();
특히 Serial.read(); 함수를 통해서 1 Byte의 데이터를 읽어들이는 함수거든요?
그래서 그걸 ch라는 변수로 받아서 결국 print 하는 프로그램입니다.
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신3
자 여기서 이글의 처음에 나온 프로그램을 사용하여 빨간색부분 창에 우리가 아무 데이터나 써보고 파란색 창에 제대로 그것이 나오는지 확인을 해봅시다.
이 사진들을 보면 입력창에 대문자 "T"를 써서 엔터를 눌렀습니다.
그래서 밑에있는 사진처럼 출력창 마지막에 T가 나왔어요.
현재 프로그램이 한글자씩만 인식이 되게 프로그램이 되어있어서 이건좀 우리가 보기에 귀찮군요.
약간 수정해봅시다.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
char ch = Serial.read();
Serial.print(ch);
}
}
Serial.print(ch); 로 바꿧어요 기존에는 Serial.println(ch); 사용 했는대 이것의 의미는 문자를 뿌리고 다음줄로 Enter 명령어가 들어가는 함수입니다.
Serial.print(ch); 이 함수는 Enter 명령어가 없는 함수에요.
이걸로 다시 실행해 보겠습니다.
이렇게 "test Hello World" 라고 문자열이 들어가는군요.
자 이렇게 컴퓨터에서 아두이노로 시리얼 통신을 통해서!! 데이터를 넣어봤습니다.
다음에는 여기서 더 심화로 들어가 볼까요.??
아직 테크닉 남아있습니다.
오늘은 여기까지 다들 안녕히 주무세요!
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신1
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신2
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신3
제로부터 시작하는 극한의 아두이노 DIY생활 - 시리얼통신4
Posted through the AVLE Dapp (https://avle.io)
Upvoted! Thank you for supporting witness @jswit.
즐거운 날 되세요~~^^
!shop
Hi~ jimae!

@garamee21 has gifted you 1 SHOP!
Currently you have: 21 SHOP
View or Exchange
Are you bored? Play Rock,Paper,Scissors game with me!SHOPPlease go to steem-engine.net.