You are on page 1of 5

19/03/13

Arduino avanzado T03AA - LCD 16x2 Men - Cosas de Mecatrnica es ahora tdrbotica.co

Arduino avanzado T03AA - LCD 16x2 Men

Este tutorial tiene la finalidad de explicar la aplicacin de una pantalla LCD en nuestros proyectos, adems profundizaremos en la manipulacin de datos en la LCD y crearemos un men para ampliar el control!!!! y como practica vamos a realizar un men para leer entradas, encender salidas e imprimir mensajes, Aspiramos que esta informacin te sirva para futuros proyectos :D

Adquiere los componentes para este proyecto en:

tdrobotica.co/tutoriales/81-arduino-2/315-arduino-avanzado-t03aa-lcd-16x2-menu?tmpl=component&print=1&layout=default&page=

1/5

19/03/13

Arduino avanzado T03AA - LCD 16x2 Men - Cosas de Mecatrnica es ahora tdrbotica.co

Estructuras de programacin

Para comprender este cdigo es recomendable que estemos familiarizados con programacin estructurada ya que nos facilita la organizacin del programa, este tipo de programacin nos trae muchas ventajas en cuanto a depuracin organizacin y comprensin de un cdigo. El componente fundamental de la programacin estructurada son las funciones, por ejemplo delay(); esta instruccin en realidad es una funcin en la cual podemos cargar valores a un contador dicho valor se carga dentro de los corchetes por ejemplo delay(500); cargamos 500 en el contador, en realidad esta funcin delay(valor del contador); esta estructurada as :

delay(contador) { while (contador interno < contador) { contador interno = cantador interno+1; } return; }

y como puedes ver con la programacin estructurada podemos omitir algunos detalles y acortar el programa principal (void loop). En esencia es lo que vamos a explicar en este tutorial; por otro lado vamos a explorar ms instrucciones que nos pueden servir para nuestros posteriores proyectos!!!!.

Recordemos adems los tipos de datos char en los que podemos almacenar los caracteres ASCII as como
tdrobotica.co/tutoriales/81-arduino-2/315-arduino-avanzado-t03aa-lcd-16x2-menu?tmpl=component&print=1&layout=default&page= 2/5

19/03/13

Arduino avanzado T03AA - LCD 16x2 Men - Cosas de Mecatrnica es ahora tdrbotica.co

cadenas de caracteres ASCII denominados String estos van directamente relacionados a los Arreglos; Los arreglos son variables con muchas posiciones una analoga seria un carro con sus asientos convirtiendo el carro en la variable y los puestos en las posiciones, todo con el fin de organizar y poder controlar datos con valores indispensables dentro del las instrucciones de la LCD.

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4

/ * L C D1 6 x 2-M e n u L aL C Dq u ev a m o sau t i l i z a re sd ec a r a c t e r e s( 1 6 x 2 )e s t oc o r r e s p o n d e a1 6c o l u m n a sy2f i l a syf u n c i o n ag r a c i a sau nH i t a c h iH D 4 4 7 8 0d r i v e r . E ne s t et u t o r i a lv a m o sah a c e ru nM e n up a r ac o n t r o l a rs a l i d a sl e e r e n t r a d a sei m p r i m i rA n u n c i o s . E lc i r c u i t o : *L C DR Sp i nv ac o n e c t a d oa ld i g i t a lp i n1 2 *L C DE n a b l ep i nc o n e c t a d oa ld i g i t a lp i n1 1 *L C DD 4p i nc o n e c t a d oa ld i g i t a lp i n5 *L C DD 5p i nc o n e c t a d oa ld i g i t a lp i n4 *L C DD 6p i nc o n e c t a d oa ld i g i t a lp i n3 *L C DD 7p i nc o n e c t a d oa ld i g i t a lp i n2 *L C DR / Wp i nc o n e c t a d oag r o u n d *l o sd o su l t i m o sa+ 5 Va n dg r o u n d *E lc a b l ed el aL C DV Ov ac o n e c t a d oal ar e f e r e n c i ad e lp o t e n c i o m e t r o * / i n tm e n u ; i n ts a l i d a ; i n tf o t o c e l d a ; S t r i n gA n u n c i o M e n u ; / / F u n c i o n e s v o i dE s t a d o ( ) ; v o i dA n u n c i o ( ) ; v o i dM e n u( ) ;

/ / C o n e x i o nl e d ,b u z z e r . / / C o n e x i o nF o t o c e l d a / / A n u n c i od ei m p r e s i o nL C D

/ / F u n c i o nE s t a d od el a ss a l i d a s / / F u n c i o np a r av i s u a l i z a rM e n s a j e / / F u n c i o np a r av i s u a l i z a re lM e n u

# i n c l u d e< L i q u i d C r y s t a l . h > / / i n c l u i m o sl al i b r e r i aL C D L i q u i d C r y s t a ll c d ( 1 2 ,1 1 ,5 ,4 ,3 ,2 ) ; / / i n i c i a l i z a m o sl o sp i n e s / / / / F u n c i o np r i n c i p a l / / v o i ds e t u p ( ){ p i n M o d e ( 1 3 , O U T P U T ) ; p i n M o d e ( 6 , O U T P U T ) ; l c d . b e g i n ( 1 6 ,2 ) ; d i g i t a l W r i t e ( 1 5 , H I G H ) ; } / / / / F u n c i o nc i c l i c l a / / v o i dl o o p ( ){
3/5

/ / L e dc o m os a l i d a / / B u z z e rc o m os a l i d a / / C o n f i g u r a m o se lt a m a od el aL C D / / R e s i s t a n c i ad eP u l l U pA 1p u l s a d o r

