NEFUS_19/아두이노
아두이노 7차시 (RTC, 아두이노 끼리 시리얼 통신);
유찬수
2021. 6. 20. 21:56
#1 RTC 모듈
아두이노에서 시간을 계산해주는 장치이다.
아두이노에 전원이 꺼져도 수은 전지로 돌아간다
이런 비슷한게 컴퓨터 메인보드에도 있다.
#2 아두이노간 시리얼 통신
아두이노 통신 중에서 가장 간단하다.
직렬통신이다.
#3 RTC 모듈 실습
#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6, 7, 8);
void setup() {
Serial.begin(9600);
myRTC.setDS1302Time(00, 48, 8, 7, 25, 7, 2020); //시작 시간을 정한다
}
void loop() {
myRTC.updateTime();
Serial.print("Current Time : ");
Serial.print(myRTC.year); //년도 출력
Serial.print(" / ");
Serial.print(myRTC.month); //월 출력
Serial.print(" / ");
Serial.print(myRTC.dayofmonth); //일 출력
Serial.print(" / ");
Serial.print(myRTC.hours); //시 출력
Serial.print(" : ");
Serial.print(myRTC.minutes); //분 출력
Serial.print(" : ");
Serial.println(myRTC.seconds); //초 출력
delay(1000);
}
#4 시리얼 통신 실습
//위를 1번 보드 밑을 2번 보드라 하겠습니다.
//1번 보드
#include<SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
mySerial.begin(2400); //보드끼리 통신 시작
}
void loop() {
mySerial.write('1'); //1보내기
delay(1000);
mySerial.write('0'); //0보내기
delay(1000);
}
//2번 보드
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
char state;
int rpin=13;
void setup() {
Serial.begin(9600); //시리얼창 시작
mySerial.begin(2400); //보드끼리 통신 시작
}
void loop() {
if(mySerial.available()>0){
state = mySerial.read();
Serial.println(state);
//시리얼통신 입력값을 시리얼 창에 출력
}
}
#5 시리얼 통신 응용 실습
//위를 1번 보드 밑을 2번 보드라 하겠습니다.
//1번 보드
#include<SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
mySerial.begin(2400); //보드끼리 통신 시작
}
void loop() {
mySerial.write('1'); //1보내기
delay(1000);
mySerial.write('0'); //0보내기
delay(1000);
}
//2번 보드
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
char state;
int rpin=13;
void setup() {
Serial.begin(9600); //시리얼창 시작
mySerial.begin(2400); //보드끼리 통신 시작
}
void loop() {
if(mySerial.available()>0){
state=mySerial.read();
if (state=='0'){ //0을 받으면 ied on
digitalWrite(led, HIGH);
}else{ //아니면 led off
digitalWrite(led, LOW);
}
}
}