전자공학/MCU

[아두이노] Serial 통신1

17Hyuk 2022. 5. 7. 12:02

파이썬을 통해서 아두이노와 Serial 통신을 해서 String을 출력하는 예제이다.

파이썬으로 아두이노를 직접 제어하는 것이 아니고 아두이노는 아두이노 코드를 파이썬은 파이썬코드를 작성 해야한다.


우선 pyserial 모듈 설치가 필요하다

pip install pyserial

 

파이썬

import serial
import time

py_serial = serial.Serial(
    port='COM4',    #본인에게 맞는 포트 설정해주기
    baudrate=9600,
)

time.sleep(2)       #아두이노 켜지는 시간

while True:
    commend = input('파이썬 : ')
    py_serial.write(commend.encode())    
    if py_serial.readable():
        res = py_serial.readline().decode()
        print(res)

 

아두이노

void setup() {
  Serial.begin(9600);
}

String input;

void loop() {
  if(Serial.available()){
    input = Serial.readString();
    Serial.print("아두이노 : ");
    Serial.println(input);
    delay(10);
  }
}

 

결과

Hello World!

 

 

 

코드 설명을 하면

Serial 통신을 하기 위해서는 .encode() 해서 보내주고 받을 때는 .decode() 를 해서 읽어줘야 한다.

그리고

py_serial.readline()

은 '\n'를 기준으로 읽는 것이기 때문에 없으면 무한루프가 걸린다.

내 경험담이다...