You are on page 1of 10

A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

O b je t iv o : Q u e e l e s t u d ia n t e s e f a m ilia r ic e c o n o t r o s c o m p o n e n t e s y p r o g r a m a c ió n e n a r d u in o y
a d e m á s q u e im p le m e n t e u n a p lic a t iv o e n J A V A d e la in f o r m a c ió n q u e t r a n s m it e .

E je m p lo 1
T e m p e r a t u r a c o n L C D d e 1 6 c a r a c t e r e s , u t iliz a n d o lm 3 5 y p o t e n c ió m e t r o c o n a r d u in o

C ó d ig o

# in c lu d e < L iq u id C r y s t a l. h >
L iq u id C r y s t a l lc d ( 1 2 , 1 1 , 5 , 4 , 3 , 2 ) ;

f lo a t c e n t i( ) / / / / / / / / F U N C I O N P A R A C A L C U L A R G R A D O S C E N T I G R A D O S / / / / /
{
in t d a t o ;

f lo a t c ;
d a t o = a n a lo g R e a d ( A 0 ) ;

c = (5 0 0 .0 * d a to )/1 0 2 3 ;

re tu rn c ;
}
///////////////////// F IN //////////////////////////

f lo a t k e lv in ( f lo a t c e n t ) / / / / / / / / / / / / / / G R A D O S K E L V I N / / / / / / /
{

f lo a t k ;
k = c e n t+ 2 7 3 .1 5 ;

re tu rn k ;
}
//////////////////////F IN G R A D O S K E L V IN ///////////////////

f lo a t f a h r e n ( f lo a t c e n t ) / / / / / / / / / / / / / / / / / G R A D O S F A R E N H E I T / / / / / / / / /

{
f lo a t f ;

f= c e n t* 1 .8 + 3 2 ;
re tu rn f;
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

}
f lo a t r a n k in ( f lo a t c e n t )

{
f lo a t r ;

r= (c e n t+ 2 7 3 .1 5 )* 1 .8 ;
re tu rn r;
}

v o id s e t u p ( )
{

lc d . b e g in ( 1 6 , 2 ) ;
lc d . p r in t ( " C : F :");

lc d . s e t C u r s o r ( 0 , 1 ) ;
lc d . p r in t ( " K : R :");
}

v o id lo o p ( )
{

f lo a t c e n t ig r a d o s = c e n t i( ) ;
f lo a t F a h r e n h e it = f a h r e n ( c e n t ig r a d o s ) ;

f lo a t K e lv in = k e lv in ( c e n t ig r a d o s ) ;
f lo a t R a n k in = r a n k in ( c e n t ig r a d o s ) ;

lc d . s e t C u r s o r ( 2 , 0 ) ;
lc d . p r in t ( c e n t ig r a d o s ) ;

lc d . s e t C u r s o r ( 1 0 , 0 ) ;

lc d . p r in t ( F a h r e n h e it ) ;

lc d . s e t C u r s o r ( 2 , 1 ) ;

lc d . p r in t ( K e lv in ) ;

lc d . s e t C u r s o r ( 1 0 , 1 ) ;
lc d . p r in t ( R a n k in ) ;

d e la y ( 2 0 0 ) ;

}
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

E je m p lo 2
E n b a s e a l s ig u ie n t e c ó d ig o , e la b o r e e l c ir c u it o e n a r d u in o y s im u le lo e n J a v a .

C ó d ig o e n ja v a .

p a c k a g e javaduino;

i m p o r t gnu.io.CommPortIden t i f i e r ;
i m p o r t gnu.io.SerialPort;
i m p o r t java.util.Enumerati o n ;

