GND : ground로 모든 신호의 기준점이 된다.
RX.TX는 꼬아서 연결한다.
두 기기 간에 통신 속도를 약속하고 송수신 회선을 각각 지정하여 데이터를 주고 받는다.
if(Serial.available()){ char c = Serial.read(); Serail.print(c); }
Serial.available() : 버퍼에 도착한 문자가 있는지 확인한다. (문자가 있으면 참이 된다)
Serail.read() : 시리얼 버퍼에서 글자를 읽어서 돌려준다.
아두이노에서 PC로 보낸다.
begin
Serial.begin(통신 속도);
print
Serial.print(val);
Serial.print(Val,format);
//format으로 DEC, BIN, OCT, HEX를 지정하면 val이 10진수, 2진수, 8진수, 16진수로 출력
printf
Serial.printf("-----문자열, 스트링\n");
char family[] = "Hong";
String name = "Gildong";
Serial.printf("성은 %s, 이름은 %s\n",family,name.c_str());
Serial.printf("-----unsigned long\n");
unsigned long mil = millis(); //millis() : 프로그램을 실행하는데 걸리는 시간
Serial.printf("millis()=%u\n",mil);
PC에서 아두이노로 입력 받는다.
👉 PC에 입력하는 방법?
PC → IDE → (usb 케이블을 통해) → arduino
시리얼 모니터에서 입력 받을 수 있는 방법은 키보드 자판으로 pc에 입력한다.
👉 아두이노에 입력받은 신호를 확인할 수 있는 방법?
LED or 다시 PC로 반환한다.
void loop(){ while(Serial.available()){ char c = Serial.read(); if(c =='c'){ cnt = Serial.parseInt(); Serial.printf("count=%d/n",cnt); } } }
시리얼 모니터에서 c125 입력
버퍼에서 값이 들어온지 아닌지 확인
입력 버퍼에서 한 글자만 읽어서 반환하고 char c에 입력(이때 c는 key값)
'c'와 같으면 cnt = 125이고 cnt를 출력한다.
명령어를 입력하여 내장 LED를 ON/OFF하는 프로그램
프로그램 실행 후 'm 1' or 'm 0'을 입력한 후 LED 변화를 살펴본다.#define LED_PIN LED_BUILTIN #define LED_ON LOW #define LED_OFF HIGH int ledVal; void setup() { Serial.begin(115200); Serial.println(); pinMode(LED_PIN,OUTPUT); } void loop() { while(Serial.available()){ char c = Serial.read(); if(c == 'm'){ int val = Serial.parseInt(); ledVal = val? LOW : HIGH; digitalWrite(LED_PIN,ledVal); } } }
digitalWrite(pin, value) : 디지털 핀(pin)에 HIGH를 줄지, LOW를 줄지 입력.