arduinoy código de programación
TRANSCRIPT
-
8/18/2019 Arduinoy código de programación
1/14
MATERIAL REQUERIDO.
Arduino Uno o similar . Esta sesión acepta cualquier otro modelode Arduino.
Una Protoboard .
Cables de protoboard
Un Potenciómetro.
Un display LCD, de 16× o 16×!.
LOS DISPLAYS LCD
http://www.prometec.net/categoria-producto/arduinos/http://www.prometec.net/producto/protoboard-830/http://www.prometec.net/producto/cables-dupont-macho-macho/http://www.prometec.net/producto/protoboard-830/http://www.prometec.net/producto/cables-dupont-macho-macho/http://www.prometec.net/categoria-producto/arduinos/
-
8/18/2019 Arduinoy código de programación
2/14
Los displays LEDs de 7 segmentos !"e #imos en las sesiones ante$io$es est%nm"y &ien son &a$atos y p$%'ti'os pe$o tienen el in'on#eniente de !"e nop"eden most$a$ mensa(es de te)to sino solo n*me$os.
Se e'+a de menos alg*n sistema pa$a most$a$ mensa(es de te)to sen'illos ypo$ eso se 'ome$'iali,an los displays LCD. Son -a'iles de en'ont$a$ en di#e$sos-o$matos /012 3/0 'a$a'te$es ) 2 l4neas5 o LCD /016 3/0 'a$a'te$es )6l"nes5.
LCD #iene del ingl s Li!"id C$ystal Display o sea Pantalla de '$istal li!"ido.
Son "na op'i8n m"y sen'illa de "sa$ y adem%s dan "n to!"e m"y p$o a#"est$os p$oye'tos y po$ eso en los *ltimos a9os los displays LCD +an ganadom"'+a a'epta'i8n en p$od"'tos 'ome$'iales de todo tipo.
:%si'amente po$!"e
;Son &a$atos.
;Est%n disponi&les en #a$ios tama9os y 'ona,te a la idea. C"al!"ie$ ot$a sol"'i8n
a'a&a$a -"n'ionando mal o di$e'to$amente 'on el display !"emado.
C"ando lo tengas listo pin'+a el display en la p$oto&oa$d de(ando sitio pa$a el$esto de 'omponentes y 'a&les $e'"e$da !"e +a&$% m"'+os as4 !"e segene$oso 'on el espa'io !"e de(as.
-
8/18/2019 Arduinoy código de programación
3/14
DIA?RAMA DE CO@E IB@
-
8/18/2019 Arduinoy código de programación
4/14
Esquema para protoboard
Cone'ta tensi8n y ?@D a la p$oto&oa$d.
-
8/18/2019 Arduinoy código de programación
5/14
-
8/18/2019 Arduinoy código de programación
6/14
Si todo +a ido &ien ya podemos en'ende$ el dispay y p$o&a$lo. Cone'ta elUS: a t" A$d"ino y #eamos. Si #as gi$ando el poten'i8met$o en alg*nmomento tienes !"e #e$ "nos '"ad$aditos en la pantalla en 'aso 'ont$a$io$e#isa las 'one)iones. @o sigas si no #es esto.
Si ya #eis las mat$i'es de p"ntos en la pantalla podemos seg"i$.
amos a 'one'ta$ ya los pines de datos y 'ont$ol. Sin ent$a$ en m"'+osdetallas no #amos a "sa$ todos los pines disponi&les po$!"e no losne'esitamos. Solo "sa$emos dos pines de 'ont$ol RS y E@ y los 6 pines dedatos D7 D0 D y D6 . @o ne'esitamos mas po$ a+o$a.
-
8/18/2019 Arduinoy código de programación
7/14
amos 'on las 'one)iones de 'ont$ol del display
RW, LCD pin 5 GND
RS, LCD pin 4 Arduino pin 7
EN, LCD pin 6 Arduino pin 8
Y ya solo nos !"edan los 6 'a&les de datos.
DB7, LCD pin 14 Arduino pin 12
DB6, LCD pin 13 Arduino pin 11
DB5, LCD pin 12 Arduino pin 10
DB4, LCD pin 11 Arduino pin 9
-
8/18/2019 Arduinoy código de programación
8/14
EL PRO?RAMA DE CO@TROL
amos a "sa$ "na li&$e$4a de 'ont$ol del panel LCD !"e #iene in'l"ida enn"est$o A$d"ino. Pin'+ad en
\\ ro!r"#"\$#por%"r Li&r'ri"\Li(uidCr)*%"+
Y a+o$a podemos impo$ta$ "no de los e(emplos o es'$i&i$ el n"est$o'omentando el '8digo.Lo p$ime$o es !"e al impo$ta$ la li&$e$4a nos +a es'$itoesto
in-+ud' .Li(uidCr)*%"+/
Desp"es +ay !"e ini'iali,a$ la li&$e$4a. C$eamos "na instan'ia llamada l'd dela 'lase Li!"idC$ystal y le pasamos 'omo pa$%met$os los pines !"e +emos"sado
Li(uidCr)*%"+ +-d 7, 8, 9, 10, 11, 12 RS, EN, d4, d5, d6, d7
• '"idado po$!"e los pines !"e +emos "sado no 'o$$esponden a lose(emplos de A$d"ino as4 !"e pod is 'a$ga$los pe$oaseg"$a$os de'am&ia$ la l4nea de de
-
8/18/2019 Arduinoy código de programación
9/14
+-d/prin% #i++i* 1000 prin% % ' nu#&'r o: *'-ond* *in-'
r'*'%=
<
GC"idado Como siemp$e la p$ime$a linea la s"pe$io$ es la linea H y laseg"nda la linea /.
Estos display son m"y pesados de 'a&lea$ pe$o m"y sen'illos de "tili,a$.
amos a p$o&a$ sa'ando "n $elo( 3m"y sen'illo de momento5. Si $e'o$d%is las-"n'iones !"e "samos en las "ltimas sesiones podemos $e'"pe$a$ alg"na pa$ap$esenta$ el #alo$ de millis35 'omo "n $elo(
in-+ud' .Li(uidCr)*%"+/
Li(uidCr)*%"+ +-d 7, 8, 9, 10, 11, 12
oid *'%up
+-d/&'!in 16, 2 i "#o* '+ nu#'ro d' -"r"-%'r'* )
:i+"*
+-d/prin% ; ro#'%'-/n'%; A(i " '+ #'n*" '
<
oid +oop
+-d/*'%Cur*or 6, 1 on%' 'n +" +in' 1, po*i-ion 6
S%rin! * > r'+o
+-d/prin% *
-
8/18/2019 Arduinoy código de programación
10/14
<
S%rin! r'+o
in% n > #i++i* 1000 Lo p"*"#o* " *'!undo*
in% *'!undo* > n ? 60
in% #inu%o* > n 60
S%rin! S > S%rin! #inu%o* @ ;=; @ S%rin! *'!undo*
r'%urn S
<
Me$e'e la pena 'omenta$ alg"nas 'osas de este '8digo. En p$ime$ l"ga$ en la-"n'i8n $elo( 'al'"lamos los min"tos y seg"ndos a pa$ti$ del $elo( inte$no deA$d"ino en miliseg"ndos no +ay nada n"e#o en esto. Pe$o
-
8/18/2019 Arduinoy código de programación
11/14
+-d/prin% *
Pa$a sa'a$ el mensa(e de te)to. Todo lo !"e ya sa& is de Se$ial.p$int35 se "sae)a'tamente ig"al 'on esta inst$"''i8n. Y po$ *ltimo tenemos "na l4nea 'omoesta
+-d/*'%Cur*or 6, 1 on%' 'n +" +in' 1, po*i-ion 6
Q"e lo !"e +a'e es posi'iona$ el '"$so$ del panel en la posi'i8n 0 de laseg"nda l4nea pa$a es'$i&i$ la +o$a 'ent$ada. A!"4 os de(o "n mini #ideo 'on el$es"ltado.
La li&$e$4a LCD #iene 'on #a$ios e(emplos m"y inte$esantes !"e os 'on#ienep$o&a$. Re'o$dad simplemente !"e ten is !"e 'am&ia$ las de
-
8/18/2019 Arduinoy código de programación
12/14
&)%' !r"do 8 >
0&00001100, Lo* d':ini#o* -o#o &in"rio* 0&
0&00010010,
0&00010010,
0&00001100,
0&00000000,
0&00000000,
0&00000000,
0&00000000
<
Para montar los caracteres de"inidos usamos#
+-d/-r'"%'C "r 0, 'uro
+-d/-r'"%'C "r 1, !r"do
$ a%ora ya estan disponibles. &ened en cuenta que solo podemos de"inir ' caracteres
especiales en un momento dado ( Aunque podemos de"inir )* arrays, de caracteres y crearlos
y matarlos sobre la marc%a+.
Aqui tenemos un e emplo del pro-rama#
in-+ud' .Li(uidCr)*%"+/
Li(uidCr)*%"+ +-d 7, 8, 9, 10, 11, 12
&)%' !r"do 8 >
-
8/18/2019 Arduinoy código de programación
13/14
0&00001100,
0&00010010,
0&00010010,
0&00001100,
0&00000000,
0&00000000,
0&00000000,
0&00000000
<
oid *'%up
+-d/&'!in 16, 2 ") (u' ini-i"+i "r '+ LCD
+-d/-r'"%'C "r 1, !r"do
+-d/*'%Cur*or 0, 0
+-d/prin% ;E*%"#o* " 25;
+-d/Fri%' 1
<
oid +oop
<
Y a!"i teneis "na -oto del $es"ltado
-
8/18/2019 Arduinoy código de programación
14/14