p u b l i c class Javarduino ex t e n d s j a v a x . s w i n g . J F r a m e {

/ * *
* Creates new form Ja v a r d u i n o
* /
p r i vate static final S t r i n g T U R N _ A m a r i l l o _ O F F = " 0 " ;
p r i vate static final S t r i n g T U R N _ A m a r i l l o _ O N = " 1 " ;
p r i vate static final S t r i n g T U R N _ R o j o _ O F F = " 2 " ;
p r i vate static final S t r i n g T U R N _ R o j o _ O N = " 3 " ;

/ * * declaracion de lib r e r i a s * /
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

p r i vate OutputStrean o u t p u t = n u l l ;
S e r ialPort serialPort;
p r i vate final String P U E R T O = " C O M 2 1 " ;
p r i vate static final i n t T I M E O U T = 2 0 0 0 ;
p r i vate static final i n t D A T A _ R E A D = 9 6 0 0 ;

p u b lic Javarduino() {
initComponents();
inicializarConexion ( ) ;
}
p u b lic void inicializa r C o n e x i o n ( ) {
CommPortIdentifier p u e r t o I D = n u l l ;
Enumeration
p u e r t o E num=Comm PortIdentifi e r . g e t P o r t I d e n t i f i e r s ( ) ;

while(puertoEnum.ha s M o r e E l e m e n t s ( ) ) {
CommPortIdentif i e r a c t u a l P u e r t o I D = ( C o m m P o r t I d e n t i f i e r )
p u e r t o E num.nextElement();
if(PUERTO.equal s ( a c t u a l P u e r t o I D . g e t N a m e ( ) ) ) {
puertoID=ac t u a l P u e r t o I D ;
break;
}
}

if(puertoID==null){
mostrarerror("n o s e p u e d e c o n e x t a r e l p u e r t o " ) ;
System.exit(ERR O R ) ;
return;
}
try {
serialPort =(Se r i a l P o r t )
p u e r t o I D.open(this.getClas s ( ) . g e t N a m e ( ) , T I M E O U T ) ;
//CONFIGURAR PA R A M E T R O S
serialPort.setS e r i a l P o r t P a r a m s ( D A T A _ R E A D ,
S e r i a l P ort.DATABITS_8, Ser i a l P o r t . S T O P B I T S _ 1 ,
S e r i a l P ort.PARITY_NONE);
output = serial P o r t . g e t O u t p u t S t r e a m ( ) ;

} catch(Exception e ) {
mostrarerror(e. g e t M e s s a g e ( ) ) ;
System.exit(ERR O R ) ;
}
}
@ S u ppressWarnings("unc h e c k e d " )
/ / <editor - fold default s t a t e = " c o l l a p s e d " d e s c = " G e n e r a t e d
C o d e " > / /GEN -BEGIN:initCompo n e n t s
p r i vate void initCompo n e n t s ( ) {

jButton1 = new java x . s w i n g . J B u t t o n ( ) ;


jButton2 = new java x . s w i n g . J B u t t o n ( ) ;
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

jLabel1 = new javax . s w i n g . J L a b e l ( ) ;


jLabel2 = new javax . s w i n g . J L a b e l ( ) ;
jRadioButton1 = new j a v a x . s w i n g . J R a d i o B u t t o n ( ) ;
jRadioButton2 = new j a v a x . s w i n g . J R a d i o B u t t o n ( ) ;

s e t D e f a ultCloseOperation(j a v a x . s w i n g . W i n d o w C o n s t a n t s . E X I T _ O N _ C L O S E
) ;

jButton1.setT ext("O n " ) ;

jButton2.setText("O f f " ) ;

jLabel1.setText("jL a b e l 1 " ) ;
jLabel1.setMaximumS i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;
jLabel1.setMinimumS i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;
jLabel1.setPreferre d S i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;

jLabel2.setText("jL a b e l 2 " ) ;
jLabel2.setMaximumS i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;
jLabel2.setMinimumS i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;
jLabel2.setPrefer re d S i z e ( n e w j a v a . a w t . D i m e n s i o n ( 5 0 , 5 0 ) ) ;

jRadioButton1.setTe x t ( " j R a d i o B u t t o n 1 " ) ;

jRadioButton2.setTe x t ( " j R a d i o B u t t o n 2 " ) ;

javax.swing.GroupLa y o u t l a y o u t = n e w
j a v a x . s wing.GroupLayout(ge t C o n t e n t P a n e ( ) ) ;
getContentPane().se t L a y o u t ( l a y o u t ) ;
layout.setHorizonta l G r o u p (

l a y o u t . createParallelGroup ( j a v a x . s w i n g . G r o u p L a y o u t . A l i g n m e n t . L E A D I
N G )
.addGroup(layou t . c r e a t e S e q u e n t i a l G r o u p ( )
.addGap(23, 2 3 , 2 3 )

. a d d G r o up(layout.c reatePara l l e l G r o u p ( j a v a x . s w i n g . G r o u p L a y o u t . A l i gn
m e n t . L E ADING)
.addGro u p ( l a y o u t . c r e a t e S e q u e n t i a l G r o u p ( )
.ad d C o m p o n e n t ( j B u t t o n 1 )

. a d d P r e ferredGap(javax.swi n g . L a y o u t S t y l e . C o m p o n e n t P l a c e m e n t . R E L A TE
D , j a v a x.swing.GroupLayout . D E F A U L T _ S I Z E , S h o r t . M A X _ V A L U E )
.ad d C o m p o n e n t ( j B u t t o n 2 )
.ad d G a p ( 3 6 , 3 6 , 3 6 ) )
.addGro u p ( l a y o u t . c r e a t e S e q u e n t i a l G r o u p ( )
.ad d C o m p o n e n t ( j L a b e l 1 ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E ,
j a v a x . s wing.GroupLayout.DE F A U L T _ S I Z E ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E )
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

. a d d P r e ferredGap(javax.swi n g . L a y o u t S t y l e . C o m p o n e n t P l a c e m e n t . R E L A T E
D , 7 6 , Short.MAX_VALUE)
.ad d C o m p o n e n t ( j L a b e l 2 ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E ,
j a v a x . s wing.GroupLayout.DE F A U L T _ S I Z E ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E )
.ad d G a p ( 4 4 , 4 4 , 4 4 ) )
.addGro u p ( l a y o u t . c r e a t e S e q u e n t i a l G r o u p ( )

. a d d G r o up(layout.createPar a l l e l G r o u p ( j a v a x . s w i n g . G r o u p L a y o u t . A l i g n
m e n t . L E ADING)
. a d d C o m p o n e n t ( j R a d i o B u t t o n 2 )
. a d d C o m p o n e n t ( j R a d i o B u t t o n 1 ) )
.ad d G a p ( 0 , 0 , S h o r t . M A X _ V A L U E ) ) ) )
);
layout.setVerticalG r o u p (

l a y o u t . createParallelGroup ( j a v a x . s w i n g . G r o u p L a y o u t . A l i g n m e n t . L E A D I
N G )
.addGroup(javax . s w i n g . G r o u p L a y o u t . A l i g n m e n t . T R A I L I N G ,
l a y o u t . createSequentialGro u p ( )
.addGap(37, 3 7 , 3 7 )
.addCompone n t ( j R a d i o B u t t o n 1 )
.addGap(29, 2 9 , 2 9 )
.addCompone n t ( j R a d i o B u t t o n 2 )

. a d d P r e ferredGap(javax.swi n g . L a y o u t S t y l e . C o m p o n e n t P l a c e m e n t . R E L A T E
D , 1 0 6 , Short.MAX_VALUE)

. a d d G r o up(layout.createPar a l l e l G r o u p ( j a v a x . s w i n g . G r o u p L a y o u t . A l i g n
m e n t . B A SELINE)
.addCom p o n e n t ( j L a b e l 1 ,
j a v a x . swing.GroupLayout.PRE F E R R E D _ S I Z E ,
j a v a x . s wing.GroupLayout.DE F A U L T _ S I Z E ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E )
.addCom p o n e n t ( j L a b e l 2 ,
j a v a x . s wing.GroupLayout.PR E F E R R E D _ S I Z E ,
j a v a x . s wing.GroupLayout.DE F A U L T _ S I Z E ,
j a v a x . s wing.GroupLayout .PRE F E R R E D _ S I Z E ) )
.addGap(18, 1 8 , 1 8 )

. a d d G r o up(layout.createPar a l l e l G r o u p ( j a v a x . s w i n g . G r o u p L a y o u t . A l i g n
m e n t . B A SELINE)
.addCom p o n e n t ( j B u t t o n 1 )
.addCom p o n e n t ( j B u t t o n 2 ) )
.addContain e r G a p ( ) )
);

pack();
}
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

p u b lic static void mai n ( S t r i n g a r g s [ ] ) {


try {
for (javax.swin g . U I M a n a g e r . L o o k A n d F e e l I n f o i n f o :
j a v a x . s wing.UIManager.getI n s t a l l e d L o o k A n d F e e l s ( ) ) {
if ("Nimbu s " . e q u a l s ( i n f o . g e t N a m e ( ) ) ) {

j a v a x . s wing.UIManager.setL o o k A n d F e e l ( i n f o . g e t C l a s s N a m e ( ) ) ;
break;
}
}
} catch (ClassNotFo u n d E x c e p t i o n e x ) {

j a v a . u t il.logging.Logger .ge t L o g g e r ( J a v a r d u i n o . c l a s s . g e t N a m e ( ) ) . l og
( j a v a . u til.logging.Level.S E V E R E , n u l l , e x ) ;
} catch (Instantiat i o n E x c e p t i o n e x ) {

j a v a . u t il.logging.Logger.g e t L o g g e r ( J a v a r d u i n o . c l a s s . g e t N a m e ( ) ) . l o g
( j a v a . u til.logging.Level.S E V E R E , n u l l , e x ) ;
} catch (IllegalAcc e s s E x c e p t i o n e x ) {

j a v a . u t il.logging.Logger.g e t L o g g e r ( J a v a r d u i n o . c l a s s . g e t N a m e ( ) ) . l o g
( j a v a . u til.logging.Level.S E V E R E , n u l l , e x ) ;
} catch (javax.swin g . U n s u p p o r t e d L o o k A n d F e e l E x c e p t i o n e x ) {

j a v a . u t il.l ogging.Logger.ge t L o g g e r ( J a v a r d u i n o . c l a s s . g e t N a m e ( ) ) . l o g
( j a v a . u til.logging.Level.S E V E R E , n u l l , e x ) ;
}

java.awt.EventQueue . i n v o k e L a t e r ( n e w R u n n a b l e ( ) {
public void run ( ) {
new Javardu i n o ( ) . s e t V i s i b l e ( t r u e ) ;
}
});
}

/ / Variables declarati o n - d o n o t m o d i f y / / G E N - B E G I N : v a r i a b l e s
p r i vate javax.swing.JB u t t o n j B u t t o n 1 ;
p r i vate javax.swing.JB u t t o n j B u t t o n 2 ;
p r i vate javax.swing.JL a b e l j L a b e l 1 ;
p r i vate javax.swing.JL a b e l j L a b e l 2 ;
p r i vate javax.swing.JR a d i o B u t t o n j R a d i o B u t t o n 1 ;
p r i vate javax.swing.JR a d i o B u t t o n j R a d i o B u t t o n 2 ;
/ / End of variables de c l a r a t i o n / / G E N - E N D : v a r i a b l e s
}
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

