7/30/2019 Tema 2.4. Arduino
1/28
78
Arduino
ElectrnicaIndustrial
Interruptores Pulsadores Potencimetros LDRs Fotoclulas Encoders
Galgasextensom Termopares Acelermetros MEMs
SENSORES
Solenoides,rels,piezoelctricos Motoresdecon@nua Motorespasoapaso Servomotores Disposi@voshidrulicosy
neum@cos.
ACTUADORES
C.discretos Amplificadores Filtros A/D
ACONDICIONADORESDESEALESDE
ENTRADAEINTERFACES
Combinacionales Secuenciales P C
Memorias SoC Comunicaciones Soware
SISTEMASDECONTROL
DIGITAL
D/A Amplificadores PWM
Transistores
ACONDICIONADORES
DESEALESDESALIDAEINTERFACES LEDs
Displays LCD
CRT TFT
VISUALIZADORES
Sistemasmecnico
7/30/2019 Tema 2.4. Arduino
2/28
79
Arduino
ElectrnicaIndustrial
Conceptosgenerales
Arduino es una plataforma de diseo de objetos interac@vos (Physycal Compu@ng o PhisicalInterac@on Design) que integra una tarjeta microcontroladora open-source, un entorno dedesarrollo de soware basado en el lenguaje de programacin Processing y una ampliacomunidaddeusuarios.
Enresumen,Arduinoseu@lizaparadesarrollarobjetosyentornosinterac@vos(internetdelascosas) que @enen que ver con la creacin de obras de arte, diseo de mecatrnica (paraconsumoeindustrial)yproyectosDIY(DoItYourself)paraaficionados.
Losobjetospuedenserautnomos(stand-alone)opuedencomunicarseconcualquiersowareatravsdepuertoserie(p.e.Flash,Processing,MaxMSP,.),bienporcableoporXbee,ZigBit,etc.
Lastarjetasmicrocontroladoraspuedenserconstruidasporelusuariofinalopuedencomprarseyafabricadas.
El entorno de desarrollo (IDE, Integrated Development Environment) puede ser descargadolibrementedesdewww.arduino.com.
Arduino
7/30/2019 Tema 2.4. Arduino
3/28
80
Arduino
ElectrnicaIndustrial
El Phisical Compu@ng, en el sen@do ms amplio, persigue construir objetos interac@vosmediante el uso de soware y hardware. Estos objetos se caracterizan por poder percibirsealesdeunmundoanalgicoypoderresponderalasmismas.
Aunque esta definicin incluira mul@tud decampos tecnolgicos, talescomo los sistemas decontroldetrficodeautomvilesinteligentes,automa@zacindeprocesosindustriales,etc.,elPhisicalCompu@ngnohacereferenciaaestoscampostecnolgicos.Estetrmino@enemsqueverconlacreacindeobrasdearte,diseodemecatrnica(paraconsumoeindustrial)yproyectosDIY(DoItYourself)paraaficionados.
Enelpasado,u@lizarelectrnicasignificabatenerquetratarconingenierostodoel@empo,yalavezconstruiruncircuitoenunpequeocomponente.Estoimpedaquelagentecrea@vano
poda u@lizar estas tecnologas fcilmente. La mayor parte de las herramientas estabanpensadasparaingenierosyrequeranconocimientosmuyprofundos.
Enlaactualidadlosmicrocontroladoressonmuchomsbaratosyfcilesdeusar.ConArduino,un diseador o ar@sta puede conocer las bases de la electrnica y los sensores muyrpidamenteypuedecomenzaraconstruirproto@posconmuypocainversin.
PhisicalCompu@ng(Soloparaleerporlosalumnos).
Conceptosgenerales
7/30/2019 Tema 2.4. Arduino
4/28
81
Arduino
ElectrnicaIndustrial
[email protected],MacintoshyLinux. El IDE de Arduino est basado en Processing, un entorno de desarrollo fcil de u@lizar por
ar@stasydiseadores.
LastarjetasCArduinosepuedenprogramarvauncableUSB,nounpuertoserie.
Tantoel hardwarecomoelsowareesopen-source.Elusuariopuededescargarlosdiagramasdelos circuitos,comprartodoslos componentesy fabricrselo elmismo, sin tenerquepagarnadaalosfabricantesdeArduino.
Elhardwareesbarato.UnatarjetaArduinoUNOcuestaunos20.Yreemplazarunchipdaadoenlatarjetaesfcilybarato(nocuestamsde5).
Hayunacomunidaddeusuariosmuyac@vaconlaquepodercolaboraryrecibirayuda.
Qulodiferenciadeotrosentornos?
Conceptosgenerales
7/30/2019 Tema 2.4. Arduino
5/28
82
Arduino
ElectrnicaIndustrial
PlacasArduino(I)
Consultarparaunalistacompletahp://en.wikipedia.org/wiki/List_of_Arduino_compa@bles
ArduinoLeonardo(2012) ArduinoMega2560(XXXX) ArduinoUno(XXXX) ArduinoMega(XXXX)
ArduinoDuemilanove(XXXX) ArduinoDiecimila(XXXX) ArduinoBluetooth(XXXX) ArduinoNGRev.C(XXXX)
ArduinoNG(XXXX) LilyPADArduino(XXXX) ArduinoNano(XXXX) ArduinoMini(XXXX)
PlacasoficialesdeArduino
7/30/2019 Tema 2.4. Arduino
6/28
83
Arduino
ElectrnicaIndustrial
Shields:Arquitecturamodularinteligente
Las Shields son placas que a modo deaccesorio se pueden conectar a una placaArduinoocompa@ble.
Paraellolospinesdesuspuertosguardanunadisposicindecompa@bilidad.
Existe una gran variedad de shields condiversa funcionalidad: control de motores,comunicaciones,proto@padorpido,etc.
Arduino. GSMShield.
EthernetShield.
UnalistacompletaShieldssepuedeencontraren:hp://shieldlist.org/
PlacasArduino(II)
7/30/2019 Tema 2.4. Arduino
7/28
84
Arduino
ElectrnicaIndustrial
PlacaArduinoUno(I)
ATmega328P-PU 32KbytedememoriadeprogramaFLASH 2KbytedeRAM 16MHzdevelocidaddereloj Entradas/Salidas
14pinesdeentradas/salidas 6pinesdeentradasanalgicas(tambinsalidas) Total:20entradas/salidas
Completamenteautnomo(stand-alone)unavezprogramado.
Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno
7/30/2019 Tema 2.4. Arduino
8/28
85
Arduino
ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno
AlimentacinyPOWER
PuertoUSB
Alimentacin5V
JackAlimentacinexterna5-15V
3.3V3,3vol@os
5V5vol@os
GND0vol@os
VinAlimentacinexternadeentradasinregular
PlacaArduinoUno(II)
7/30/2019 Tema 2.4. Arduino
9/28
86
Arduino
ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno
Entradas/Salidas
14pinesdeE/Sdigitales.2,4,7,8,12,13=puertosdigitalesconvencionales3,5,6,9,10,11=puertosPWM
Puertosanalgicos.A4,A5=sonu@lizadasparaconexionesI2C/TWI
A0-A5=puedenfuncionarcomopuertosdigitales(14-19)
AREFVoltajedereferenciaparaentradasanalgicas
PlacaArduinoUno(III)
7/30/2019 Tema 2.4. Arduino
10/28
87
Arduino
ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno
Comunicaciones
PuertoserieRX/TX. ICSP.
Paracargarelgestordearranque(bootloader)oprogramas/firmware.
PuertoUSByFTDIchipset
PlacaArduinoUno(IV)
7/30/2019 Tema 2.4. Arduino
11/28
88
Arduino
ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Main/ArduinoBoardUno
Otrascaracters@cas BotndeRESET. LEDsdetest,TXyRX. LEDdeencendido Reloja16/20Mhz. Microcontrolador
Atmega328
PlacaArduinoUno(V)
7/30/2019 Tema 2.4. Arduino
12/28
89
Arduino
ElectrnicaIndustrial Fuente:hp://arduino.cc/en/Hacking/PinMapping168
MapeadoentreATmega168/328yArduino
Entradas/salidasdeArduino(I)
7/30/2019 Tema 2.4. Arduino
13/28
90
Arduino
ElectrnicaIndustrial
Puertosdeentrada/salidadigitales TrabajanconnivelesdetensinTTL:
0-0,8V=0 2-5V=1
Nosepuedenconectardirectamenteadisposi@vosqueconsumanpotencia.
Entradas/salidasdeArduino(II)
7/30/2019 Tema 2.4. Arduino
14/28
91
Arduino
ElectrnicaIndustrial
Puertosanalgicos Conver@dorA/Dde10bits:0a1023. Latensindereferenciaes5V.
0V=0 2,5V=215 5V=1023
Nosepuedenconectardirectamenteadisposi@vosqueconsumanpotencia.
Entradas/salidasdeArduino(III)
7/30/2019 Tema 2.4. Arduino
15/28
92
Arduino
ElectrnicaIndustrial
PuertosPWM Esunpuertohbrido,yaqueesun
puerto digital que mediante lamodulacin de 0 y 1 consigueexpresarunaideadepotencia.
Entradas/salidasdeArduino(IV)
7/30/2019 Tema 2.4. Arduino
16/28
93
Arduino
ElectrnicaIndustrial
Cmosetrabajaenlaprc@ca? Asignamoscomponentesalospuertosdisponibles(digitales,analgicosyPWM). Realizamoslecturasyescriturasconelobjetodeobtenerundatodeunsensorocontralar
undeterminadoactuador.
ProcesamoslosdatosenelC.
Veamosalgunosejemplosdecomponentesquepodemosu@lizar
Entradas/salidasdeArduino(V)
7/30/2019 Tema 2.4. Arduino
17/28
94
Arduino
ElectrnicaIndustrial
AlgunosejemplosdesensoresyactuadoresparaArduino
Brjula Sensordetemperatura
Medidorultrasnico
GPS Pantallatc@l Controladordemotor
UnidadGSM/GPRS
Sensordepresin
Entradas/salidasdeArduino(VI)
7/30/2019 Tema 2.4. Arduino
18/28
95
Arduino
ElectrnicaIndustrial
Tiendas
Espaolas Extranjeras
" www.cooking-hacks.com www.bricogeek.com www.ardumania.es
" www.parallax.com" www.sparkfun.com www.makershed.com www.liquidware.com www.ladyada.net www.adafruit.com
Seagradececualquierinformacinparateneractualizadaestalista
Entradas/salidasdeArduino(VII)
7/30/2019 Tema 2.4. Arduino
19/28
96
Arduino
ElectrnicaIndustrial
ElentornodedesarrolloArduino(I)
Cmopodemosempezar? Descargarlal@maversindelIDE(1.0.1).
hp://arduino.cc/en/Main/Soware Sigue las instrucciones de hp://arduino.cc/es/Guide/HomePage para la instalacin en
Windows,MacoLinux.
ConectalaplacaArduinoatuordenadorusandoelcableUSB.elLEDverdeindicadordela
alimentacin(nombradocomoPWRenlaplaca)deberaquedarencendidoapar@rdeesemomento.
HazdobleclicksobrelaaplicacinArduino. AbreelprogramadeejemploparahacerparpadearunLED("LEDblink"):Abrir>Basics>
Blink Compilamoselprogramadeejemplo:Verificar CargamoselcdigocompiladoenArduino:Cargar
SitodofuncionacorrectamenteelLEDdeTESTdeberaparpadearPruebaacambiarlos@emposderetardoycompruebaquelafrecuenciadeparpadeovara
7/30/2019 Tema 2.4. Arduino
20/28
97
Arduino
ElectrnicaIndustrial
Versin1.0.1 Men
readeProgramacin
readeDEBUG
ElentornodedesarrolloArduino(II)
7/30/2019 Tema 2.4. Arduino
21/28
98
Arduino
ElectrnicaIndustrial
Versin1.0.1
ElsowaredesarrolladoconArduinoseconocecomosketches. Lossketchesseescribenconuneditordetextoysonguardadosconlaextensin.ino
VerificarChequea
errores
CargarCompilay
carga
NuevoCreanuevos
sketches
AbrirAbresketches
existentes
GuardarGraba
Sketches
MonitorSerialAbreelmonitorserie
ElentornodedesarrolloArduino(III)
7/30/2019 Tema 2.4. Arduino
22/28
99
Arduino
ElectrnicaIndustrial
Conceptosgenerales
SebasaenCestndar. Paraelcontroldelospuertosdelmicrocontroladorseu@lizanlasfuncionespredefinidas:
pinMode(,) //configuraunpuertodigitalparaleeroescribirdatos digitalWrite(,0o1) //envaun0o1alpuertodigital digitalRead() //devuelveun0o1delpuerto analogRead() //devuelveunvalor(0-1023)delpuertoanalgico analogWrite(,) //escribeenunpuertoPWMunvalorde0a255
Ellenguajedeprogramacin(I)
7/30/2019 Tema 2.4. Arduino
23/28
100
Arduino
ElectrnicaIndustrial
Estructuradeunprograma
Se@enenqueprogramarobligatoriamentedosfunciones:voidsetup() //seejecutaunasolavez,cuandoseiniciaelsketch{}voidloop() //seejecutademodocon@nuoindefinidamente{}
Ellenguajedeprogramacin(II)
7/30/2019 Tema 2.4. Arduino
24/28
101
Arduino
ElectrnicaIndustrial
Primerejemplo.LEDparpadeante.Esquem@co
Ellenguajedeprogramacin(III)
7/30/2019 Tema 2.4. Arduino
25/28
102
Arduino
ElectrnicaIndustrial
Primerejemplo.LEDparpadeante.Programa
/*BlinkTurnsonanLEDonforonesecond,thenoffforonesecond,repeatedly.Thisexamplecodeisinthepublicdomain.*///Pin13hasanLEDconnectedonmostArduinoboards.//giveitaname:intled=13;//thesetuprou@nerunsoncewhenyoupressreset:voidsetup(){//[email protected](led,OUTPUT);}//thelooprou@nerunsoverandoveragainforever:
voidloop(){digitalWrite(led,HIGH);//turntheLEDon(HIGHisthevoltagelevel)delay(1500);//waitforaseconddigitalWrite(led,LOW);//turntheLEDoffbymakingthevoltageLOWdelay(1500);//waitforasecond}
Ellenguajedeprogramacin(IV)
7/30/2019 Tema 2.4. Arduino
26/28
103
Arduino
ElectrnicaIndustrial
Primerejemplo.LEDparpadeante.Montajeenprotoboard.
Ellenguajedeprogramacin(V)
7/30/2019 Tema 2.4. Arduino
27/28
104
Arduino
ElectrnicaIndustrial
Segundoejemplo.Fade.Esquem@co
Habrqueu@lizar: unasalidaPWM(3,5,6,9,20o11) analogWrite(,)
/*
FadeThisexampleshowshowtofadeanLEDonpin9usingtheanalogWrite()[email protected].*/intled=9;//thepinthattheLEDisaachedtointbrightness=0;//howbrighttheLEDis
intfadeAmount=5;//howmanypointstofadetheLEDby//thesetuprou@nerunsoncewhenyoupressreset:voidsetup(){//declarepin9tobeanoutput:pinMode(led,OUTPUT);}//thelooprou@nerunsoverandoveragainforever:voidloop(){//setthebrightnessofpin9:
analogWrite(led,brightness);//changethebrightnessfornext@methroughtheloop:brightness=brightness+fadeAmount;//reversethedirec@onofthefadingattheendsofthefade:if(brightness==0||brightness==255){fadeAmount=-fadeAmount;}//waitfor30millisecondstoseethedimmingeffect
delay(30);}
Ellenguajedeprogramacin(VI)
TarjetaArduino
Pin9
Gnd
7/30/2019 Tema 2.4. Arduino
28/28
Dr.AndrsIborra
UniversidadPolitcnicadeCartagena
CampusMuralladelMar,s/n
30202Cartagena
Tel. +34968325654
Fax. +34968325345
E-mail andres.iborraupct.es
Twier CincubatorHUBaiborraListadecorreo cloud-incubatorupct.es
Www www.cincubator.com