정보나눔

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

아두이노 우노 적외선 센서로 인원 수 카운팅...
패닉된토끼 | 2021-11-16

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

int sensorPin1 = A0;
int sensorValue1 = 0;
int sensorPin2 = A1;
int sensorValue2 = 0;

const int Human_time = 3;
const int Human_value = 500;
int Human_control_count1 = 0;
int Human_control1 = 0;
int Human_token1 = 0;
int Human_control_count2 = 0;
int Human_control2 = 0;
int Human_token2 = 0;

int human_count = 0;

void setup() {
  pinMode(sensorPin1, INPUT);
  pinMode(sensorPin2, INPUT);
  
  lcd.begin (16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home ();
}

void loop() {
  boolean sensor1_on{
    sensorValue1 = analogRead(sensorPin1);
    if(sensorValue1<=Human_value){
      Human_control1 = 1;
      if((Human_control1 == 1)&&(Human_token1 == 1)){
        Human_control_count1++;
        if(Human_control_count1>Human_time){
          Human_token1 = 0;
          Human_control_count1 = 0;
          Human_control1 = 0;
          return true;
        }
      }
    }
    else{
      Human_token1 = 0;
      Human_control_count1 = 0;
      Human_control1 = 0;
    }
    return false;
  }
//
  boolean sensor2_on{
    sensorValue2 = analogRead(sensorPin2);
    if(sensorValue2<=Human_value){
      Human_control2 = 1;
      if((Human_control2 == 1)&&(Human_token2 == 1)){
        Human_control_count2++;
        if(Human_control_count2>Human_time){
          Human_token2 = 0;
          Human_control_count2 = 0;
          Human_control2 = 0;
          return true;
        }
      }
    }
    else{
      Human_token2 = 0;
      Human_control_count2 = 0;
      Human_control2 = 0;
    }
    return false;
  }

 lcd.setCursor(0,1);
 lcd.print("Human_count");
 lcd.setCursor(0,2);
 lcd.print(Human_control_count1);
 }

 

 

 

적외선 센서 2쌍(발광부&수광부)을 연결해서 sensor1, sensor2를 할당합니다.

그리고 1->2 순서로 감지되면 인원 수 +1 반대로, 2->1 순서로 감지되면 인원 수 -1을 LCD로 나타내고싶습니다.

이렇게 코딩을 했는데 컴파일이 안됩니다..

 

아두이노:1.8.16 (Windows Store 1.8.51.0) (Windows 10), 보드:"Arduino Uno"

C:\Users\gmltm\OneDrive\바탕 화면\count_test\count_test.ino: In function 'void loop()':

count_test:44:42: error: expected '}' before ';' token

C:\Users\gmltm\OneDrive\바탕 화면\count_test\count_test.ino: At global scope:

count_test:66:42: error: expected '}' before ';' token

count_test:67:5: error: expected unqualified-id before 'if'

count_test:79:5: error: expected unqualified-id before 'else'

count_test:84:5: error: expected unqualified-id before 'return'

count_test:85:3: error: expected declaration before '}' token

exit status 1

expected '}' before ';' token

 

이 리포트는 파일 -> 환경설정에 "컴파일중 자세한 출력보이기"를
활성화하여 더 많은 정보를
보이게 할 수 있습니다.

 

이렇게 오류메시지가 나오는데요 어떻게 고쳐야할지 전혀 모르겠습니다.. 완전 초보라..

고수님들 도와주세요!

 

센서 제품 링크와 연결한 사진도 첨부드립니다.

https://mechasolution.com/shop/goods/goods_view.php?&goodsno=582742

이전글   |    오렌지보드 ble _ hc06 _ 무선통신 2021-11-12
다음글   |    아두이노 전압 오류입니다. 원인을 모르겠습니다 ... 2021-11-26