You are on page 1of 11

1

Tema: Arduino y Comunicacin Serial con Visual Basic


1. Utilizar el puerto USB como dispositivo de comunicacin externo.
2. Realizar programas de Visual Basic que se comuniquen con Arduino.
3. Realizar Setc!es de Arduino que reci"an rdenes # env$en datos a la %&.
'. Realizar aplicaciones de mane(o de !ard)are externo com"inando las plata*ormas.
+o &antidad
,escripcin
1
2
3
'
-
.
/
0
1
12
1
1
1
'
'
1
1
1
1
varios
Una computadora con sistema operativo 3indo)s # con el
programa Arduino 4,5 instalados
&a"le USB 6tipo A !acia tipo B7
8ar(eta Arduino U+9 R2 o R3
Resistencias de './:
;5,s
%otencimetro de -<:
Bread"oard
%inza
&ortadora
&a"les U8%
Visual Basic y Puerto Serie
;a inter*az serie as$ncrona es el principal dispositivo de comunicacin de sistema a sistema.
As$ncrono signi*ica que no !a# presente una se=al de sincronizacin o de relo(. &ada
car>cter est> enmarcado entre se=ales de inicio # parada. Un solo "it 2? denominado "it de
inicio? precede a cada car>cter para indicar al sistema que los siguientes 0 "its constitu#en
un "#te de datos. Uno o dos "its en alto siguen al car>cter para se=alar que dic!o car>cter !a
sido enviado.
8rama en una transmisin as$ncrona@
Objetivos Especficos
Material y Equipo
Introduccin Terica
Facultad: Ingeniera
Escuela: Electrnica
signatura: Interfaces y !erif"ricos
Interfaces y Perifricos, Gua 3
2
Aigura 1. 8rama As$ncrona
5l puerto serie en una computadora est> compuesto por varias entradasBsalidas. ,ispuestas
en un conector del tipo ,B1 o ,B2-? tal como se muestra en la siguiente *igura@
Aigura 2. a7 &onector ,B2-? "7 &onector ,B1
;a distri"ucin de las se=ales en cada uno de sus pines es la siguiente@
Se=al ,escripcin
C+, o SC 2 Voltios
8x, Salida para transmisin de datos
Rx, 5ntrada para recepcin de datos
R8S 6Request 8o Send7 Salida que indica una peticin de env$o
&8S 6&lear 8o Send7 ,ispuesto para enviar? entrada por donde le indica el otro
dispositivo que #a puede enviar los datos.
,SR 6,ata Set Read#7 ,ispositivo de datos preparado? entrada por donde le
indica el otro dispositivo que #a est> listo.
,&, o &, 5ntrada para la deteccin de portadora
,8R 6,ata 8erminal Read#7 Salida? terminal de datos listo
Interfaces y Perifricos, Gua 3
3
Microsoft Comm Control 6.0
5s el control que permite la comunicacin de una aplicacin !ec!a en Visual Basic . con el
puerto serie. +o est> en la ca(a de !erramientas por de*ecto? de"e introducirse mediante el
menD %ro#ecto # luego &omponentes. 5n el *ormulario solamente se ve en tiempo de dise=o.
%ara !a"ilitar la !erramienta del puerto serie en Visual Basic realice lo siguiente@ Seleccione
la opcin Proyecto>>Componentes? al aparecer el listado de componentes seleccionar@
Microsoft comm control 6.0? dE clic en aceptar? lo que provocar> que la "arra de
!erramientas cam"ie como se muestra en la *igura 3.
Aigura 3. FS&9FF &ontrol
Propiedades
5ntre las propiedades del FS&9FF &ontrol !a# algunas que pueden esta"lecerse en
tiempo de dise=o o en tiempo de e(ecucin? # otras que solamente se pueden esta"lecer o
consultar en tiempo de e(ecucin.
A continuacin se enuncian algunas propiedades de este control
Interfaces y Perifricos, Gua 3
4
Propiedades que se establecen en tiempo de diseo o ejecucin
&omm%ort 4ndica el nDmero del puerto serie a utilizar? admite valores del 1 al 2--?
Ceneralmente las %& tienen dos puertos seriales@ &om1 # &om2? si se le
coloca un nDmero de puerto inexistente dar> error
Settings 4ndica ' par>metros en orden@ velocidad? paridad? nDmero de "its # "its
de parada que se usar>n en la comunicacin
4nBu**erSize Fediante esta propiedad se esta"lece el tama=o del "u**er de entrada.
%uede conocerse el nDmero de caracteres presentes en el "u**er de
entrada consultando el valor de la propiedad 4nBu**er&ount
9utBu**erSize Fediante esta propiedad se controla el tama=o del "u**er de salida.
%uede conocerse el nDmero de caracteres presentes en el "u**er de
salida 6los que aDn est>n transmitirse7? consultando el valor de la
propiedad 9utBu**er&ount
Propiedades que se establecen slo en tiempo de ejecucin
%ort9pen A"re el puerto de comunicacin. %uede tener los valores 8rue 6para
a"rirlo7 # Aalse 6para cerrarlo7
4nBu**er&ount %ermite averiguar cu>ntos caracteres se tienen en el "u**er de entrada
9utBu**er&ount %ermite conocer cu>ntos caracteres quedan por transmitir en el "u**er de
salida
9utput 5nv$a caracteres al "u**er de salida
4nput ;ee el "u**er de recepcin
5l control Ficroso*t &omm &ontrol ..2 tiene por de*ecto el nom"re FS&omm1. %ara
esta"lecer o consultar una propiedad se de"e utilizar la siguiente sintaxis
FS&omm1.%ropiedad
%or e(emplo? para a"rir el puerto se coloca MSComm1.Portopen=True
%ara leer el puerto Buffer=MSComm1.Input
%ara escri"ir en el puerto MSComm1.Output=dato
,e igual *orma con las dem>s propiedades
Manejo de Perif!ricos "nal#icos Mediante "rduino.
;a plata*orma Arduino? "asada en microcontrolador AVR? !ereda la capacidad intr$nseca de
dic!o microcontrolador para mane(ar peri*Ericos analgicos mediante tEcnicas de conversin
espec$*icas. ,ic!as tEcnicas consisten en la conversin analgica a digital 6A,&7 #
modulacin por anc!o de pulso 6%3F7. &ada una permite interactuar con peri*Ericos
analgicos que proveen in*ormacin de entrada 6A,&7 o que aceptan in*ormacin de salida
6%3F7
Con$ersin anal#ica a di#ital.
5l microcontrolador cuenta con un A,& integrado en el mismo c!ip? que permite tomar
Interfaces y Perifricos, Gua 3
5
lecturas analgicas de volta(e de un dispositivo que genere tensiones entre 2 # -V. ;a
con*iguracin de dic!o mdulo es autom>tica? "astando solamente con invocar la *uncin de
lectura de datos? la cual se detalla a continuacin@
analo#%ead&numero'pin() Realiza la lectura so"re el pin analgico que se le especi*ique
6Slo se permiten los pines A2 al A-7. 5l valor que devuelve es un nDmero entero
proporcional al volta(e de entrada? de tal *orma que si se introducen 2V devuelve un valor de
2 # si se introducen -V devuelve un valor de 1223? con todos los volta(es intermedios se
producen valores distri"uidos linealmente a lo largo de este intervalo.
+tese que no es necesario con*igurar previamente un pin analgico para poderlo usar con
esta *uncin.
"d$ertencia) 5l rango v>lido para los volta(es de entrada es solamente de 2 a -V. Si
introduce volta(es negativos? o "ien? volta(es positivos arri"a de -V? podr> da=ar de manera
permanente el dispositivo.
Modulacin por anc*o de pulso &P+M(.
5l Ficrocontrolador AVR cuenta tam"iEn con dispositivos temporizadores que permiten
generar se=ales externas? las cuales emplean la modulacin por anc!o de pulso para
mane(ar cargas que sean compati"les con este esquema. Vale aclarar que la tEcnica en s$?
es completamente di*erente de la conversin digital a analgica 6,A&7? puesto que no se
generan tensiones analgicas constantes 6por e(emplo entre 2 # -V7 en ningDn momento?
sino que m>s "ien la carga es encendida # apagada r>pidamente? produciendo un e*ecto
equivalente a proveer un nivel de potencia intermedio? que puede variar entre completamente
apagado # completamente encendido. Adem>s? de manera similar al A,&? los mdulos
temporizadores son inicializados de manera autom>tica? "astando con invocar la *uncin que
se detalla a continuacin@
analo#+rite&numero'pin, ciclo'de'trabajo() Cenera una se=al %3F so"re un pin digital
que tenga esa capacidad 6denotado con G7. 5l rango v>lido para el ciclo de tra"a(o va desde
2 6completamente apagado7 !asta 2-- 6completamente encendido7.
+tese que no todas las cargas son compati"les con la modulacin %3F? por lo que se
recomienda que se in*orme antes de emplearla con algDn dispositivo en particular. ;a tEcnica
*unciona "ien con algunas cargas como ;5,s # motores ,& peque=os? mas no con cargas
como relEs o motores ,& sin esco"illas 6como los ventiladores para c!as$s de computadora7.
Parte -. .ectura de entradas anal#icas.
1. %roceda a ensam"lar el circuito (unto con el Arduino. Si cuenta con con un
potencimetro que permita conectar ca"les directamente a El? puede conectarlo
directamente al Arduino sin una "read"oard. Recuerde que no es necesaria una
*uente de suministro externa.
!rocedimiento
Interfaces y Perifricos, Gua 3
6
Aigura '. ,iagrama de circuito parte 1.
2. A"ra Visual Basic # genere el siguiente *ormulario? a continuacin introduzca el
siguiente cdigo *uente en el mismo@
Aigura -. Aormulario para parte 1.
%rivate Su" Aorm ;oad67
8imer1.4nterval H'22
FS&omm1.&omm%ort H ' IA(ustar al puerto real de su arduino en su %&
FS&omm1.Settings H J1.22?n?0?1J
FS&omm1.4nputFode H com4nputFode8ext
FS&omm1.%ort9pen H 8rue
5nd Su"
%rivate Su" 8imer1K8imer67
,im valor As 4nteger
,im voltage As Single
IVeri*ica si existen datos en el "u**er del puerto
4* FS&omm1.4nBu**er&ount LM 2 8!en
ISi existen datos los retira
Interfaces y Perifricos, Gua 3
7
valor H FS&omm1.4nput
I&alcula el nivel de tensin que o"tuvo el A,&
volta(e H valorB1223N-
IActualiza la ventana con la in*ormacin reci"ida
8ext1.8ext H valor
8ext2.8ext H Round6volta(e?27
5nd 4*
5nd Su"
.istado -. Pro#rama de Visual Basic para parte -.
3. A continuacin a"ra el Arduino 4,5 e introduzca el siguiente setc!.
void setup67 O
BB4nicializa el puerto serie
Serial."egin61.227P
Q
void loop67 O
int lecturaP
lectura H analogRead627P BB8oma lectura del A,&
Serial.print6lectura7P BB5nv$a el dato le$do
dela#6-227P BBCenera un retardo "reve
Q
.istado / 0 S1etc* para la parte -.
'. &onecte el ca"le USB # descargue el setc! al Arduino. 5(ecute el programa en Visual
Basic # o"serve el valor que se presenta en la ventana.
-. Var$e el potencimetro # o"serve cmo cam"ia el valor visualizado en pantalla.
.. Fodi*ique el *ormulario para que muestre una "arra de desplazamiento !orizontal 6o el
control de su eleccin7 que represente la posicin relativa del potencimetro. +oti*ique
a su docente cuando termine el programa para que le sea evaluado.
Parte /. Control de salidas mediante P+M
/. ,esconecte la tar(eta Arduino del puerto USB # proceda a armar el siguiente circuito
6una vez m>s? el circuito no requiere de *uente externa7.
Aigura .. ,iagrama de circuito de la parte 2
Interfaces y Perifricos, Gua 3
8
0. A continuacin genere un nuevo pro#ecto en Visual Basic. Siga el siguiente modelo
para crear el *ormulario e introduzca el cdigo mostrado en el listado 3.
Aigura /. Aormulario de programa de la parte 2
%rivate Su" AormK;oad67
FS&omm1.&omm%ort H ' IA(ustar al puerto real de su %& asignado a Arduino
FS&omm1.Settings H R1.22?n?0?1J
FS&omm1.4nputFode H com4nputFodeBinar#
FS&omm1.%ort9pen H 8rue
VScroll1.Fin H 2
VScroll1.Fax H 1-
VScroll2.Fin H 2
VScroll2.Fax H 1-
VScroll3.Fin H 2
VScroll3.Fax H 1-
VScroll'.Fin H 2
VScroll'.Fax H 1-
5nd Su"
%rivate Su" VScroll1K&!ange67
I,e*ine un vector de un dato? el dato a enviar
,im datoKenviado627 As B#te
I&oloca el dato en el vector
datoKenviado627 H VScroll1.Value S 2N1.
I5nv$a el dato
FS&omm1.9utput H datoKenviado
;a"el1.&aption H VScroll1.Value
5nd Su"
%rivate Su" VScroll2K&!ange67
I,e*ine un vector de un dato? el dato a enviar
Interfaces y Perifricos, Gua 3
9
,im datoKenviado627 As B#te
I&oloca el dato en el vector
datoKenviado627 H VScroll2.Value S 1N1.
I5nv$a el dato
FS&omm1.9utput H datoKenviado
;a"el2.&aption H VScroll2.Value
5nd Su"
%rivate Su" VScroll3K&!ange67
I,e*ine un vector de un dato? el dato a enviar
,im datoKenviado627 As B#te
I&oloca el dato en el vector
datoKenviado627 H VScroll3.Value S 2N1.
I5nv$a el dato
FS&omm1.9utput H datoKenviado
;a"el3.&aption H VScroll3.Value
5nd Su"
%rivate Su" VScroll'K&!ange67
I,e*ine un vector de un dato? el dato a enviar
,im datoKenviado627 As B#te
I&oloca el dato en el vector
datoKenviado627 H VScroll'.Value S 3N1.
I5nv$a el dato
FS&omm1.9utput H datoKenviado
;a"el'.&aption H VScroll'.Value
5nd Su"
;istado 3. %rograma en Visual Basic de la parte 2
1. Taga un nuevo Setc! en el Arduino 4,5 # escri"a el siguiente programa@
void setup67O
BB4nicializa el puerto serie
Serial.Begin61.227P
Q
void loop67O
int datoP
int numKledP
int "rilloP
BBRealiza el proceso slo si se reci"en datos
i*6Serial.availa"le677O
BB8oma el "#te del puerto
dato H Serial.read67P
BB5xtrae los cuatro "its m>s signi*icativos para el nDmero del led
numKled H datoMM'P
BB5xtrae los cuatro "its menos signi*icativos para el valor del "rillo
Interfaces y Perifricos, Gua 3
10
"rillo H dato U 2x2AP
BBA(usta el "rillo segDn el led seleccionado
s)itc!6numKled7O
case 2@ analog3rite61?"rillo LL '7P "reaP
case 1@ analog3rite6.?"rillo LL '7P "reaP
case 2@ analog3rite6-?"rillo LL '7P "reaP
case 3@ analog3rite63?"rillo LL '7P "reaP
Q
Q
Q
;istado '. Setc! de Arduino para la parte 2
12. &onecte el ca"le USB a Arduino # descargue el Setc!. 5(ecute el programa de Visual
Basic # deslice las "arras de desplazamiento. 9"serve lo que sucede con los ;5,s al
variar las "arras.
11. Fodi*ique el programa de Visual Basic para generar el e*ecto de parpadeo atenuado
en uno de los ;5,s 6el "rillo aumenta # disminu#e suavemente entre los extremos de
encendido # apagado7? mediante un timer que var$e el "rillo autom>ticamente cada
2.-s. +oti*ique a su docente cuando lo termine para que le sea evaluado.
12. ,esconecte la tar(eta Arduino de su %& # desarme el circuito. ;uego apague su
computadora # de(e en orden su puesto de tra"a(o.
1. V,e quE manera se realiza la lectura de los datos en la primera parteW V&mo se
consigue sincronizar am"os extremosW
2. VXuE proceso se realiza para com"inar el valor de "rillo de cada ;5, con su posicin
relativa al transmitirW V,e quE manera realiza el programa en Arduino la separacin de
esta in*ormacinW
1. ,etermine cmo se puede !acer para agregar entradas # salidas adicionales en los
programas de la primera # segunda parte.
Re*erencia en l$nea del lengua(e@ !ttp@BBarduino.ccBenBRe*erenceBTome%age
Fassimo Banzi? RCetting started )it! ArduinoJ 9IReill# Fedia B Fae %u"lis!er? Farzo
2221? 4SB+@ 1/0Y2Y-1.Y1---1Y3
n#lisis de $esultados
Interfaces y Perifricos, Gua 3
Investigacin %omplementaria
&ibliografa
11
EVALUACION
% 1-4 5-7 8-10 Nota
CONOCIMIENTO '() %onocimiento
deficiente de los
fundamentos
tericos
%onocimiento y
e*plicacin
incompleta de los
fundamentos
tericos
%onocimiento
completo y
e*plicacin clara
de los
fundamentos
tericos
APLICACIN DEL
CONOCIMIENTO
+,) -o Termin
completamente el
programa y
coment mal el
cdigo ./,)0
-o reali1 el
circuito
correctamente
.2,)0
Termin
completamente el
programa pero los
comentarios no
estaban del todo
correctos
El circuito
funcion
Termin
completamente el
programa con sus
comentarios
correctos
El circuito
funcion
ACTITUD '3(
)
Es un observador
pasivo3
!articipa
ocasionalmente o
lo 4ace
constantemente
pero sin
coordinarse con su
compa5ero3
!articipa
propositiva e
integralmente en
toda la pr#ctica3
'3(
)
Es ordenado6 pero
no 4ace un uso
adecuado de los
recursos
7ace un uso
adecuado de los
recursos8 respeta
las pautas de
seguridad6 pero es
desordenado3
7ace un manejo
responsable y
adecuado de los
recursos conforme
a pautas de
seguridad e
4igiene3
TOTAL 9,,
)
7oja de cotejo: /
:ua /: rduino y %omunicacin ;erial con <isual &asic
lumno:
=ocente: :>: Fec4a:
Maquina -o:
Interfaces y Perifricos, Gua 3

You might also like