강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

하이하이하이님의 프로필 이미지
하이하이하이

작성한 질문수

아두이노 코드 오류

작성

·

455

·

수정됨

0

const int FSR_PIN = A0; 

const float VCC = 4.98; // Measured voltage of Ardunio 5V line

const float R_DIV = 3230.0; // Measured resistance of 3.3k resistor

  Serial.begin(9600);

  pinMode(FSR_PIN, INPUT);

}

{

  int fsrADC = analogRead(FSR_PIN);

  // If the FSR has no pressure, the resistance will be

  // near infinite. So the voltage should be near 0.

  if (fsrADC != 0) // If the analog reading is non-zero

  {

    // Use ADC reading to calculate voltage:

    float fsrV = fsrADC * VCC / 1023.0;

    // Use voltage and static resistor value to 

    // calculate FSR resistance:

    float fsrR = R_DIV * (VCC / fsrV - 1.0);

    Serial.println("Resistance: " + String(fsrR) + " ohms");

    // Guesstimate force based on slopes in figure 3 of

    // FSR datasheet:

    float force;

    float fsrG = 1.0 / fsrR; // Calculate conductance

    // Break parabolic curve down into two linear slopes:

    if (fsrR <= 600) 

      force = (fsrG - 0.00075) / 0.00000032639;
      
    else

      force =  fsrG / 0.000000642857;

    Serial.println("Force: " + String(force) + " g");

    Serial.println();



    delay(500);

  }

  else

  {

    // No pressure detected

  }
}

if(FSR_PIN >= 50) 
  void setup () {
  pinMode(11, OUTPUT);
  }

  void loop() {
  for(int i=0; i<=255; i++) {
    analogWrite(11,i);
    delay(10);
  }
  }

아두이노에서 압력센서로 압력이 가면 특정 압력보다 클 때 진동모터에 진동 오는 거로 소스 만들고 있는데 어디서 오류가 났는지 궁금합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

해당 코드를 보면 curly braces {}가 제대로 닫히지 않아서 오류가 발생할 가능성이 있어요. loop 함수가 먼저 끝난 후 if 문이 시작되어야 하는데, curly braces가 제대로 닫히지 않았기 때문에 컴파일 오류가 발생할 가능성이 있어요.

또한, if 문의 조건식이 FSR_PIN >= 50 이라는데 FSR_PIN 변수는 analogRead(FSR_PIN)을 통해 값이 들어오는 변수입니다. 이를 바탕으로 if 문의 조건식을 변경해주셔야 합니다.

위 내용들을 고려하여 코드를 수정하시면 될 것 같아요.

하이하이하이님의 프로필 이미지
하이하이하이

작성한 질문수

질문하기