?>

Hard Copy World

HCW

Q&A

Home > Forum >

Q&A

신호값을 카운트한 후 배열로 지정하는법 문의드립니다!

페이지 정보

작성자 슥호우 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일15-05-20 09:32 조회1,155회 댓글2건

본문

const int switchPin = 2;

float POT_VC = 1; // 입력 신호 현재값
float POT_VP = 0; // 입력 신호 이전값
int count = -1;
long previousMillis = 0;
float a;
float b;
float Voltage ;
float Voltage1 ;
unsigned long currentMillis = 0;

void setup()
  {
    pinMode(switchPin, INPUT);
    digitalWrite(switchPin, HIGH);
    Serial.begin(9600);
 
}

void loop() {
  //Serial.println(digitalRead(switchPin));
  //delay(200);
 
  a = digitalRead(switchPin);
  //Voltage = (a/1024*5);
  //Serial.println(Voltage);
 
  if(POT_VP<1 && a>=1)
   {
    count++;
   }
    POT_VP = a;
   
   
    if(count == 4) 
  {
    previousMillis = currentMillis;
    currentMillis  = millis();
    
   
    int B =(currentMillis - previousMillis);
    Serial.println(B);
   
       
    count =0;
    B=0;
  }
 }

리드 스위치를 이용해서 신호값을 받고 4번의 신호가 들어오면 그 시간을 측정하는 코딩입니다.

그런데 더 정확하게 계산을 해주려고 카운트되는 신호값을 배열로 설정을해 만약에 a, b, c, d, e, f, g, h 이런식으로 신호값을 받는다면 처음 들어오는 신호가 a이고 처음 4번은 a,b,c,d 이렇게 4번의 신호를 받아 그 시간을 나타내주고 그다음 시간값은 e,f,g,h 이렇게 신호값을 측정하는게 아니라 c,d,e,f 이렇게 기존의 2개의 신호값을 포함하고 그다음 새로운 2개의 신호값을 포함해 총 4번의 시간값을 나타내려고하는데 도저히 손을 못대겠네요ㅠㅠ

어떻게 하면 될지 도움 부탁드리겠습니다.ㅠㅠ

댓글목록

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일

배열을 만들어 데이터 들어 올때마다 한칸씩 앞으로 데이터를 옮기세요.
// Add received byte to buffer
for(int i=0; i<BUFFER_SIZE-1; i++) {
    Buffer[i] = Buffer[i+1];
}
Buffer[BUFFER_SIZE-1] = in_byte;