정보나눔

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

초음파센서를 2개를 사용하는데 안되넨요(자동스톱워치)
김효민 | 2017-07-31

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

코드는 아래랑 같아요

 

 

 

 

 

 

 

 

 

 

 

 

 

#include <LiquidCrystal.h>
#define TRIG_PIN 11
#define ECHO_PIN 12
#define TRIG_PIN2 22
#define ECHO_PIN2 23

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup()
{
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(TRIG_PIN2, OUTPUT);
  pinMode(ECHO_PIN2, INPUT);
  lcd.begin(16, 2);
  lcd.clear();
 
  Serial.begin(9600);
  pinMode(9, INPUT);
  digitalWrite(9, HIGH);

}
double i1 = 0;
double i2 = 0;
double a = millis();
double c ;
void loop()
{
  int distance = 0;
   digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(5);
  digitalWrite(TRIG_PIN, LOW);
  distance = pulseIn(ECHO_PIN, HIGH)/58.2;
    int distance2 = 0;
digitalWrite(TRIG_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW);
distance2 = pulseIn(ECHO_PIN2, HIGH) / 58;//
 
lcd.clear();
lcd.print("Are you Ready?");
delay(1);
 
  if (distance <= 7) {
    lcd.clear();
 a = millis();
   while(distance2 > 0)
   {
  
     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(distance2 <= 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);
     }
   }

  }
이전글   |    보드 Arduino/Genuino Uno 컴파일 에러. 2017-07-29
다음글   |    I2C 통신 질문 2017-07-31