Está en la página 1de 32

Manual de configuracin de las libreras

GiovynetDriver y RXTX

Contenido
Pasos para instalar la Librera RS22 o GiovynetDriver !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2
"!#$%&T%S '%( P)R) L) L*(R%R+) RS22 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2
2!*&ST)L),*-& D% L) L*(R%R+) RS22! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2
.,-D*G/ P)R) %L M)&%0/ D% L/S P$%RT/S S%R*)L M%D*)&T% 0)1) 2P$%RT/S L*(R%S3 !!!!!! "4
!.,odigo! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ""
5. %6e7plo de lectura y escritura por 7edio de un puerto serial !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "2
5!2.,odigo! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "2
5!.Definicion8 instalacion 87ane6o del 9yperter7inal y Setup1SP% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "
Pasos para instalar la Librera RXTX !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22
:!#$%&T%S '%( P)R) L) L*(R%R+) RXTX!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22
;!,/&#*G$R),*-& D% L)S L*(R%R+)S %& 0)1)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 22
<!,-D*G/ P)R) %L M)&%0/ D%L P$%RT/ S%R*)L %& 0)1) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2:
=!%6e7plo de lectura y escritura para un puerto serial !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2;
=!"%scritura serial !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2;
=!2 Lectura serial !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2=
>!,/M$&*,),*-& 0)1).)RD$*&/ M%D*)&T% $& P$%RT/ S%R*)L !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2>
>!" PR/GR)M),*-& %& )RD$*&/ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2>
>!2 PR/GR)M),*-& %& 0)1) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 4
Reco7endaciones? !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2





2


Pasos para instalar la Librera RS232 o GiovynetDriver

1.FUENES !E" P#R# L# L$"RER%# RS232
9ttp?@@AAA!giovynet!co7@giovynetDriverBes!9t7l

"!".Descargar la librera en escritorio?
Nota& Se debe escoger la librera dependiendo de las caractersticas de nuestra
co7putadora8 s es de 2 bit o ;5 bit!
"!2.Desco7pri7ir la librera en escritorio8 procede7os a crear nuestro proyecto en 6ava
2.$NS#L#C$'N DE L# L$"RER%# RS232.
2!". ,rear una carpeta en escritorio
&o7bre? RS22

2!".%6ecutar 6ava y buscar la carpeta creada anterior7ente2CRS22D3!

3




Dar clic en aceptar y /E!
2!2.Luego busca7os en el 7enF de 9erra7ientas #ile y da7os clic y selecciona7os &eA


2!.Dentro &eA escoge7os? 0ava Pro6ect!
(




2!5.Pone7os no7bre a 7uestro proyecto? Pro6ect na7e por RS22

Dar clic en #inis9
2!:.Da7os clic derec9o sobre la carpeta creada en 6ava
2!;.%sco6e7os &eA y dentro de este escoge7os PacEage
)


2!<.Da7os un no7bre a nuestro PacEage en &a7e?rs22 y clic en #inis9


2!>. %ntra7os la librera descargada 2GiovynetDriverB2!4BG;53

Se encuentra en donde desco7pri7i7os la librera
*

2!"4 H Dentro abra dos cartepas en las Iue entrare7os en la de no7bre
CGiovynetDriverB2!4BG;5D
2!"".Dentro de esta abra un arc9ivo de no7bre CGiovynetDriver!6arD

,opia7os el arc9ivo !
2!"2.%ntra7os en la carpeta C&ativeLibrariesD y pega7os en el el arc9ivo
CGiovynetDriver!6arD y escoge7os todos los arc9ivos y los copia7os


+



Los )rc9ivos copiados seran ?
libSOSerialPort.so GiovynetDriver.jar
libSerialPort.dll


2!" (a7os a nuestro proyecto en 6ava 8la barra de 9erra7ientas escoge7os
'indoAs8dentro escoge7os S9oA 1ieA y escoge7os &avigator
,


2!"5 Se abrira el navegador en este escoge7os la carpeta RS2 y da7os clic derec9o
pegar


2!": Regresa7os a PacEage %Gplorer y vere7os nuestra librera en el proyecto