E je m p lo 3 .

U t iliz a r S e n s o r d e P r o x im id a d , e n b a s e a la s ig u ie n t e f ig u r a m o d if iq u e e l c ó d ig o en a r d u in o e
in s t a le u n a b o c in a p a r a e s c u c h a r u n a a la r m a c u a n d o s e a p r o x im a a u n o s 1 0 c m .

lo n g d is t a n c ia ;
lo n g t ie m p o ;

v o id s e t u p ( ) {
S e r ia l. b e g in ( 9 6 0 0 ) ;

p in M o d e ( 9 , O U T P U T ) ; / * a c t iv a c ió n d e l p in 9 c o m o s a lid a : p a r a e l p u ls o u lt r a s ó n ic o * /
p in M o d e ( 8 , I N P U T ) ; / * a c t iv a c ió n d e l p in 8 c o m o e n t r a d a : t ie m p o d e l r e b o t e d e l u lt r a s o n id o * /

p in M o d e ( 1 3 , O U T P U T ) ;
}
v o id lo o p ( ) {

d ig it a lW r it e ( 9 , L O W ) ;
d ig it a lW r it e ( 9 , H I G H ) ;

d e la y M ic r o s e c o n d s ( 1 0 ) ;
t ie m p o = p u ls e I n ( 8 , H I G H ) ; / * F u n c ió n p a r a m e d ir la lo n g it u d d e l p u ls o e n t r a n t e . M id e e l t ie m p o

q u e t r a n s c u r r id o e n t r e e l e n v ío
d e l p u ls o u lt r a s ó n ic o y c u a n d o e l s e n s o r r e c ib e e l r e b o t e , e s d e c ir : d e s d e q u e e l p in 1 2 e m p ie z a a
r e c ib ir e l r e b o t e , H I G H , h a s t a q u e

d e ja d e h a c e r lo , L O W , la lo n g it u d d e l p u ls o e n t r a n t e * /
d is t a n c ia = in t ( 0 . 0 1 7 * t ie m p o ) ; / * f ó r m u la p a r a c a lc u la r la d is t a n c ia o b t e n ie n d o u n v a lo r e n t e r o * /

/ * M o n it o r iz a c ió n e n c e n t ím e t r o s p o r e l m o n it o r s e r ia l* /
S e r ia l. p r in t ln ( " D is t a n c ia " ) ;

S e r ia l. p r in t ln ( d is t a n c ia ) ;
S e r ia l. p r in t ln ( " c m " ) ;
d e la y ( 1 0 0 0 ) ;

}
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

