El MiCS-4514 es un sensor MOS compacto con dos elementos de detección independientes en un paquete. 

el datasheet y otros documentos relevantes puede descargarlos al final de este articulo

pero para poder utilizarlo hay un modulo que ya tiene integrado con lo necesario para poder comenzar a trabajar.


en la siguiente imagen podemos ver las conexiones que conllevan este modulo




conecciones con arduino uno



funcionamiento del sensor.-

como indica en los documentos adjuntos a este articulo  vemos las características de los módulos del sensor mics 4514

lo que censamos son los valores resistivos que van variando en el sensor, tanto en el modulo RED como en el modulo OX

modulo RED:  observamos que el rango va de 100 a 1500 kOHM

modulo OX: igual quen el modulo red el rango de la variacion de la resistencia de lectura va de 0.8 a 20KOhm

para poder probar el sensor se requiere conectar una resistencia en serie para poder lecturar  el valor, pero el modulo ya incluye estas resistencias como se muestra a continuación.

los valores de estas resistencias se usaran para poder calcular e interpretar los valores lecturados



sobre el código



//datos lectura del conversor a/d
int co=0;
int no2=0;

//valores convertidos a voltaje
float vco=0;
float vno2=0;

//valor de la resistencia (interna en el sensor)
float rco=0;
float rno2=0;

//Valor Rs/Ro
float conCO=0;
float conNO2=0;

//cálculo de ppm 
double ppmCO=0;
double ppmNO2=0;

void setup() {
  // configuracion del puerto serial
  Serial.begin(9600);
  while(!Serial)
  pinMode(9,OUTPUT);
  Serial.println("pre calentamiento");
  digitalWrite(9, HIGH);
  delay (30000);
  Serial.println("pre heating done");
  digitalWrite(9, LOW);
}

void loop() {
  
  //lecturas A/D
  co=analogRead(A0);
  no2=analogRead(A1);
  
  //conversion a voltaje
  vco=(5*co)/1024;
  vno2=(5*no2)/1024;
  
  //Converir a resistencia
  rco=47000*((5-vco)/vco);//VALOR  resistor in red 1ohm  100-1500KOHM
  rno2=((22000*(5-vno2))/vno2);//VALOR resistor in ox 0.8-20KOHM
 //Convert to indicator concentration
 
  conCO= 47000/rco;     //   conCO =Rs/Ro para red sensor
  conNO2= 22000/rno2;   //   conNO2=Rs/Ro para ox sensor
  
  //Calculo de particulas por millon 

  
  ppmCO=(4.4138*pow(conCO,-1.178));
  ppmNO2= ((-0.0003*(conNO2*conNO2))+(0.1626*conNO2)-0.0217);
  Serial.print("PPM CO:");
  Serial.print(" ");
  Serial.print(ppmCO);
  Serial.print("  PPM NO2:");
  Serial.print(" ");
  Serial.println(ppmNO2);
 
  delay(1000);
}