라즈베리파이 usb포트 - 아두이노 TX RX 시리얼 연결 사진

usb to serial로 사용할 수 있는 모듈을 통해 아두이노의 TX, RX, 5V, GND에 연결

아두이노에 프로그램을 업로드할 때 컴퓨터와 TX,RX 통신을 하므로, 소스 업로드를 마치고 나서 연결해야 정상적으로 소스가 업로드 되니 주의



usb를 꽂은 뒤 터미널에서 'dmesg|tail' 명령어로 현재 연결된 USB포트의 이름을 알아내기




라즈베리파이(wiringPi 라이브러리 사용)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<string.h>
#include<errno.h>
 
#include<wiringSerial.h>
 
int main(){
    int fd;
    if((fd=serialOpen("/dev/ttyUSB0",115200))<0){
        fprintf(stderr,"Unable to open serial device: %s\n", strerror(errno));
        return 1;
    }
    for(;;){
        putchar(serialGetchar(fd));
        fflush(stdout);
    }
}
 
cs

9~12줄

터미널에서 연결된 디바이스 정보를 serialOpen함수에 문자열로 입력, 2번째 매개변수는 serial 통신의 스피드를 입력.

(아두이노 쪽 통신속도와 일치해야 데이터를 정확히 받을 수 있음)

정상적으로 시리얼 접속이 안될경우 장치 이름이 동일한지 확인해야함

13~16줄

아두이노에서 보낸 데이터를 결과창에 출력

char serialGetchar(int id) : 연결된 시리얼 장치로부터 문자를 반환받는 함수

fflush() : 버퍼를 비우는 함수



아두이노

1
2
3
4
5
6
7
8
9
void setup(){  
  Serial.begin(115200);
 
void loop(){
  Serial.println("Hello World");
  delay(1000);
}
 
cs

프로그램이 실행될때 시리얼 연결을 하고 1초마다 Hello World 문자열을 전송하는 소스




+ Recent posts