정보나눔

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

초음파센서2개써서 스톱워치만들려는데 하나가 안되네요...
김효민 | 2017-08-04
 

초음파센서를 이용해서 사람이 인식되면 자동으로 시작하고 멈추는 스톰워치를 만드는데 시작은 잘되는데 멈추는게 안되는데 뭐가 문제인가요?? 따로따로 작동시키면 둘다 잘작동됩니다....ㅠㅠ 밑에 시작하고나서 if 부분이잘못된것가타요,,,

코드는 아래랑 같아요

 
 
 
#include <LiqudCrystal.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(13, INPUT);
  digitalWrite(13, HIGH);

}
double i1 = 0;
double i2 = 0;
double a = millis();
double c ;
void loop()
{
    int distance = 0;
    int distance1 = 0;
   digitalWrite(TRIG_PIN1, HIGH);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN1, LOW);
  distance1 = pulseIn(ECHO_PIN1, HIGH)/58.2;
   digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, LOW);
  distance = pulseIn(ECHO_PIN, HIGH)/58.2;
lcd.clear();
lcd.print("Just run.");
delay(10);
 
  if (distance1 <= 20 & distance > 20 ) {
    lcd.clear();
 a = millis();
   while( distance > 20)
   {
  
     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(1);
   }
  
   if(distance <= 20 & distance1 > 20)
   {
       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-03
다음글   |    수도꼭지를 서보모터로 제어하고자 합니다.... 2017-08-04