Chapter9. 아두이노 유선통신

JMIN·2025년 5월 25일

사물인터넷

목록 보기
19/23

직렬통신 vs 병렬 통신

항목 직렬통신 (Serial) 병렬통신 (Parallel)
데이터 전송 방식 데이터를 한 비트씩 순차적으로 전송 여러 비트를 동시에 전송
필요한 선의 수 2~3개 (TX, RX, GND등) 데이터 비트 수만큼 + 제어선 필요
속도 상대적으로 느릴 수 있음 보통 빠름 (단거리 기준)
전송 거리 장거리 전송에 유리 전송 거리가 짧음, 노이즈에 민감
회로 복잡도 간단함 복잡함
예시 UART, I2C, SPI 등 LCD 16x2 직접 연결 방식 등
아두이노 예시 Serial.begin(), Wire(I2C), SPI 등 LiquidCrystal(rs, en, d4, d5, d6, d7) 등

아두이노 통신 방식

  • UART (Hardware Serial)
  • Software Serial
  • I2C (Inter-Intergrated Circuit)
  • SPI (Serial Peripheral Interface)
항목UARTI2CSPI
통신 유형점대점 (1:1)다중 슬레이브 (1:N)마스터-슬레이브 (1:N)
거리5m 이하길다가장 길다
하드웨어 복잡성간단 (TX, RX)보통 (SDA, SCL + 풀업 저항)복잡 (MOSI, MISO, SCK, SS)
프로토콜없음 (비동기 통신)있음 (주소 기반, 비동기, 확인 신호 포함)없음 (단순 신호 흐름, 동기식)
장점선이 2개로 간단, 범용성 높음장치 주소로 다중 연결 가능, 핀 절약빠름, 전이중 가능, 간단한 구현 가능
단점1:1 연결만 가능, 속도 제한 있음느림, 풀업 저항 필요, 충돌 가능성선이 많고 회로 복잡, 슬레이브 수 제한

Hardware Serial (UART)

(Universal asynchronous receiver/transmitter) : 범용 비동기화 송수신기

  • 0번 핀 : RX (수신)
  • 1번 핀 : TX (송신)
  • USB 포트와 하드웨어적으로 공유됨

Serial 객체를 이용

  • 아두이노 보드가 컴퓨터나 기타 주변장치와 시리얼 통신을 하기 위해 필요한 클래스
  • 별도의 라이브러리 설치가 필요 없음

UART 통신의 전송 속도

단위는 baud reate(보 레이트)

  • 초당 전송할 수 있는 신호 요소
  • 9600 baud rate1초에 9600개의 의미있는 신호 요소를 보낼 수 있다는 의미
  • 1bit가 정보의 기본 단위라면 bit rate와 baud rate는 같음
  • 8bit가 정보의 기본 단위라면 baud rate는 bit rate의 1/8이 됨
  • baud rate는 상대적 개념

Software Serial

0, 1번 외에 다른 디지털 핀으로 Serial 통신을 원할 때 사용

  • SoftwareSerial 라이브러리 사용
    - #include <SoftwareSerial.h>
  • SoftwareSerial 객체를 생성하여 사용
    - 예 : SoftwareSerial mySerial(7, 8);

Serial

아두이노가 PC, 다른 장치통신할 때 사용하는 객체
UART 기반의 통신에 필요한 다양한 함수들을 제공

객체 함수

함수설명
Serial.begin(9600)통신 속도 설정
Serial.available()수신 데이터가 있는지 확인
Serial.read()데이터 한 바이트 읽기
Serial.print() / println()출력 (줄바꿈 포함/미포함)
Serial.write()이진 데이터 전송

참고: Arduino Serial 함수 공식 문서

시리얼 모니터 창

항목설명
No Line Ending아무 것도 전송하지 않음
새줄(New Line)줄 바꿈 문자(LF or \n)가 자동으로 추가되어 전송
캐리지 리턴캐리지 리턴 문자(CR or \r)가 추가되어 전송(커서를 맨 앞으로 이동 시킴)
Both LN & CR새 줄과 캐리지 리턴을 모두 수행

📌 마무리

오늘은 평소 익숙하게 사용해왔지만 정확히는 몰랐던 Serial 통신에 대해 공부했다.

그동안 Serial.begin(9600)을 거의 외우다시피 써오며, 센서 출력 전 값 확인용으로 유용하게 활용했지만, 실제로 어떤 원리로 아두이노와 연결되어 작동하는지는 잘 알지 못했다.

이번 수업을 통해 아두이노의 통신 방식, 각 방식의 특징과 장단점, 그리고 내부적으로 어떻게 데이터가 전달되는지를 정리하며 학습해보았다.

단순히 사용하는 데에서 벗어나, 원리를 이해하고 나니 앞으로 더 깊이 있게 활용할 수 있을 것 같다.

profile
🐂처럼 살기;

0개의 댓글