BASIC4MCU | 질문게시판 | 답변 : 아두이노 millis() 시작과 일시정지 코딩수정 부탁드립니다.
페이지 정보
작성자 master 작성일2018-12-12 08:44 조회7,248회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6749
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-12 오전 8:50:06// by Ok-Hyun Park//#include <LiquidCrystal.h>LiquidCrystal lcd(1,2,4,5,6,7);//const int irDetectPin=3; // FC-51 Pin 설정const int touchss=13; // Touchss Pin 설정const int reset=10; // 리셋 Pin 설정//bool flag=0;unsigned long t_on=0,t_off=0,sum=0,t,tp;//void setup(){lcd.begin(16,2);lcd.print("Stopwatch: ");pinMode(irDetectPin,INPUT); // FC-51 입력으로 설정pinMode(touchss,INPUT); // touch 입력으로 설정pinMode(reset,OUTPUT); // 리셋 출력으로 설정}//void loop(){int touch=digitalRead(touchss); // 터치센서 입력//if(touch)digitalWrite(reset,0); // 터치센서가 터치 안 될 경우 리셋 출력에 0else digitalWrite(reset,1); // 터치센서가 터치 안 될 경우 리셋 출력에 1//-------------------------------------------------------------------------------------if(digitalRead(irDetectPin)==LOW){ // 적외선감지센서 입력if(flag==0){ flag=1; t_on=millis(); } // t_on 적외선감지 시작 시간}else{if(flag){ flag=0; t_off=millis();sum+=t_off-t_on; // 적외선감지 종료 시간을 sum 변수에 누적}}//----------------------if(flag){ // 적외선감지 중이라면t=millis();tp=sum+(t-t_on); // (t-t_on)는 적외선감지 시작 부터의 경과시간lcd.setCursor(0,1);lcd.print(tp/3600000); lcd.print("h: ");lcd.print(tp/60000); lcd.print("m: ");lcd.print(tp/1000); lcd.print("s");}}//irDetectPin는 적외선 감지센서입니다.이 적외선 감지센서에 감지가 되면 millis()가 동작하여 LCD에 나타나고,감지가 풀리면 millis()가 일시정지하여 그 값을 유지하고 있다가,다시 센서에 감지되면 시작되는 코딩 수정좀 부탁드립니다..(적외선감지센서를 스위치로 하는 스톱워치를 만들고 있습니다.)지금은 감지센서의 감지여부에 따라 시간이 멈추긴 하지만,보이지 않는 곳에서 계속 시간이 돌아갑니다.
댓글 0
조회수 7,248등록된 댓글이 없습니다.