-
1.Serial.Write()
-사용법: Serial.write(param), Serial.write(byte형 배열, 길이)
-파라미터:byte형 데이터, byte형 배열,
예제 코드
void setup()
{
/* add setup code here */
Serial.begin(9600);
}
void loop()
{
/* add main program code here */
const uint8_t temp[5] = { '1','2','3','4','5' };
Serial.write(1);
delay(500);
Serial.write(49);
delay(500);
Serial.print(1);
delay(500);
Serial.write('a');
delay(500);
//Serial.write(temp, 5);
//delay(500);
//Serial.print(temp, 5);
//Serial.write("12345");
//delay(500);
Serial.write('\n');
delay(500);
}
Serial.write(1)-----> 이상한 값 출력
Serial.print(1)-------> 1출력
Serial.write는 파라미터늘 그대로 전송하지만 Serial.print는 파라미터를 아스키코드로 변경해서 전송
결론적으로 Serial.write는 시리얼모니터에 데이터를 전송하는데 사용하지 않고 블루투스 통신 같은 곳에 직접 데이터를 전송할때 많이
사용
______________________________________________________________________________________________________________
2.Serial.end()
Serial.begin과 대비 되는 함수로 디지털 0,1번 핀이 시리얼통신 용으로 사용되지 못하게 합니다.
3.Serial.parseInt()
-압력 받은 값이 숫자인 경우 Long타입의 숫자로 변환하고 숫자가 아닌경우 0을 반환
예제코드
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()){
long value1 = Serial.parseInt();
long value2 = Serial.parseInt();
Serial.print("valus1:");
Serial.println(value1);
Serial.print("valus2:");
Serial.println(value2);
Serial.print("value1+value2=");
Serial.println(value1+value2);
}
}
4.Serial.parseFloat()
Serial.p[aresInt와 같은 역할을 하는데 차이점은 부동소수점 값을 입력 받음
5.Serial.readBytes(buffer,length)
-buffer: 입력 받은 데이터를 저장할 버퍼
-length:입력받을 문자열 길이
리턴값:읽어온 데이터 길이 bytes
예제
void setup()
{
Serial.begin(9600);
}
void loop()
{
char temp[100];
if (Serial.available()) {
byte leng = Serial.readBytes(temp, 100);
Serial.print("input data:");
Serial.println(leng);
for (int i = 0; i < leng; i++) {
Serial.print(temp[i]);
}
Serial.println();
}
}
6.Serial.readBytesUntil(char,buffer,length)
-char:종료 문자열
-buffer:입력받은 문자열을 저장할 공간
-length:입력 받을 문자열 크기
예제소스 코드
void setup()
{
Serial.begin(9600);
}
void loop()
{
char temp[100];
if (Serial.available()) {
byte leng = Serial.readBytesUntil(',',temp, 20);
Serial.print("input data:");
Serial.println(leng);
String data;
for (int i = 0; i < leng; i++) {
//Serial.print(temp[i]);
data += temp[i];
}
Serial.println(data);
}
}
7.Serial.setTimeout()
-Serial.setTimeout(time);
-time:설정된 밀리미초 타임아웃 시간
기본적으로 1000ms으로 설정되어 있음. 데이터 값 수신을 대기하는 시간
8.Serial.find()
-Serial.find(target)
-target:검색할 string문자열
반환값: 수신데이터 중 타겟 값이 있으면 true, 없으면 false
void setup()
{
Serial.begin(9600);
}
void loop()
{
String temp=" ";
while (Serial.available())
{
if (Serial.find("H")) {
temp=Serial.readString();
}
else {
temp = "no data";
}
Serial.print("Temp Value=");
Serial.println(temp);
}
9.Serial.readString()
시리얼 버퍼로 부터 문자열을 읽어서 리턴, Serial.Read()는 1문자 반환;
10.Serial.readStringUntil(Terminator);
-터미네이터 문자가 나올때 까지 문자열을 버퍼에서 읽어 드린다.
11.Serial.findUntil(target,terminater)
-target부터 terminater까지 데이터를 읽어 드림
'아두이노' 카테고리의 다른 글
아두이노+ esp8266+DTH11 (0) 2016.09.19 DHT11 온도 습도 센서 (0) 2016.09.18 아두이노와 블루투스를 이용한 온도 습도 데이터 수집 (0) 2016.09.17 프로그램1-시리얼 통신2 (0) 2016.07.04 프로그램1-시리얼통신 (0) 2016.07.03