작성
·
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 문의 조건식을 변경해주셔야 합니다.
위 내용들을 고려하여 코드를 수정하시면 될 것 같아요.