Está en la página 1de 3

//Livrarias//

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <RTClib.h>
#include <ML8511.h>

//Hardware pin//
int ML8511Sen = A0; //ML8511//
int ML8511Ref = A1;
RTC_DS3231 rtc;

File myFile;

//Inicio//
void setup() {
Serial.begin(9600); //Velocidade de comunica��o//

pinMode(A0, INPUT); //saida informa��o energia sensor//


pinMode(A1, INPUT); // saida informa��o energia referencia//

Serial.print("Iniciando SD ...");
if (!SD.begin(10)) {
Serial.println("No se pudo inicializar");
return;
}
Serial.println("inicializacion exitosa");

if (! rtc.begin()){
Serial.println("Modulo RTC no encontrado!");
while (1);
}
rtc.adjust(DateTime(__DATE__, __TIME__));

Serial.println(" UFRGS ");


Serial.println(" LABORATORIO DE RADIOMETRIA E AN�LISE ESPECTRAL ");
Serial.println(" ALUNA: ADRIANA BECERRA ");
Serial.println(" RADIA��O ULTRAVIOLETA ");
Serial.println ('\n');

Serial.println("Data; Hora; Ref ; VCC ; Sen ; Voltage ;


IUV (mW/cm^2)");
}

//Comandos//
void loop() {

myFile = SD.open("datalog.txt", FILE_WRITE);//open arquivo

if (myFile) {

//ML8511//
int Sen = analogRead(A0); //valor analogico leido no sensor//
int Ref = analogRead(A1); //valor analogico leido no
referencia//
float volt_Ref= 3.3/Ref*1023;
float volt_Sen= 3.3/Ref*Sen; //compara com valor
referencia para precis�o//
float M_IUV = mapfloat(volt_Sen, 0.95, 2.8, 0.0, 15.0); //Converte voltage para
intensidade uv//

//SALVA//
DateTime fecha = rtc.now();
myFile.print(fecha.day());
myFile.print("/");
myFile.print(fecha.month());
myFile.print("/");
myFile.print(fecha.year());
myFile.print(" ");
myFile.print(fecha.hour());
myFile.print(":");
myFile.print(fecha.minute());
myFile.print(":");
myFile.print(fecha.second());
myFile.print(" ");
myFile.print(" ; ");
myFile.print(Ref);
myFile.print( " ; ");
myFile.print(volt_Ref,3);
myFile.print( " ; ");
myFile.print(Sen);
myFile.print(" ; ");
myFile.print(volt_Sen,3);
myFile.print(" ; ");
myFile.println(M_IUV);

myFile.close(); //cerramos el archivo

//IMPRIME//

Serial.print(fecha.day());
Serial.print("/");
Serial.print(fecha.month());
Serial.print("/");
Serial.print(fecha.year());
Serial.print(" ");
Serial.print(fecha.hour());
Serial.print(":");
Serial.print(fecha.minute());
Serial.print(":");
Serial.print(fecha.second());
Serial.print(" ");
Serial.print(" ; ");
Serial.print(Ref);
Serial.print( " ; ");
Serial.print(volt_Ref,3);
Serial.print( " ; ");
Serial.print(Sen);
Serial.print(" ; ");
Serial.print(volt_Sen, 3);
Serial.print(" ; ");
Serial.println(M_IUV);

}
else {
Serial.println("Error al abrir el archivo");
}
delay(30000);
}

// fun��o//

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