Arduino에서 컴퓨터로 데이터를 전송할 때 변수 유형별로 출력해본다. char, int, float로 선언된 변수를 PC로 전송해 각각 1씩, float는 0.1씩 증가시킨다.

 

※ 명령어

  • Serial.write(char 변수) : char변수에 해당하는 ASCII 코드값의 문자를 출력한다. 문자는 아스키코드와 대응되는 숫자가 전송되는데, 'A'를 전송하면 실제로는 '0x41'이란 코드가 전송된다.
  • Serial.print(변수, BIN) : 변수를 2진수(Binary)로 표시한다.
  • Serial.print(변수, DEC) : 변수를 10진수(Deciaml)로 표시한다.
  • Serial.print(변수, HEX) : 변수를 16진수(Hexadecimal)로 표시한다.
/*
 * 예제
 * 변수 유형별 Arduino에서 컴퓨터로 전송하기
 */
 
char charValue = 65;
int intValue = 65;
float floatValue = 65.0;
String stringValue[] = {"Binary : ", "Decimal : ", "Hexadecimal : ", "ASCII : "};

void setup() {
    // 9600bps로 시리얼 통신 설정
  Serial.begin(9600);
  
}

void loop() {
  // 'char Value'를 출력하고 문자열과 숫자를 변수 유형별로 출력한다.
  Serial.println("*** charValue ***");
  Serial.print(stringValue[0]);
  Serial.println(charValue,BIN);  // 2진수 형태로 출력
  
  Serial.print(stringValue[1]);
  Serial.println(charValue,DEC);  // 8진수 형태로 출력
  
  Serial.print(stringValue[2]);
  Serial.println(charValue,HEX);  // 16진수 형태로 출력
  
  Serial.print(stringValue[3]);
  Serial.write(charValue);        // charValue에 해당하는 ASCII 코드값 출력
  
  Serial.println();
  Serial.println();
  
  // 'int Value'를 출력하고 문자열과 숫자를 변수 유형별로 출력한다.
  Serial.println("*** intValue ***");
  Serial.print(stringValue[0]);
  Serial.println(intValue,BIN);
  
  Serial.print(stringValue[1]);
  Serial.println(intValue,DEC);
  
  Serial.print(stringValue[2]);
  Serial.println(intValue,HEX);
  
  Serial.print(stringValue[3]);
  Serial.write(intValue);
  
  Serial.println();
  Serial.println();
  
  // 'float Value'를 출력하고 문자열과 숫자를 변수 유형별로 출력한다.
  Serial.println("*** float Value ***");
  Serial.print("floatValue : ");
  Serial.println(floatValue);
  
  Serial.println();
  Serial.println();
  
  charValue++;  // charValue 1 증가
  intValue++;   // intValue 1 증가
  floatValue += 0.1;  // floatValue 1 증가
  
  delay(1000);  // 1초 동안 지연시킨다.

}

 

+ Recent posts