본문 바로가기
아두이노_프로세싱/아두이노+프로세싱

아두이노+프로세싱 write와 print로 넘어오는 통신값

by 돌돌쌤 2012. 8. 28.

 write와 print로 넘어오는 통신값


아두이노와 프로세싱을 같이 활용하려면

아두이노에서의 센서값을 프로세싱으로 넘긴다든지

프로세싱에서의 처리된 값을 아두이노로 넘겨 모터나 LED를 활용한다든지

두 프로그램간 값을 주고 받기 때문에 시리얼 통신을 해야한다.


통신을 통해 값을 넘길때는 write나 print를 사용하는데

각각 넘기는 값의 차이가 있다.


write는 값 그대로 넘기는 반면

print는 값을 아스키 코드 값으로 넘긴다.


즉 write(3)으로 '3'을 넘기면 그대로 '3'이 넘어오지만

print(3)으로 '3'을 넘기면 아스키코드로 '3'에 해당하는 '51'을 넘긴다.


위 그림에서

프로세싱 스케치를 보면

넘긴 값을 x로 받아 x=3일경우는 원을(주석처리부분)

x=51일 경우에는 사각형을 그리도록 스케치하였다.


아두이노 쪽에서 print로 '3'을 넘기면 사각형이

write로 '3'을 넘기면 원이 그려진다.


만약 print로 넘어온 '3'을 그대로 표현 하려 한다면

char을 이용하여 char(51)을 이용하면 '3'으로 변환 된다.


참고로

write(10)은 값을 그대로 10을 넘기지만

write("10")은 1과 0문자를 넘김 즉 1의 49와, 0의 48 (문자열로 넘김)

print(10)과 같다.


또 write로 통신시 1byte통신으로 최대 255값까지 넘긴다. 

255이상의 값을 넘겨 받으면 전혀 다른 값이 넘어온다