2!";.Da7os clic derec9o sobre alguna parte de nuestro PacEage %Gplorer ba7os a (uild
Pat98 escoge7os ,onfigure (uild Pat9!
-


2!"< Jay entrare7os en la pestaKa Libraries!



2!"= Dar clic en el boton C)dd 0)Rs!!D8 desplega7os el contenido de la carpeta RS2 y
escoge7os el arc9ivo CGiovynetDriver!6arD y da7os clic /E y /E
1.


2!"> con esto ya estara nuestra librera instalada en nuestro proyecto en 6ava!
3/C'D$G0 P#R# EL 1#NE20 DE L0S PUER0S SER$#L 1ED$#NE 2#3# 4PUER0S
L$"RES5
!".,rear una ,lass dentro de nuestro proyecto CRS2D da7os clic en el PacEage8 clic en &eA y
clic en ,lass


!2.Le da7os un no7bre a esta class en &a7e
&onbre?Puertos
11



3.3/Codi6o.
pa78a6e rs22L
i9port 6ava!util!ListL

i9port giovynet!nativelinE!SerialPortL


p:bli7 7lass PuertosM

p:bli7 stati7 void 7ain2StringNO args3t;ro<s %GceptionM
@@ SerialPort? es un ob6eto del tipo de puerto Iue va7os a utiliPar
SerialPort free Q ne< SerialPort23L
@@ &os per7ite obtener la lista de puertos disponibles
ListRStringS portsList Q free!get#reeSerialPort23L
Syste7!out!println2TPuertos DisponiblesT3L
@@ Para verifica los puertos crea7os un for 7ediante el cual
@@ ontendre7os los puertos libres i7presos en consola
=or 2String String ? portsList3
M
Syste7!out!println2String 3L
U
U

U
12


(/ E>e9plo de le7t:ra y es7rit:ra por 9edio de :n p:erto serial
5!". ,rear una ,lass dentro de nuestro proyecto C%6e7ploD da7os clic en el PacEage8 clic en &eA
y clic en ,lass
(.2/Codi6o.
pacEage rs22L
i7port giovynet!serial!(audL
i7port giovynet!serial!,o7L
i7port giovynet!serial!Para7etersL

i7port 6ava!aAt!#ra7eL

i7port 6avaG!sAing!0(uttonL
i7port 6avaG!sAing!0LabelL
i7port 6avaG!sAing!0TeGt#ieldL

public class %6e7plo eGtends #ra7e
M
@@ 1ariables y ob6etos visuales
0Label %tiIuetaQneA 0Label23L
0TeGt#ield TeGtoQneA 0TeGt#ield23L
0(utton (otonQneA 0(utton23L

0Label %tiIueta"QneA 0Label23L
0Label %tiIueta2QneA 0Label23L
0(utton (oton"QneA 0(utton23L
String caracter Q TTL

public %6e7plo23
M
@@ #ra7e
set1isible2true3L
setLayout2null3L
setTitle2TLectura y escritura de datosT3L
setSiPe22:8"2:3L
@@ %tiIueta
%tiIueta!set(ounds2248:48 "448 243L
%tiIueta!setTeGt2T%nviar un digitoT3L
add2%tiIueta3L
@@ ,a6a de teGto
TeGto!set(ounds2"248:48":8 243L
add2TeGto3L
@@ (oton
(oton!set(ounds2":48:48"448 243L
(oton!setTeGt2T%nviarT3L
add2(oton3L
@@ %tiIueta "
%tiIueta"!set(ounds2248=48 "448 243L
%tiIueta"!setTeGt2TLeer un digitoT3L
add2%tiIueta"3L
@@ %tiIueta2
%tiIueta2!set(ounds2"248=48":8 243L
add2%tiIueta23L
@@ (oto "
(oton"!set(ounds2">48=48"448 243L
(oton"!setTeGt2TLeerT3L
13

add2(oton"3L
@@ %vento boton"
(oton!addMouseListener2neA 6ava!aAt!event!Mouse)dapter23 M
public void 7ouse,licEed26ava!aAt!event!Mouse%vent e3 M

Para7eters configuracion Q nullL
try M
@@ @@Definicin de para7etros
configuracion Q neA Para7eters23L
@@ @@definicin del puerto Iue se va a utiliPar
configuracion!setPort2T,/M"T3L
@@ @@definicin de la velocidad de i7presin8 se debe tener en
@@ cuenta dic9o argu7ento en las especificacion de velocidad del dispositivo
configuracion!set(audRate2(aud!B>;443L
@@ asigna7os los para7etros al ob6eto co7"
,o7 co7" Q nullL
co7" Q neA ,o72configuracion3L
@@ envio de un de caracter
co7"!sendSingleData2TeGto!getTeGt233L
@@ fin de envio de secuencias de escape %S,@P/S
co7"!close23L
U catc9 2%Gception e"3 M
@@ T/D/ )uto.generated catc9 blocE
e"!printStacETrace23L
U
U
U
3L
@@%vento boton "
(oton"!addMouseListener2neA 6ava!aAt!event!Mouse)dapter23 M
public void 7ouse,licEed26ava!aAt!event!Mouse%vent e3 M
Syste7!out!println2T7ouse,licEed23T3L @@ T/D/ )uto.generated %vent stub 7ouse,licEed23
Para7eters configuracion Q nullL
try M
configuracion Q neA Para7eters23L
configuracion!setPort2T,/M"T3L
configuracion!set(audRate2(aud!B">2443L
,o7 co7" Q nullL
co7" Q neA ,o72configuracion3L
A9ile2caracter!eIuals2TT33M

caracter Qco7"!receiveSingleString23L
Syste7!out!println2caracter3L
%tiIueta2!setTeGt2caracter3L

U
co7"!close23L
caracter QTTL

U catc9 2%Gception e"3 M
@@ T/D/ )uto.generated catc9 blocE
e"!printStacETrace23L
U
U
U3L
U
U

(.3/De=ini7ion? instala7ion ?9ane>o del ;yperter9inal y Set:p3SPE
4.3.1-Definiciones:
Jyperter7inal?
JyperTer7inal es un potente progra7a de co7unicacin de AindoAs! ,on JyperTer7inal y un 7ode7 es posible colegar la propia co7putadora a un servicio de correo electrnico y a 7uc9o bancos datos8 o ((S! Si8
por e6e7plo8 te colegas a internet con un fornidor de acceso8 sin el colega7ento PPP o SL*P8 probable7ente usarVs el JyperTer7inal! $na veP Iue te colegues a la otra co7putedora8 el tuyo serV un ter7inal 7udo8 en
otras palabras8 estarVs usando tu teclado y la pantalla de tu 7onitor pero Iue en realidad estarVs usando la otra co7putadora y su softAare! ,uando te colegas a un ((S probable7ente encontrarVs los 7enFes de
co7andos Iue podrVs utiliPar para 9acer cosas diferentes!
4.3.2-Instalacion.
Jyperter7inal!
Descargar de?
9ttp?@@AAA!softonic!co7@s@9yperter7inal.AindoAs.<.gratis

%6ecutar
hypertrm.exe

1(


Poner S$

Can7elar

Si

#7eptar
1)


No9bre& Co9:ni7a7i@n
#7eptar

Can7elar

Si
1*



)ceptar

%scoger el puerto a utiliPar en la co7unicacin con 6ava y Poner aceptar

,onfigurar (its por segundos >;44 y poner )ceptar
1+


,on los pasos anteriores ya estara listo para la co7unicacin
4.3.3-Instalacion de VSPE
&ota?solo seguire7os este paso si no tene7os puiertos libres con este
progra7a creare7os un puerto en la 7e7oria de la co7putadora para
poder si7ular co7o funciona el puerto
Descargar de ?
9ttp?@@AAA!laAyer7ent!co7@doAnloads@Progra77ing@DebuggingBandBTracing@RevieAB"<5;2BindeG!9t7
%6ecutar
SetupVSPE.msi
y seguir los pasos Iue nos indica en consola !
,on esto pasa7os a configurarlos
)bri!

,ancelar



&os indica para Iue tipo de o7putadora es en este caso ;5 bist poner aceptar
1,




,lic en








Siguiente ? esta7o configurando para traba6ar en la 7is7a co7putadora
1-


%scoger el puerto co7o se lla7ara pero Iue no contenga ningun no7bre de los puertos libres
$na ves listo poner #inaliPar

,on esto ya esta creado el puerto virtual
2.


%6ecucion del e6e7plo

%cribir un digito en el cuadro de teGto
,lic en %nviar y el 9yperter7inal resivira este e6e7plo


,lic en leer!
21


*r al 9yperter7inaly escribir

&ota no se vera en el 9yperter7inal lo Iue se escribe pero el puerto si resivira la infor7acion es este caso escribi a y
salio a lado de Leer un digito









22

Pasos para instalar la Librera RAA
).FUENES !E" P#R# L# L$"RER%# RAA
Pri7ero 9ay algunos arc9ivos Iue necesitare7os para realiPar la co7unicacin con 6ava
correcta7ente as Iue 9ay Iue descargar las libreras rxtx dependiendo de la arIuitectura
de tu co7putador 22 bits ;5 bits3 en el siguiente blog pode7os descargar las libreras y
los progra7as necesarios para si7ular el puerto serial en tu co7putador estos son el
virtual serial port emulator 21SP% Iue co7o su no7bre lo indica nos e7ula un puerto
serial3 y el iperterminal?
Libreras y Progra7as necesarios?
9ttp?@@Ap!7e@p5Eegf.22
Ta7biWn necesitare7os el soft!are "rduino Iue pode7os descargarlo de su
pVgina oficial?
XPara G=;? 9ttp?@@arduino!googlecode!co7@files@arduino."!4!:.r2.AindoAs!eGe
XPara G;5? 9ttp?@@doAnloads!arduino!cc@arduino."!:!:.r2.AindoAs!eGe

*. C0NF$GUR#C$'N DE L#S L$"RER%#S EN 2#3#
$na veP descargadas las libreras y los progra7as e7pePa7os desco7pri7iendo el
arc9ivo rxtx librerias para XX bits y el arc9ivo rBtBSerial.dll lo copia7os en la siguiente
direccin C&CPro6ra9 FilesC2avaC>reACbin donde la A vara segFn la versin de 6ava Iue
tengas instalado en el co7putador eso para arIuitectura de 2 bits!
Si es el caso de Iue usas arIuitectura de ;5 bits tienes dos opciones C&CPro6ra9
FilesC2avaC>reACbin C&CPro6ra9 Files4B,*5C2avaC>reACbin!
)9ora para el arc9ivo #$%$comm.&ar 2nosotros esta7os traba6ando con eclipse3 entonces
abri7os eclipse y da7os clicE derec9o en el proyecto en el Iue esta7os traba6ando
23


Y nos dirigi7os a PR/P*%D)D%S y nos aparece una venta co7o esta?
2(


%ntonces nos dirigi7os a Java build path luego a Libraries y con el boton Add External JARs
busca7os en nuestro disco el directorio donde desco7pri7i7os el arc9ivo #$%$comm.&ar y
da7os Abrir y luego Ok.

%l 'iperterminal no 9ay necesidad de instalarlo8 a9ora solo instala7os el VSPE y el
soft!are "rduino Iue cuando lo instala7os instala los drivers de tu placa )rduino!




2)

N0#& L#S EAPL$C#C$0NES DE#LL#D#S SE ENCUENR#N
C01EN#D#S DENR0 DE L0S C'D$G0S DUE SE PRESEN#R#N EN
ESE 1#NU#L.


+.C'D$G0 P#R# EL 1#NE20 DEL PUER0 SER$#L EN 2#3#






















//libreras necesarias
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Enumeration;

//descargar software VSP para virtualizar puertos COM
public class EscrituraSerial1 {

public static void main(String[] args) {
Enumeration puertos; //busca todos los puertos y los guarda en el objeto puertos
puertos=CommPortIdentifier.getPortIdentifiers(); //ojo tiene que tener la -s- al
ultimo porque hay otro metodo sin -s-
CommPortIdentifier portId; // identifica los puertos com
SerialPort serialport; // esta clase abre puertos
while (puertos.hasMoreElements()) { //para recorrer el numero de los puertos, y
especificar con cual quiero trabajar
//hasmorelements mientras tenga mas elementos:
portId = (CommPortIdentifier) puertos.nextElement(); //next elemento recorre
uno por uno
System.out.println(portId.getName()); //puertos disponbibles
if (portId.getName().equalsIgnoreCase("COM7")) {
try {
serialport= (SerialPort)portId.open("EscrituraSerial1", 500);//tiempo en ms
/**
Aqu se reliza la escritura la lectura del puerto serial
*/

serialport.close();
} catch (Exception e) {

}
}
}
}

}

2*

,. E>e9plo de le7t:ra y es7rit:ra para :n p:erto serial
,.1Es7rit:ra serial

(.1.1 Escritura serial mediante el m)todo !rite






public class EscrituraSerial1 {

public static void main(String[] args) {
Enumeration puertos; //busca todos los puertos y los guarda en el objeto puertos
OutputStream ops;//Declaramos la variable del tipo OutputStream para escribir los datos
puertos=CommPortIdentifier.getPortIdentifiers(); //ojo tiene que tener la -s- al ultimo
porque hay otro metodo sin -s-
CommPortIdentifier portId; // identifica los puertos com
SerialPort serialport; // esta clase abre puertos
while (puertos.hasMoreElements()) { //para recorrer el numero de los puertos, y
especificar con cual quiero trabajar
//hasmorelements mientras tenga mas eleementos
portId = (CommPortIdentifier) puertos.nextElement(); //next elemento recorre uno por
uno
System.out.println(portId.getName()); //puertos disponbibles
if (portId.getName().equalsIgnoreCase("COM7")) {
try {
serialport= (SerialPort)portId.open("EscrituraSerial1", 500);//tiempo en ms
ops=serialport.getOutputStream(); // el puerto obtendra los datos que enviemos
ops.write (" UPS".getBytes()); //get bytes transforma el string a bytes
ops.close();// cerramos la salida
serialport.close(); //cerramos el puerto
} catch (Exception e) {
}
}
}
}
}

2+

(.1.2 Escritura serial mediante el m)todo print *E&emplo donde se extrae un vector Strin+ desde
un txt,



import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Enumeration;
public class EscrituraSerial2 {
static BufferedReader extraer;

public static void main(String[] args) {
//leemos y guardamos los datos desde el txt
try {
FileInputStream F = new FileInputStream("D://q//Diez.txt");
extraer= new BufferedReader (new InputStreamReader (F));
} catch (Exception e) {
}
//declaramos e inicializamos las variables
Enumeration puertos;
puertos=CommPortIdentifier.getPortIdentifiers();
CommPortIdentifier portId;
SerialPort serialport;
PrintStream salida;
String vec[]=new String[2];
//la misma configuracion para conectarse con el puerto serial de la pagina 9
while (puertos.hasMoreElements()) {
portId = (CommPortIdentifier) puertos.nextElement();
System.out.println(portId.getName());
if (portId.getName().equalsIgnoreCase("COM7")) {
try {
serialport= (SerialPort)portId.open("EscrituraSerial2",
500);
// declaramos el objeto salida del tipo PrintStream para
relaizar la escritura
salida = new PrintStream(serialport.getOutputStream());

for (int i = 0; i < vec.length; i++) { //en este for
recorremos los datos del txt
String c=extraer.readLine();
vec[i]=c;
salida.print(vec[i]+"\n"); //enviamos al puerto serial
}
salida.close(); //cerramos la salida
serialport.close();//cerramos el puerto
} catch (Exception e) {
}}}}}

2,

,.2 Le7t:ra serial
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
public class LecturaSerial {
//inicializamos y decalramos variables
CommPortIdentifier portId;
Enumeration puertos;
SerialPort serialport;
static InputStream entrada = null;
Thread t;
//creamos un constructor para realizar la conexion del puerto
public LecturaSerial() {
super();
puertos=CommPortIdentifier.getPortIdentifiers();
t = new Thread(new LeerSerial());
while (puertos.hasMoreElements()) { //para recorrer el numero de los puertos, y
especificar con cual quiero trabajar
//hasmorelements mientras tenga mas eleementos
portId = (CommPortIdentifier) puertos.nextElement(); //next elemento recorre
uno por uno
System.out.println(portId.getName()); //puertos disponbibles
if (portId.getName().equalsIgnoreCase("COM7")) {
try {
serialport= (SerialPort)portId.open("LecturaSerial", 500);//tiempo en ms
entrada = serialport.getInputStream();//esta variable del tipo
InputStream obtiene el dato serial
t.start(); // inciamos el hilo para realizar nuestra accion de
imprimir el dato serial

} catch (Exception e) {
} } }
}
//con este metodo del tipo thread relaizamos

public static class LeerSerial implements Runnable {
int aux;
public void run () {
while(true){
try {
aux = entrada.read(); // aqui estamos obteniendo nuestro dato serial
Thread.sleep(100);
if (aux>0) {
System.out.println((char)aux);//imprimimos el dato serial
}
} catch (Exception e) {
} } }
}public static void main(String[] args) {
new LecturaSerial();
}}
2-


-. C01UN$C#C$'N 2#3#/#RDU$N0 1ED$#NE UN PUER0 SER$#L

-.1 PR0GR#1#C$'N EN #RDU$N0








byte PIN_SENSOR = A0;
int dato_serial =0; // para los datos de entrada serie
float C;
int temp;

void setup() {
Serial.begin(9600); // abre el puerto serie, establece la velocidad a 9600 bps
}

void loop() {
C = (5.0 * analogRead(PIN_SENSOR) * 100.0) / 1024;
temp=C;
// enva datos solo cuando recibe datos:
if (Serial.available() > 0) { // si ha llegado un dato serial
lectura_dato(); // realiza la operacin lectura_dato
comparacion_dato(); // llama a la funcion de comparar el dato

} }

void lectura_dato (void){
// lee el byte de entrada:
dato_serial = Serial.read();
}

void comparacion_dato (void){
if (dato_serial=='T') { // si el dato serial es la T enva la temperatura a java
Serial.write(temp);
}}

3.

-.2 PR0GR#1#C$'N EN 2#3#
%n los e6e7plos anteriores 9e7os traba6ado la lectura del puerto serial solo en consola en este
e6e7plo para una 7e6or visualiPacin de la te7peratura se 9a i7ple7entado algunos
co7ponentes de interfaP grVfica Iue son?
0teGtfield para asignar el puerto Iue tenga nuestro )rduino
0label para indicar la te7peratura dentro del 0fra7e
Dos 0button para conectar y desconectar el puerto!
SE EAPL$C#RE S0L#1ENE L# P#RE REL#C$0N#D# C0N EL PUER0 SER$#L
EL C'D$G0 C01PLE0 SE ENCUENR# EN EL S$GUE$NE ENL#CE&
9ttp?@@Ap!7e@p5Eegf.2>
Declara7os e inicialiPa7os las variables para crear la coneGin con el puerto serial de )rduino?
%sta es la configuracin de )rduino para co7unicarse con 6ava8 estas lneas van dentro de la
configuracin Iue se eGplica en la pVgina >8 pero co7o esta7os traba6ando en un 0fra7e toda la
configuracin para el puerto serial en veP de ir en el main se lo escribe dentro del constructor de la
clase?

,rea7os el 7etodo del tipo t9read done reliPare7os los procesos Iue necesite7os ya sea lectura
o escritura8 co7o es un e6e7plo de un sensor de te7peratura reliPa7os las dos opciones?
Enumeration puertos_libres =null;
CommPortIdentifier port=null;
SerialPort puerto_ser = null;
OutputStream out = null;
InputStream in = null;
int temperatura=10;
Thread timer;
try {
puerto_ser = (SerialPort) port.open("puerto serial", 2000);
int baudRate = 9600; // 9600bps

puerto_ser.setSerialPortParams(
baudRate,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
puerto_ser.setDTR(true);
out = puerto_ser.getOutputStream();
in = puerto_ser.getInputStream();

timer.resume();
}
31


Tener en cuenta Iue 6ava solo tiene una entrada as Iue cualIuier valor Iue enviW )rduino 9ay Iue
separarlo en 6ava para usar solo los Iue necesita7os8 en nuestro e6e7plo co7o solo 9e7os
configurado un sensor de te7peratura solo recibire7os ese valor!
)specto final de nuestro progra7a de e6e7plo?

private class ImplementoRunnable implements Runnable{
int aux;
public void run() {
while(true){
try {
out.write('T'); // enviamos la T a Arduino
Thread.sleep(100);
aux = in.read();// resivimos los datos de arduino

if (aux!=2){
temperatura = aux;
lblNewLabel.setText(""+temperatura+" C");
System.out.println(aux);
}repaint();

} catch (Exception e1) {
}}}}
32

Re7o9enda7iones&
Se recomienda siempre en la comunicacin serial que una vez realizada la lectura o
escritura se debe interrumpir el o los hilos y no olvidar cerrar el puerto y las
entradas y salidas de java.

Si desean visualiPar arc9ivos .&ava de for7a rVpida sin perder el realzado de
sintaxis (los colores) y la tabulacin (dependiendo del IDE) entonces instalen el
notepad-- (Es un editor de textos /pen Source).

Si deseas aprender ms acerca de la pro!ramacin en java visita nuestro sitio"
http"##upscodi!ojava.$ordpress.com#