tdrobotica.co/tutoriales/81-arduino-2/315-arduino-avanzado-t03aa-lcd-16x2-menu?tmpl=component&print=1&layout=default&page=

19/03/13

Arduino avanzado T03AA - LCD 16x2 Men - Cosas de Mecatrnica es ahora tdrbotica.co

5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5

m e n u=a n a l o g R e a d( 0 ) ; m e n u=m a p ( m e n u , 0 , 1 0 2 3 , 0 , 3 ) ; s w i t c h( m e n u ) { c a s e0: A n u n c i o M e n u=" L E D " ; M e n u ( ) ; s a l i d a=1 3 ; E s t a d o( ) ; b r e a k ; c a s e1: A n u n c i o M e n u=" B u z z e r " ; M e n u ( ) ; s a l i d a=6 ; E s t a d o( ) ; b r e a k ; c a s e2: A n u n c i o M e n u=" F o t o c e l d a " ; M e n u ( ) ; f o t o c e l d a=a n a l o g R e a d( 2 ) ; l c d . s e t C u r s o r ( 0 ,1 ) ; l c d . p r i n t ( f o t o c e l d a ) ; b r e a k ;

/ / i g u a r d a m o sl ap o s i c i o nd e lp o t e n c i o / / E s c a l a m o se lv a l o rp a r aq u es e aM e n u / / V a l o r a m o se le s t a d pd e lM e n u / / s ie lv a l o rd ee s c a l ae si g u a la0 : / / c a r g a m o sl ai m p r e s i o n / / V a m o sa ll af u n i c i o nM e n u / / S e l e c c i o n a m o sa ll e dc o m os a l i d a / / V a m o sa ll af u n i c i o nE s t a d o / / R e t o r n o / / s ie lv a l o rd ee s c a l ae si g u a la1 : / / c a r g a m o sl ai m p r e s i o n / / V a m o sa ll af u n i c i o nM e n u / / S e l e c c i o n a m o sa lb u z z e rc o m os a l i d a / / V a m o sa ll af u n i c i o nM e n u / / R e t o r n o / / s ie lv a l o rd ee s c a l ae si g u a la2 : / / c a r g a m o sl ai m p r e s i o n / / V a m o sa ll af u n i c i o nM e n u / / C a r g a m o se lv a l o rd el af o t o c e l d a / / A s i g n a m o sl ap o s i c i o nd ei m p r e s i o n / / i m p r i m i m o se lv a l o rd el af o t o c e l d a / / R e t o r n o

c a s e3: / / s ie lv a l o rd ee s c a l ae si g u a la3 : A n u n c i o M e n u= "T u t o r i a lT 0 3 A A" ; / / c a r g a m o sl ai m p r e s i o n M e n u ( ) ; / / V a m o sa ll af u n i c i o nE s t a d o A n u n c i o ( ) ; / / V a m o sa ll af u n i c i o na n i n c i o b r e a k ; / / R e t o r n o } d e l a y ( 3 0 0 ) ; l c d . c l e a r ( ) ; } v o i dM e n u( ) { l c d . s e t C u r s o r ( 0 ,0 ) ; l c d . p r i n t ( A n u n c i o M e n u ) ; } v o i dE s t a d o ( ) { i n tb u t o n=d i g i t a l R e a d ( 1 5 ) ; i f( b u t o n= =H I G H ){ d i g i t a l W r i t e ( s a l i d a , H I G H ) ; l c d . s e t C u r s o r ( 5 ,1 ) ; l c d . p r i n t ( " O N " ) ; } e l s e{ d i g i t a l W r i t e ( s a l i d a , L O W ) ; l c d . s e t C u r s o r ( 0 ,1 ) ; l c d . p r i n t ( " O F F " ) ; / / A p a g a m o sl as a l i d a / / A s i g n a m o sl ap o s i c i o nd ei m p r e s i o n / / I m p r e s i o nd e le s t a d od el as a l i d a


4/5

/ / R e t a r d oe n t r ei m p r e s i o n e s / / B o r r a m o st o d od el ap a n t a l l a

/ / F u n c i o nd eI m p r e s i o nd e lM e n u / / A s i g n a m o sl ap o s i c i o nd ei m p r e s i o n / / i m p r i m i m o se lM e n u

/ / F u n c i o nd ev a l o r a c i o nO N / O F Fs a l i d a s / / A 1c o m oe n t a d ad i g i t a ld e lp u l s a d o r / / V a l o r a c i o ne s t a d od e lp u l s a d o r / / E n c e n d e m o sl as a l i d a / / A s i g n a m o sl ap o s i c i o nd ei m p r e s i o n / / I m p r e s i o nd e le s t a d od el as a l i d a

tdrobotica.co/tutoriales/81-arduino-2/315-arduino-avanzado-t03aa-lcd-16x2-menu?tmpl=component&print=1&layout=default&page=

19/03/13

Arduino avanzado T03AA - LCD 16x2 Men - Cosas de Mecatrnica es ahora tdrbotica.co

1 1 6 } 1 1 7 } 1 1 8 1 1 9 v o i dA n u n c i o ( ) { 1 2 0 1 2 1 l c d . s e t C u r s o r ( 0 ,1 ) ; 1 2 2 l c d . p r i n t ( " M e n uL C D ; D " ) ; } / / F i np r o g r a m a

/ / A s i g n a m o sl ap o s i c i o nd ei m p r e s i o n / / i m p r i m i m o se nl aL C D

tdrobotica.co/tutoriales/81-arduino-2/315-arduino-avanzado-t03aa-lcd-16x2-menu?tmpl=component&print=1&layout=default&page=

5/5

You might also like