Arduino + LCD + Ph Atlas Cientific

Hello brothers!

I need help for my project in Arduino + LCD + Sensor pH Atlas.
I not see in display LCD the value of pH.
Have problem in Codigo.
Please help me.
I belive that Have a person have assembly this project, or is any person that have hability in Arduino, can help me.
Since now I thank the all.

Att,

Emerson Vitorio
São Paulo - Brazil

codigo:

// Este código foi intencionalmente foi escrito para ser excessivamente longo e inclui etapas desnecessárias.
// Muitas partes deste código pode ser truncado. Este código foi escrito para ser fácil de entender.
// Código da eficiência não foi considerada. Modificar esse código como você vê o ajuste.
// Este código irá dados de saída para o monitor serial Arduino. Digite os comandos para o monitor serial Arduino para controlar o circuito de pH.
// definir a var Arduino_only para igual a 1 para assistir ao Arduino assumir o controle do circuito de pH.

#include <LiquidCrystal.h> //Inclui a biblioteca do LCD
#include <SoftwareSerial.h> // temos que incluir a biblioteca SoftwareSerial, ou então nós não podemos usá-lo.
#define rx 6 // define o pino rx vai ser, modificado de 2 para 6, pois o 2 estava em uso.
#define tx 7 // define o pino Tx vai ser, modificado de 3 para 7, pois o 7 estava em uso.

SoftwareSerial myserial(rx, tx); // define como a porta serial macio vai funcionar.

LiquidCrystal lcd(12, 11, 5, 4, 2, 3); //Configura os pinos do Arduino para se comunicar com o LCD
int temp; //Inicia uma variável inteira(temp), para escrever no LCD a contagem do tempo
char ph_data[20]; // fazemos uma matriz de 20 caracteres de dois bytes para armazenar dados de entrada do pH
char computerdata[20]; // fazemos uma matriz de 20 caracteres de dois bytes para armazenar os dados de entrada de um pc / mac / outros.
byte received_from_computer=0; // precisamos saber quantos caracteres foram recebidos.
byte received_from_sensor=0; // precisamos saber quantos caracteres foram recebidos.
byte arduino_only=0; // se você gostaria de operar o circuito de pH com o Arduino só e não usar o monitor serial para enviar comandos de definir isso para 1. Os dados ainda vai sair no monitor serial, para que você possa vê-lo trabalhando .
byte startup=0; // usado para garantir que o Arduino assume o controle do Circuito pH corretamente.
float ph=0; // usado para armazenar um número de ponto flutuante, que é o pH .
byte string_received=0; // usado para identificar quando recebemos uma string do circuito de pH .

void setup()
{
Serial.begin(38400); //ativar a porta de série do hardware
myserial.begin(38400); // habilitar a porta serial software
lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
lcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.print(ph_data); //Escreve no LCD "HELLO!"

}

void serialEvent(){ // esta interrupção será desencadeada quando os dados provenientes do monitor serial (pc / mac / outro) é recebido.
if(arduino_only!=1){ // se Arduino_only não é igual a 1 esta função será ignorada.
received_from_computer=Serial.readBytesUntil(13,computerdata,20); // lemos os dados enviados a partir do monitor serial (pc / mac / outro) até que vejamos um . Contamos também quantos caracteres foram recebidos.
computerdata[received_from_computer]=0; // nós adicionar um 0 para o local na matriz logo após o último personagem que recebeu .. Isso vai nos impedir de transmissão de dados incorretos que podem ter sido deixados no buffer.
myserial.print(computerdata); // nós transmitir os dados recebidos do monitor serial (pc / mac / outro) através da porta serial macio para o Circuito de pH.
myserial.print('\r'); // todos os dados enviados para o Circuito pH deve terminar com um .
}
}

void loop(){

if(myserial.available() > 0){ // se vemos que o circuito pH enviou um caracterer.
received_from_sensor=myserial.readBytesUntil(13,ph_data,20); // lemos os dados enviados a partir de pH Circuito até que vejamos um . Contamos também quantos caracteres foram recebidos.
ph_data[received_from_sensor]=0; // nós adicionar um 0 para o local na matriz logo após o último caractere que recebemos. Isso vai nos impedir de transmissão de dados incorretos que podem ter sido deixados no buffer.
string_received=1; // a bandeira usada quando o Arduino está controlando o pH do circuito para que possamos saber que uma seqüência completa foi recebido.
lcd.println(ph_data); // que permite transmitir os dados recebidos a partir do circuito de pH para o monitor de série.
}

if(arduino_only==1){Arduino_Control();} // Se o arduino_only var é definido como um, vamos chamar esta função. Deixando o Arduino assumir o controle do Circuito pH

}

void Arduino_Control(){

if(startup==0){ // se o Arduino apenas arrancado, precisamos definir algumas coisas primeiro.
myserial.print("e\r"); // pegar o Circuito pH de modo continua.
delay(50); // no arranque, por vezes, o primeiro comando é perdida.
myserial.print("e\r"); // Então, vamos enviá-lo duas vezes.
delay(50); // um pequeno atraso após o Circuito pH foi retirado continua modo é usado para ter certeza de que não mais carregá-lo com comandos.
startup=1; // inicialização estiver concluída, não vamos fazer isso de novo durante a operação normal.
}

delay(800); // vamos fazer uma leitura sempre 800ms. Você pode fazer isso muito mais ou menos, se quiser.
myserial.print("R\r"); // envia o comando para tirar uma única leitura.
if(string_received==1){ // não podemos obter dados de volta do Circuito ph?
ph=atof(ph_data); // muitas pessoas nos perguntam "como faço para converter uma picada em um carro alegórico?" Isto é como ...
if(ph>=7.5){Serial.println("high\r");} // Esta é a prova de que foi convertido em um float.
if(ph<7.5){Serial.println("low\r");} // Esta é a prova de que foi convertido em um float.
string_received=0;} // redefinir a seqüência de bandeira recebido.

}

// aqui estão algumas funções que podem ser úteis
// estas funções não estão habilitados

void s_cal(){ // calibrar a um pH de 7
myserial.print("s\r");} // envia o comando "s" para calibrar a um pH de 7,00

void f_cal(){ // calibrar a um pH de 4
myserial.print("f\r");} // envia o comando "f" para calibrar a um pH de 4,00

void t_cal(){ // calibrar a um pH de 10,00
myserial.print("t\r");} // envia o comando "t" para calibrar a um pH de 10,00

void phFactoryDefault(){ // fábrica circuito de pH
myserial.print("X\r");} // envia o comando "X" para a fábrica redefinir o dispositivo

void read_info(){ // obter informações dispositivo
myserial.print("I\r");} // envia o comando "I" para consultar as informações

void phSetLEDs(byte enabled) // transformar os LEDs ligado ou desligado
{
if(enabled) // se habilitado é> 0
myserial.print("L1\r"); // o LED irá acender
else // se estiver ativado é 0
myserial.print("L0\r"); // o LED irá desligar
}