에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기

묻고답하기

기술문의 게시판입니다.

게시판 상세
제목 아두이노 기초 예제 3_3_Serial if에서
작성자 신범철 (ip:)
  • 작성일 2021-12-18
  • 추천 추천하기
  • 조회수 203

3_3_Serial if에서



====================

int a = 49;

int b = 0;


void setup() {

  Serial.begin(9600);

}


void loop() {

  if(Serial.available()) {

    b = Serial.read();

    Serial.println(b);


    if(a==b){ 

      Serial.println("Hello World!");

    }



    else{

      Serial.println("Hello!");

    }

  }

}

==========================


결과

49

Hello World!

10

Hello!

48

Hello!

10



===============

1혹은 0을 전송하면, 뒤에 'Hello! 10'이 전송됩니다.  제공된 예제에서도 마찬가지고요. 


아스키코드로 10이 \n이던데, 이 값이 왜 자동으로 넘어갈까요? 이 값이 나오지 않도록 하려면 어떻게 하면 되나요?

게시글 신고하기

신고사유

신고해주신 내용은 쇼핑몰 운영자의 검토 후 내부 운영 정책에 의해 처리가 진행됩니다.

평점 0점
첨부파일
비밀번호 수정 및 삭제하려면 비밀번호를 입력하세요.
  • 사령관 2021-12-20 0점
    수정 삭제 댓글
    스팸글 해당예제에서는 Serial.read()라는 함수를 학습합니다.

    Serial.read()는 값을 읽을때 데이터의 맨 처음 바이트값을 인식하게 됩니다.

    예를들어 '10'이라는 숫자를 인식할 경우에는 1, 0 으로 인식해 총 두번의 값이 들어가는 원리입니다.

    말씀하신대로 1 or 10 등의 숫자를 인식하려면 Serial.read() 함수 보단, Serial.parseInt()함수로 바꿔서 사용하면 문의해주신 내용이 해결됩니다.

    예제코드에서 b=Serial.read(); -> b=Serial.parseInt(); 로 바꿔서 업로드 및 테스트해보시길 바랍니다.

스팸신고 스팸해제

댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

댓글달기이름 :비밀번호 : 관리자답변보기

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

«
»