Arduino/Serial 통신
-
아두이노와 아두이노의 시리얼 통신하기Arduino/Serial 통신 2020. 11. 5. 17:51
1. 두 아두이노의 통신으로 LED 켜고 끄기 아두이노는 통신 시에 핀이 정해져 있다. Rx와 Tx핀에 연결해야 한다. 신호를 보낼 시에 Serial.write함수 혹은 Serial.print함수를 이용한다. 동기화를 하자. 동기화는 데이터를 주는 쪽도 1초 간격으로 받는 쪽도 1초 간격으로 받도록 한다. 송신에서 신호를 보내고 받는 쪽에서 1초마다 읽어 LED를 켜고 끈다. 1초마다 신호를 보내자. 하드웨어의 구성 마스터 쪽 5V선을 연결하고 슬레이브의 Vin핀에 연결하고 (검은색선) 마스터의 GND와 슬레이브의 GND를 연결 서로 연결한다. (흰선) 마스터의 GND핀과 빵판의 GND에 연결하고 (붉은선) 마스터의 Tx핀과 슬레이브의 Rx에 연결한다. 흰선 슬레이브의 13번핀과 LED를 연결(노란선) ..
-
Serial Rx Tx & SoftwareSerial Rx TxArduino/Serial 통신 2020. 10. 20. 19:31
Rx & Tx 소스 코드 // 데이터 송/수신 둘 중에 하나만 해야한다. 주석을 하도록 하자. // void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { /* // 1. 데이터 전송하는 아두이노에서는 선을 tx에 꽂아야 한다. Serial.println("111100"); delay(100); */ } void serialEvent() { // 2. 리시브(받는 부분)하는 아두이노에서는 선을 rx에 꽂아야 한다. char c = Serial.read(); Serial.print("rx : "); Serial.println(c); } SoftwareSerial Rx & Tx 소스 코드 #incl..
-
시리얼 통신에 사용되는 함수Arduino/Serial 통신 2020. 10. 20. 19:22
readBytes함수 & readreadBytesUntil 함수 시리얼 통신에 사용되는 찾기함수이다. 소스 코드 // 함수들에 대해 알아보자. // readBytes함수 void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.setTimeout(2000); // 기본은 1000(1초)를 의미 } void loop() { // put your main code here, to run repeatedly: char temp[100]; // 입력이 있으면 if (Serial.available() > 0) { // byte len = Serial.readBytes(temp,10); byte len = Serial.re..
-
시리얼 통신과 문자열 활용 - LEDArduino/Serial 통신 2020. 10. 20. 19:16
1. 시리얼 통신을 통해 문자열을 입력받아 출력 아래의 예제를 실행하면 문제가 있다. 그 이유는 입력받아 출력한 문자들이 계속 변수 str 에 쌓여있어서 기존에 입력한 문자들이 같이 출력된다. 소스 코드 // 시리얼 통신을 통해 문자열을 입력받아 출력하기 void setup() { // put your setup code here, to run once: Serial.begin(9600); } char ch; // 전역 변수 String str; // 전역 변수 void loop() { // put your main code here, to run repeatedly: // 입력한 데이터가 있을 때, 버퍼에서 하나씩 데이터를 읽어들인다. while (Serial.available() > 0) { ch =..
-
시리얼 통신의 활용 - LED와 센서Arduino/Serial 통신 2020. 10. 19. 19:00
10k저항과 조도 센서를 연결하고 시리얼 모니터가 아닌 시리얼 플로터로 결과를 보자. 연결은 다음과 같이 한다. 시리얼 플로터는 툴 탭을 클릭하면 나온다. 조도 센서를 어둡게하면서 밝게하면 그 그래프를 볼 수 있다. 소스 코드 // 10k저항과 조도 센서를 설치하고 // 시리얼 모니터가 아닌 시리얼 플로터로 결과를 보자. // 조도 센서를 어둡게하면서 밝게하면 그 그래프를 볼 수 있다. void setup() { // put your setup code here, to run once: Serial.begin(9600); // 바운드 레이트 정의 } void loop() { // put your main code here, to run repeatedly: Serial.println(analogRead(..
-
시리얼 통신 기초Arduino/Serial 통신 2020. 10. 19. 18:28
나중에 자바와 시리얼 통신을 할 것이므로 이 부분은 중요하다. Serial(직렬)통신은 연속적으로 통신 채널이나 컴퓨터 버스를 거쳐 한 번에 하나의 비트 단위로 데이터를 전송하는 과정 Arduino에서 시리얼 통신하는 방법 setup함수에서 Serial.begin(9600)을 호출한다. Serial.begin함수에서는 초당 전송할 비트수 정의한다. 이 숫자가 클수록 많이 보낸다. 근데 불안정하다. Serial.println함수 혹은 Serial.write함수를 사용하여 '시리얼 모니터'에 출력한다. Serial.read함수를 사용하여 시리얼로 들어오는 1Byte 내용을 입력한다. Serial.read함수는 입력되는 값을 바이트 단위로 읽는다. 소스 코드 void setup() { // put your s..