?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

시리얼 질문하나 드리겠습니다

페이지 정보

작성자 도와주세용 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일16-04-08 11:57 조회575회 댓글2건

본문

char ServoON[] = {0x02, 0x30, 0x31, 0x23, 0x53, 0x56, 0x52, 0x4F, 0x4E, 0x3A, 0x36, 0x03};
char JOGON[] = {0x02, 0x30, 0x31, 0x23, 0x4A, 0x4F, 0x47, 0x30, 0x3A, 0x45, 0x03};
char JOGMOVE[]= {0x02, 0x30, 0x31, 0x23, 0x4A, 0x4F, 0x47, 0x2B, 0x3A, 0x39, 0x03};
char ServoOff[] = {0x02, 0x30, 0x31, 0x23, 0x53, 0x56, 0x52, 0x4F, 0x46, 0x3A, 0x45, 0x03};


const int buttonPin = 3;
const int buttonPin2 = 4;
const int buttonPin3 = 5;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600);
  pinMode(buttonPin, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
}

void loop() {
  
if ( digitalRead(buttonPin) == HIGH)
{
 Serial.write(ServoON);
 delay(1000);
}
if (digitalRead(buttonPin2) == HIGH)
{   
  Serial.write(ServoOff);
  delay(1000);
}
if (digitalRead(buttonPin3) == HIGH)
{  
  Serial.write(JOGON);
  delay(1000);
}

}

이런식으로 코드를 짜고 시리얼을 보내고잇는데 ServoON버튼을 눌럿을떄는 시리얼값이 ServoON하나만 표시되고 만족하게 나옵니다 
그런데 ServoOFF나  JOGON을 눌럿을경우 시리얼값이 ServoON과 함께나옵니다 그것도 맨마지막에 표시되서말이죠. 한 버튼당 한개의 시리얼값이 나오는게 아닌가요? Serial.flush도 사용해봣는데 마찬가지로 나오더군요 뭐가 잘못된걸까요?

댓글목록

최고관리자님의 댓글

최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

write() 함수는 파라미터에 따라 3가지로 구분됩니다.
Serial.write(val)
Serial.write(str)
Serial.write(buf, len)

지금 사용하신건 2번째 문자열을 보내는 방법으로 쓰신것 같네요. 문자열을 표시하고 싶으실 땐 배열 마지막에 0x00을 추가하세요. 문자열이 아니라면 3번째 Serial.write(buf, len) 형태로 사용하세요.