Arduino UNO와 GP2Y0A21YK(거리 센서)로 6cm에서 10cm를 구한다. (참고용 테스트 결과)

x 걱정되는 사람처럼

목적
adc 테스트용
표현이 어렵고 범위가 넓기 때문에 분할하여 테스트합니다. 미안해.
식이 맞다는 것을 알았다.


void setup() {
  Serial.begin(9600);
}

int sensorValue; //センサーの読み取り値
float Voltage;     //電圧
float ir_length;   //長さ

void loop() {

  sensorValue = analogRead(A0);
  Voltage = (float)sensorValue * ( 5.0 / 1024.0 );
  if (Voltage >= 0 && Voltage <= 2.2)   {Voltage = 2.2;}
  if (Voltage >= 3.22 && Voltage <= 5.0) {Voltage = 3.22;}

  if        (Voltage >= 2.3 && Voltage <= 2.75)  { //10-8

    ir_length = 1.0/ ( 0.1 + ( ( Voltage - 2.3) * (0.025/0.45) ) );

  } else if (Voltage >= 2.75 && Voltage <= 2.98) { //8-7

    ir_length = 1.0/ ( 0.125 + ( ( Voltage - 2.75) * (0.0179/0.23) ) );

  } else if (Voltage >= 2.98 && Voltage <= 3.12) { //7-6

    ir_length = 1.0/ ( 0.1429 + ( ( Voltage - 2.98) * (0.0238/0.14) ) );

  }

  //Serial.println(sensorValue);
  Serial.print("230");
  Serial.print(",");
  Serial.print( Voltage*100);
  Serial.print(",");
  Serial.print("312");
  Serial.print(",");
  Serial.print("60");
  Serial.print(",");
  Serial.print( ir_length*10 );
  Serial.print(",");  
  Serial.println("100");

  delay(10);
}



좋은 웹페이지 즐겨찾기