Poll
Question: alguien puede ayudarme
1 - 1 (100%)
2 - 0 (0%)
Total Voters: 1

Pages: [1]   Go Down
Author Topic: medidor ph/orp Atlas Scientific  (Read 1367 times)
0 Members and 1 Guest are viewing this topic.
cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, tengo esta placa pero no se hacerla funcionar , en las instrucciones dice que hay que enviarle "c<cr>" pero no "c<cr><ln>" par que haga una lectura continua y se encienda el led verde indicando esto.
tengo Arduino Mega y he probado conectarlo a los pines dig 19, 20, escribo  Serial1.print("c")  Serial1.print("\r") y no  hace nada, bueno he probado de mil maneras tambien con libreria Newsoftserial en pines 8;9 y ya no se que voy hacer,
¿alguien me puede ayudar, por favor?
Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

si lo que quieres es escribir 'c<cr>' te sugiero lo siguiente:

char envio[3]={'c',13,0};
Serial.print(envio);

No estoy seguro de la inicializacion de envio. Si peta, prueba:
envio[0]='c';
envio[1]=13;
envio[2]=0;
Serial.print(envio);

Suerte
Logged

cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ante todo muchas gracias pofenas por ayudarme,
Esta es la placa con la que estoy luchando, https://www.atlas-scientific.com/00_other/pHStampManual.pdf

He probado con el codigo que me has dicho en los pines (rx1,tx1) 19,18 de mi arduino mega, pero no escribe en la placa, (esta plaquita tiene dos leds uno rojo y otro verde uno de power on y el otro se enciendo cuando recibe o manda datos, y no se inmuta )
:

void setup()
{
Serial.begin(38400);
}
void loop()
{
  char envio[4]={'l','1', 13,0};
Serial.print(envio);

envio[0]='l';
envio[1]='1';
envio[3]=13;
envio[4]=0;
Serial.print(envio);
}

lo he probado con Serial print() tambien en los pines (rx tx) 0,1 pero no se si se puede escribir en la placa de ph con serial.begin() ¿asi  solo  escribe en monitor de pc no?
« Last Edit: March 27, 2011, 12:04:57 pm by lince » Logged

Albacete
Offline Offline
Full Member
***
Karma: 0
Posts: 140
Arduino mola que te pasas
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Con Serial escribes usando los pines 0 y 1, que son los mismos que se usan para comunicar con el PC a través del USB. SI lo estas probando en el Mega, puedes usar los pines 18 y 19, pero entonces debes usar Serial1 (supongo que ya lo has probado). Lo unico que se me ocurre es que quizá las masas no son comunes? Supongo que igual lo sabes ya, pero necesitas que Gnd del Arduino y Gnd de la placa esten unidos mediante un hilo. No se me ocurre que más podria estar pasando....
Suerte
Logged

cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bueno pues ya por lo menos se que funciona smiley-mr-green, lo que pasa que no es exacto me da sobre 6.75 en solucion de calibracion ph7, supongo que es por la diferencia de temperatura del valor por defecto que trae la placa 25º y ahora aqui tengo 21º, por eso necesito poder utilizar los codigos, tambien parar la lectura continua y solo lea cuando le pida con R<CR>, solo seis codigos y casi todos de un carater mas retorno de carro . (con lo sencillo que me parecia cuando lo compre smiley-red)

con este codigo que he encontrado:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);

#include <stdio.h>

void setup()
{
 Serial1.begin(9600);
 lcd.begin(20,4);
 lcd.print("empezamos");

}

void loop()
{

  delay(1000);
 char inData_ph[24];
 char string_ph[8];
 int index =0;
 float ph_val = 0.0;
 Serial1.println("read()c");

 delay(750);
 while (Serial1.available() > 0 && index < 24)
   {
     inData_ph[index] = Serial1.read();
     index++;  
   }
   inData_ph[index] = '\0';
   sscanf(inData_ph, "%*s %s", string_ph);
   ph_val = atof(string_ph);
   // Serial.print("Sensor output: [");
   // Serial.print(inData_ORP);  Serial.println("]");
   lcd.print("ph valor: ");
  lcd.print(ph_val);
 }  

el caso es que he probado de mil maneras mandar los seis comandos que tiene la placa pero no hay forma.
lo que no se por que funciona con Serial1.begin(9600) si la pagina oficial dice que es a 38400. lo he probado y tampoco funciona. con 'Serial1.print' con 'Serial1.println' pero no doy con la tecla.
Gracias Pofenas por los consejos, seguire investigando a ver si doy con la solucion.
« Last Edit: March 28, 2011, 02:49:54 pm by lince » Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Prueba a mandar de esta manera el retorno de carro.
Serial.print("Comando\r\n");

Slu2
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pues nada tampoco funciona
Logged

cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

el caso es que de alguna manera en el codigo que puse antes que es con el único que me funciona si quito: Serial1.println("read()c"); deja de darme valores, entiendo que esto hace las veces del comando r<CR> el cual me da una sola lectura segun el fabricante o C<CR que hace lectura constante. es que en teoria la velocidad de trabajo de la tarjeta es a 38400 y en este codigo se le transmite a 9600, pero es que si le pongo 38400 tampoco funciona.  smiley-cry smiley-cry
ta no se como le voy a meter mano a esto. sigo investigando....

Logged

cadiz
Offline Offline
Newbie
*
Karma: 0
Posts: 15
con ganas de aprender!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bueno pues por fin puedo mandar los comandos, por fin me respondio el vendedor y resulta que cambiaron antes el manual  a otro de una nueva version pero con otros comandos nuevos y  por eso no leia los comandos porque eran otros.
ahora todo ok.
gracias a todos los que me respondieron
Logged

Pages: [1]   Go Up
Jump to: