Estou tendo problemas com os dados que aparece no display/serial.
Os números estão dando em centenas ou milhares, mas deveria dar em números decimais, alguém poderia me ajudar?
double calc_NTU(double volt);
int ph_pin = A1; //This is the pin number connected to Po
int voltageS;
//float voltage;
// ==================================================================================================================
// --- Variáveis Globais ---
double NTU = 0.0;
// ==================================================================================================================
// --- Configurações Iniciais ---
void setup()
{
Serial.begin(9600);
Serial.println(" Projeto basico");
Serial.println("www.youtube.com/c/projetobasicos");
} //end setup
// ==================================================================================================================
// --- Loop Infinito ---
void loop()
{
int measure = analogRead(ph_pin);
//Serial.print ( " Measure:");
// Serial.print (measure);
double voltage = 5.0 / 1024.0 * measure; //classic digital to voltage conversion
//Serial.print("\tVoltage: ");
//Serial.print(voltage);
// PH_step = (voltage@PH7 - voltage@PH4) / (PH7 - PH4)
// PH_probe = PH7 - ((voltage@PH7 - voltage@probe) / PH_step)
float Po = 7 + ((2.5 - voltage) / 0.18);
Serial.print("\tSensor de PH: ");
Serial.print(Po, 3);
Serial.println("");
int sensorValue = analogRead(A0);
float voltagem = sensorValue * (5.0 / 1024.0);
NTU = calc_NTU(voltagem);
//Serial.print(voltagem);
//Serial.print (" | ");
Serial.print("Sensor de Turbidez: " );
Serial.print (NTU);
delay(741);
} //end loop
// ==================================================================================================================
// --- Função para conversão de tensão para Turbidez em NTU ---
//
// Equação que relaciona tensão com NTU: NTU = -1120,4*volt*volt + 5742,3*volt - 4352,9
//
double calc_NTU(double volt)
{
double NTU_val;
NTU_val = -(1120.4*volt*volt)+(5742.3*volt)-4352.9;
return NTU_val;
} //end calc_NTU
Creo que este es el foro de español... y aunque entiendo lo que leo habria que postear el código siguiendo las NORMAS del foro de español.
O que entendes por numeros decimais? Que sensor estás a usar?
victorjam:
Creo que este es el foro de español... y aunque entiendo lo que leo habria que postear el código siguiendo las NORMAS del foro de español.
lo siento, no puedo mover este foro correctamente, ¡y las instrucciones son confusas en inglés!
Fácil. Editas o teu post inicial e colocas o código dentro do campo criado pelo botão </ > Fica mais legível e de acordo com as normas do forum arduino.
bubulindo:
O que entendes por numeros decimais? Que sensor estás a usar?
Entendo números decimais como: 0,5, 0,10, etc. Estou errado?
Uso o Sensor de Turbidez Arduino ST100.
Começa por não assumires ordem de operações.
Transforma isto:
double voltage = 5.0 / 1024.0 * measure; //classic digital to voltage conversion
nisto:
double voltage = (measure * 5.0) / 1024.0; //classic digital to voltage conversion
float Po = 7 + ((2.5 - voltage) / 0.18);
Esta formula dá entre 20,9 até -6.9 de forma linear.
No entanto, tu tens duas fórmulas que medem de dois pinos diferentes...
A segunda fórmula é esta:
NTU_val = -(1120.4*volt*volt)+(5742.3*volt)-4352.9;
e o resultado sendo quadrático vai -3651.4 até -4352.9 e dentro da gama de 1V e 4V mais ou menos o sinal é positivo, mas resulta sempre em centenas ou milhares, logo não dá para perceber qual é o problema.
Logo, qual das fórmulas está correcta?
Porque estás a medir de dois pinos diferentes?
Como estás a ligar o sensor?
bubulindo:
Começa por não assumires ordem de operações.
Transforma isto:
double voltage = 5.0 / 1024.0 * measure; //classic digital to voltage conversion
nisto:
double voltage = (measure * 5.0) / 1024.0; //classic digital to voltage conversion
float Po = 7 + ((2.5 - voltage) / 0.18);
Esta formula dá entre 20,9 até -6.9 de forma linear.
No entanto, tu tens duas fórmulas que medem de dois pinos diferentes...
A segunda fórmula é esta:
NTU_val = -(1120.4*volt*volt)+(5742.3*volt)-4352.9;
e o resultado sendo quadrático vai -3651.4 até -4352.9 e dentro da gama de 1V e 4V mais ou menos o sinal é positivo, mas resulta sempre em centenas ou milhares, logo não dá para perceber qual é o problema.
Logo, qual das fórmulas está correcta?
Porque estás a medir de dois pinos diferentes?
Como estás a ligar o sensor?
Esqueci de comentar, nessa programação está também a programação do sensor de pH, essa que tu mostrastes:
float Po = 7 + ((2.5 - voltage) / 0.18);
Por isso dois pinos diferentes!
Estou ligando o sensor na porta analógica 0, negativo e 5 volts.
Agora referente a qual fórmula está correta, uma é para o sensor de pH e a outra para o sensor de turbidez. Referente a transformação, não sei linguagem de programação, sei apenas o básico, fiz essa programação por meio de pesquisas, e ajuda do meu coorientador.
De onde obtiveste a formula para conversão?
Que valores de tensão é que estás a ver?
bubulindo:
De onde obtiveste a formula para conversão?
Que valores de tensão é que estás a ver?
Obtive a partir desse vídeo: https://www.youtube.com/watch?v=BxOh81CjtuU (espero não estar fora das regras do forum).
Os valores das tensões variam, então não sei exatamente te dizer!
Eu perguntei que valores é que estás a ver... são muito diferentes uns dos outros (em termos de tensão)?
bubulindo:
Eu perguntei que valores é que estás a ver... são muito diferentes uns dos outros (em termos de tensão)?
Não, não são muito diferentes um dos outros!
Ok... eu perguntei os valores. O que tu dizes não ser muito diferente dos outros em tensão, pode ser uma diferença brutal com a equação que usas.
Experimenta pesquisar por filtros digitais e filtrar o sinal de tensão antes de fazeres o cálculo.
bubulindo:
Ok... eu perguntei os valores. O que tu dizes não ser muito diferente dos outros em tensão, pode ser uma diferença brutal com a equação que usas.
Experimenta pesquisar por filtros digitais e filtrar o sinal de tensão antes de fazeres o cálculo.
Certo, vou tentar dar uma pesquisada sobre, sou iniciante nessa vida de programação, não entendo muito!
Mas obrigado pela colaboração!
Obs: Tentarei tirar um print da tela com o sensor funcionando quando chegar na escola (lugar que está o projeto), e mandarei aqui, para analisar os valores de tensão e etc.