[무선및모바일통신] 3주차 실습

setup() : 전원이 들어왔을 때 먼저 실행되는 함수


Serial.println(65); //65
Serial.write(65); //A
  • Serial.println() : 문자열로 변환하여 출력
    65가 문자열 "65"로 변환되고 숫자 '6'과 '5'에 해당하는 아스키코드 값인 54와 32의 2바이트가 전송
  • Serial.write() : 이진 데이터를 직접 출력 (개행문자 없음)
    65에 해당하는 아스키 문자인 'A' 1바이트를 출력하는 것과 동일

int n = 65;
Serial.println(n, BIN); //1000001
Serial.println(n, HEX); //41
  • Serial.println(n) : 생략되면 십진수
  • Serial.println(n, BIN) : 이진수
  • Serial.println(n, DEC); 십진수
  • Serial.println(n, HEX) : 16진수

float f = 3.141592;
Serial.println(f); //3.14, 소수점 둘째자리까지
Serial.println(f, 6);//3.141592, 소수점 여섯번째자리까지

입력값을 byte형 변수에 저장할 때

void loop()
{
  if(Serial.available()>0) { //값을 입력할 경우
    byte data = Serial.read(); //read는 바이트단위로 읽어온다.
    
    Serial.println(data);//A입력하면 65출력
    Serial.write(data);//A입력하면 A출력
  }
}

입력값을 char형 변수에 저장할 때

void loop()
{
  if(Serial.available()>0) { //값을 입력할 경우
    char data = Serial.read();
	Serial.println(data);
  }
}

read()는 바이트단위로 읽어오지만 char형 변수에 저장하기때문에 A를 입력하면 65라는 값이 문자형으로 바뀌어서 저장되게 된다.(A로)
-> A입력하면 A가 나온다.
-> TEST입력하면 T\nE\nS\nT


소프트웨어 시리얼

아두이노 우노에 사용된 ATmega328은 오직 하나의 UART 시리얼 포트만 존재한다는 문제점이 있음.
UART 시리얼은 1:1 통신만 지원하기 때문에 UART 시리얼 통신을 사용하는 여러 개의 장치를 아두이노 우노에 연결할 수가 없다.
-> 이를 해결하기 위해 아두이노의 기본 라이브러리 중 하나인 SoftwareSerial 라이브러리를 사용
아두이노와 아두이노끼리 통신할 때, 아두이노와 블루투스장비와 통신할 때... 등

#include <SoftwareSerial.h> 헤더 포함시켜줘야함.
SoftwareSerial SW(1,0);//객체생성과정, RX와 TX선 지정


아두이노 String 클래스

문자열 처리를 위한 클래스

void setup()
{
  Serial.begin(9600);//시리얼클래스 초기화
  String string1 = "hello";
  string1 += 13; //String 객체와 다른 타입의 데이터 결합으로 새로운 String객체 생성
  Serial.println(string1);
}
void setup()
{
  Serial.begin(9600);//시리얼클래스 초기화
  String string1 = "hello";
  string1 += 'a';
  string1.toUpperCase();
  string1.toLowerCase();
  Serial.println(string1); //helloa
  
  Serial.println(string1.indexOf('h')); //0
  Serial.println(string1.lastIndexOf('l')); //3
  string1.setCharAt(5, '!');
  Serial.println(string1); //hello!
  
  string1.replace("hello", "hi");
  Serial.println(string1); //hi!
  
  Serial.println(string1.length()); //3
}
  • string1.toUpperCase() : 문자열 전체를 대문자로 바꿈
  • string1.toLowerCase() : 문자열 전체를 소문자로 바꿈
  • string1.indexOf('h') : 특정 문자가 처음 등장하는 위치를 찾음
  • string1.lastIndexOf('l') : 특정 문자가 마지막으로 등장하는 위치를 찾음
  • setCharAt(5, '!') : 특정 위치의 문자를 바꿈(5번위치의 문자를 !로 바꿈)
  • string1.replace("hello", "hi") : 특정 문자를 찾아서 모두! 교체
  • string1.length() : 문자열의 현재 길이를 알려줌

좋은 웹페이지 즐겨찾기