BASIC4MCU | 질문게시판 | 아두이노 센서 초기화? 명령문
페이지 정보
작성자 공대생입니다 작성일2020-10-22 14:21 조회7,544회 댓글2건본문
운동기구에 홀센서를 부착 시킨 후 홀센서 측정을 통해 파워 p 를 구하는 코딩입니다. 운동기구다 보니 사용자가 운동 기구를 사용할 때 파워 p를 측정 할 수 있지만 1번 째 사람이 운동기구를 사용하고 2번째 사람이 운동 기구를 사용하면 다시 처음 부터 측정이 되도록 처음 센서가 가동 된 후 3분의 시간이 지나면 다시 처음으로 돌아가 센서를 구동하고 싶은데 어떻게 코딩을 해야 할지 조언 해주시면 감사하겠습니다.
#define DHALL 2
unsigned long time_=0, time_previous=0;
double w=0;
double w_previous=0;
double a=0;
double t=0;
double p=0;
int i = 162;
int Dvalue = 0;
bool flag = 0;
void setup() {
Serial.begin(9600);
pinMode(DHALL,INPUT);
attachInterrupt(digitalPinToInterrupt(2), interrupt, FALLING);
// put your setup code here, to run once:
}
void loop() {
if(flag){flag=0;
w = 6.28/(time_ - time_previous);
a = (w- w_previous)/(time_ - time_previous);
t = i*a;
p = w*t;
w_previous = w;
}
}
void interrupt () {
time_previous = time_;
time_ = millis();
flag=1;
}
댓글 2
조회수 7,544master님의 댓글
master 작성일
#define DHALL 2
//
unsigned long time_=0, time_previous=0;
double w=0,w_previous=0,a=0,t=0,p=0;
int i = 162,Dvalue = 0;
bool flag = 0;
//
void setup() {
Serial.begin(9600);
pinMode(DHALL,INPUT);
attachInterrupt(digitalPinToInterrupt(2), interrupt, FALLING);
}
//
void loop() {
if(flag){flag=0;
w = 6.28/(time_ - time_previous);
a = (w- w_previous)/(time_ - time_previous);
t = i*a;
p = w*t;
w_previous = w;
}
// 추가된 부분
if(millis()-time_previous>180000){ // 3분이 경과하면
time_=millis(); time_previous=time_; // 변수 초기화는 적당히 처리하세요
w=0,w_previous=0,a=0,t=0,p=0;
i=162,Dvalue=0;
}
}
//
void interrupt () {
time_previous = time_;
time_ = millis();
flag=1;
}
공대생입니다님의 댓글
공대생입니다 작성일답변 정말정말 감사드립니다.