정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

목록 초음파센서 스톱워치 초가 초기화가 안되네요,,,
김효민 | 2017-08-08

아두이노와 초음파센서를 이용하여 스톱워치를 만들어보려고 합니다 지난번 다른분ㄷㄹ의 도움으로 멈추는 부분은 해결하엿으나 멈추긴 멈추되 처음인식된 센서에 계속 무언가 인식이되어야만 화면에서 시간이 올라가고 그렇지 않으면 뭔래 초기화면으로 돌아갑니다(그와중에 표시는안되잇느나 초는흘러갑니다) 또한 큰 문제는 멈추고나서 딜레이후 처음상태로 돌아가야하는데 초가 리셋이 되지않고 흘러갓던거 그대로 꼐속 흘러갑니다.. 10초에 멈췃으면 딜레이 2초 한거와 인식다시한거 더해서 14초부터 시작한다던지요 이거 초도 리셋하는법없을까요?

코드는 ㄷ음과 같습니다

#include <LiquidCrystal.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
#define TRIG_PIN1 11
#define ECHO_PIN1 12
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

void setup()
{
    pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
      pinMode(TRIG_PIN1, OUTPUT);
  pinMode(ECHO_PIN1, INPUT);
  lcd.begin(16, 2);
  lcd.clear();
 
  Serial.begin(9600);

  pinMode(8, INPUT);
  digitalWrite(8, HIGH);


}
double i1 = 0;
double i2 = 0;
double a = millis();
double c ;
void loop()
{
  int distance = 0;
   int distance1 = 0;
   digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(5);
  digitalWrite(TRIG_PIN, LOW);
  distance = pulseIn(ECHO_PIN, HIGH)/58.2;
     digitalWrite(TRIG_PIN1, HIGH);
  delayMicroseconds(5);
  digitalWrite(TRIG_PIN1, LOW);
  distance1 = pulseIn(ECHO_PIN1, HIGH)/58.2;
lcd.clear();
lcd.print("Just run.");
delay(100);
 
  if (distance <= 10) {

    lcd.clear();
    c = millis();
   i1 = (c - a) / 1000;
   i2 = 180000 / (c - a);
   lcd.print(i1);
   lcd.setCursor(11,0);
   lcd.print("Sec's");
   lcd.setCursor(0,0);

   Serial.println("\n");
   Serial.println(i1);
   Serial.println("Sec's");
   Serial.println("........");
   Serial.println(i2);
   Serial.println("km/h");
   Serial.println("\n--------");
   delay(100);
 
  
   if(distance1 < 10)
   {

       lcd.setCursor(0,0);
       lcd.print(i1);
       lcd.setCursor(11,0);
       lcd.print("Sec's");
       lcd.setCursor(0,1);
       lcd.print(i2);
       lcd.setCursor(12,1);
       lcd.print("km/h");
       lcd.setCursor(0,0);
       delay(2000);
     
     }
   }
}

이전글   |    웹서버에서 아두이노로 데이터 전송하기 2017-08-08
다음글   |    아두이노 근접센서 터치횟수 제한 2017-08-08