BASIC4MCU | 질문게시판 | 센서값을 20개씩 받아서 그 중 최대값 출력 반복
페이지 정보
작성자 콩zz 작성일2020-10-08 15:42 조회11,481회 댓글5건본문
센서값을 20개씩 계속 받아서 그 중 최대값을 반복출력하는 코드를 짜봤는데
잘 되지 않네요 ㅠㅠㅠㅠ어디가 문제인지 잘 모르겠네요 제발 도와주세요
double sensorValue;
double y[20];
double PEAK=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}void loop() {
// put your main code here, to run repeatedly:
MAX_MEASURE();
}
void MAX_MEASURE(){
for (int i=0; i<19; i++){
sensorValue = analogRead(A5);
y[i] = sensorValue;
if (PEAK < y[i]){
PEAK = y[i];}
Serial.println(PEAK);
}
댓글 5
조회수 11,481master님의 댓글
master 작성일
void MAX_MEASURE(){
PEAK=0; // <-- 초기화 추가하세요
for (int i=0; i<19; i++){
콩zz님의 댓글
콩zz 작성일
감사합니다 알려주신대로 하니까 되는것같아요!
근데 0.01초마다 1개씩 받은 총 20개의 RAW 데이터중에서 최대값을 반환하면 0.2초마다 하나씩 받게되는데
코딩상 sensorValue값과 PEAK값을 동시에 시리얼모니터로 출력하면
두개의 값이 같은 시간대로 동시에 출력되는데
sensorValue 값은 0.01초에 한번 받고 PEAK값은 0.2초에 한번 받게 그냥 딜레이로 조절하면 될까요??
double sensorValue;
double y[20];
double PEAK=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
MAX_MEASURE();
}
void MAX_MEASURE(){
PEAK=0;
for (int i=0; i<19; i++){
sensorValue = analogRead(A5);
y[i] = sensorValue; delay(10); <-- 이렇게 주는게 맞는건가요?
if (PEAK < y[i]){
PEAK = y[i];}
Serial.print(sensorValue); Serial.print(" "); Serial.println(PEAK);
} }
master님의 댓글
master 작성일
void MAX_MEASURE(){
PEAK=0;
for (int i=0; i<19; i++){
sensorValue = analogRead(A5);
y[i] = sensorValue; delay(10); <-- 이렇게 주는게 맞는건가요?
if (PEAK < y[i]){
PEAK = y[i];}
Serial.println(sensorValue);
}
Serial.print("PEAK"); Serial.println(PEAK);
}
콩zz님의 댓글
콩zz 작성일delay(10)주면 되는게 맞나요?
master님의 댓글
master
동작시켜보면 쉽게 확인이 가능하고요
딜레이 정도는 스스로 체크해야 합니다.