1. 프로젝트 사용한 보드 종류
아두이노 UNO
2. 사용한 개발 프로그램명
아두이노 IDE
3. 사용한 센서 모델명
버튼 2개
4. 연결한 회로 설명 (또는 이미지)
5. 소스코드 (주석 필수)
// 변수 정의
#define BUTTON1 2 // BUTTON1은 2번 PIN
#define BUTTON2 3 // BUTTON2는 3번 PIN
int LED[4] = {6,7,8,9}; // LED1~4는 6번 핀부터 9번 핀까지 순서대로
int val1 = 0; // 디지털 값 저장 1
int val2 = 0; // 디지털 값 저장 2
int start = 0; // 시작
int times = 0; // 지연 시간 측정
// 설정
void setup() {
Serial.begin(9600); // PC로 확인을 위한 시리얼 통신
pinMode(BUTTON1, INPUT); // 버튼1은 INPUT으로
pinMode(BUTTON2, INPUT); // 버튼2는 INPUT으로
for(char i=0;i<4;i++) pinMode(LED[i], OUTPUT); // LED는 핀 6번부터 9번까지 순서대로 OUTPUT
}
void loop() {
// 디지털 값 수신
val1 = digitalRead(BUTTON1);
val2 = digitalRead(BUTTON2);
if(val1 == HIGH) start = 1;
else if(val2 == HIGH) start = 0;
if(start == 1) {
for(int i=0;i<13000;i++) {
digitalWrite(LED[0], HIGH);
times++;
Serial.print(i);
Serial.print("\t");
Serial.println(times);
val2 = digitalRead(BUTTON2);
if(val2 == HIGH) i=13000, start = 0;
}
for(int i=0;i<13000;i++) {
digitalWrite(LED[0], LOW);
times++;
Serial.print(i);
Serial.print("\t");
Serial.println(times);
val2 = digitalRead(BUTTON2);
if(val2 == HIGH) i=13000, start = 0;
}
}
}
6. 문제점 및 에러 내용
버튼을 누르면 5분점등 → 5분소등 반복
오차가 1분~2분정도 발생하는데 오차를 해결방안을 알고 싶습니다.
더불어서 프로그램에서 틀린 점이 있으면 수정해주시면 감사하겠습니다.
|
이전글 |
아두이노 재 설치후 포트 인식 안됩니다.
|
2018-05-07 |
다음글 |
gps 데이터형인 float를 aes 암호화
|
2018-05-08 |