E je m p lo 4
E n b a s e a l s ig u ie n t e c ó d ig o . E x p lic a r q u e h a c e y r e a liz a r e l C ir c u it o .

in t t ie m p o = 1 0 0 ;
in t p in ;

v o id s e t u p ( )
{
f o r ( p in = 8 ; p in < = 1 3 ; p in + + )

{
p in M o d e ( p in , O U T P U T );

}
}

v o id s e c u e n c ia _ u n o ( )
{
f o r ( p in = 8 ; p in < = 1 2 ; p in + + )

{
d ig it a lW r it e ( p in , H I G H ) ;

d e la y ( t ie m p o ) ;
d ig it a lW r it e ( p in , L O W ) ;

d e la y ( t ie m p o ) ;

}
v o id s e c u e n c ia _ d o s ( )

{
f o r ( p in = 1 2 ; p in > = 8 ; p in - - )

{
d ig it a lW r it e ( p in , H I G H ) ;
d e la y ( t ie m p o ) ;

d ig it a lW r it e ( p in , L O W ) ;
d e la y ( t ie m p o ) ;

}
v o id s e c u e n c ia _ t r e s ( )
{

f o r ( p in = 9 ; p in < = 1 1 ; p in + + )
{

d ig it a lW r it e ( p in , H I G H ) ;
d e la y ( 5 0 0 ) ;

d ig it a lW r it e ( p in , L O W ) ;
d e la y ( 5 0 0 ) ;

}
}

v o id lo o p ( )
{

s e c u e n c ia _ u n o ( ) ;
s e c u e n c ia _ d o s ( ) ;
A R C - 1 1 5 , L a b o r a t o r io A r d u in o , P r im e r o s p a s o s g u ía 2

/ / s e c u e n c ia _ t r e s ( ) ;
}

You might also like