#define no_dust 0.35 //미세먼지 초기값
// 아두이노 - 미세 먼지 센서 연결
int dustout = A0;
int v_led = 2;
// 미세 먼지 센서 동작
float dust_funtion() {
digitalWrite(v_led, LOW); // 적외선 LED ON
delayMicroseconds(280); // 280us동안 딜레이
vo_value = analogRead(dustout); // 데이터를 읽음
delayMicroseconds(40); // 320us - 280us
digitalWrite(v_led, HIGH); // 적외선 LED OFF
delayMicroseconds(9680); // 10ms(주기) -320us(펄스 폭) 한 값
sensor_voltage = get_voltage(vo_value);
dust_density = get_dust_density(sensor_voltage);
//Serial.print("value = ");
// Serial.println(vo_value);
// Serial.print("Voltage = ");
// Serial.print(sensor_voltage);
// Serial.println(" [V]");
// Serial.print("Dust Density = ");
// Serial.print(dust_density);
// Serial.println(" [ug/m^3]");
return dust_density;
}
//////////////////미세먼지 값 변환////////////////
float get_voltage(float value)
{
// 아날로그 값을 전압 값으로 바꿈
float V = value * 5.0 / 1024;
return V;
}
float get_dust_density(float voltage)
{
// 데이터 시트에 있는 미세 먼지 농도(ug) 공식 기준
float dust = (voltage - no_dust) / 0.005;
return dust;
}