0% encontró este documento útil (0 votos)
9 vistas2 páginas

Código Arduino para Medir Intensidad UV

Este documento describe un programa Arduino para medir la intensidad de la luz UV usando un sensor MP8511. El programa toma lecturas promedio del sensor y de una referencia de 3.3V, calcula el voltaje de salida y la intensidad UV mapeando ese voltaje, e imprime los resultados por el puerto serie cada 100ms. También incluye funciones para tomar promedios de lecturas analógicas y mapear valores de punto flotante.

Cargado por

Eladio Sorcia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas2 páginas

Código Arduino para Medir Intensidad UV

Este documento describe un programa Arduino para medir la intensidad de la luz UV usando un sensor MP8511. El programa toma lecturas promedio del sensor y de una referencia de 3.3V, calcula el voltaje de salida y la intensidad UV mapeando ese voltaje, e imprime los resultados por el puerto serie cada 100ms. También incluye funciones para tomar promedios de lecturas analógicas y mapear valores de punto flotante.

Cargado por

Eladio Sorcia
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

int UVOUT = A0 ; // Salida del sensor

int REF_3V3 = A1 ; //3,3 V de potencia en la placa Arduino

void setup ( )
{
Serial . comenzar ( 9600 ) ;

pinMode ( UVOUT , INPUT ) ;


pinMode ( REF_3V3 , ENTRADA ) ;

Serial . println ( "ejemplo de MP8511" ) ;


}

bucle vacío ( )
{
int uvLevel = averageAnalogRead ( UVOUT ) ;
int refLevel = averageAnalogRead ( REF_3V3 ) ;

// Utilice el pin de alimentación de


3,3 V como referencia para obtener un valor de salida muy preciso del flotador
del sensor outputVoltage = 3.3 / refLevel * uvLevel ;

flotar uvIntensity = mapfloat ( outputVoltage , 0.99 , 2.9 , 0.0 ,


15.0 ) ;

Serial . print ( "Salida MP8511:" ) ;


Serial . imprimir ( uvLevel ) ;

Serial . print ( "voltaje MP8511:" ) ;


Serial . print ( outputVoltage ) ;

Serial . print ( "Intensidad UV (mW / cm ^ 2):" ) ;


Serial . imprimir ( uvIntensity ) ;

Serial . println ( ) ;

retraso ( 100 ) ;
}

// Toma un promedio de lecturas en un pin dado


// Devuelve el promedio
int averageAnalogRead ( int pinToRead )
{
byte numberOfReadings = 8 ;
unsigned int runningValue = 0 ;

for ( int x = 0 ; x < numberOfReadings ; x ++ )


runningValue + = analogRead ( pinToRead ) ;
runningValue / = numberOfReadings ;

return ( runningValue ) ;
}

// La función Arduino Map pero para flotadores


// From: [Link]
float mapfloat ( float x , float in_min , float in_max , float out_min ,
float out_max )
{
return ( x - in_min ) * ( out_max - out_min ) / ( in_max - in_min ) +
out_min ;
}

También podría gustarte