Home
Guía de Usuario de Arduino
Contents
1. los par metros que se pasan a la funci n type functionName parameters statements La siguiente funci n int delay Val asigna un valor de retardo en un programa por lectura del valor de un potenci metro int delayVal int v crea una variable temporal v v analogRead pot lee el valor del potenci metro v 4 convierte 0 1023 a 0 255 return V devuelve el valor final de v llaves Las llaves definen el comienzo y el final de bloques de funci n y bloques de declaraciones como void loop y sentencias for e if Las llaves deben estar balanceadas a una llave de apertura debe seguirle una llave de cierre Las llaves no balanceadas provocan errores de compilaci n void loop statements El entorno Arduino incluye una pr ctica caracter stica para chequear el balance de llaves S lo selecciona una llave y su compa era l gica aparecer resaltada 31 punto y coma Un punto y coma debe usarse al final de cada declaraci n y separa los elementos del programa Tambi n se usa para separar los elementos en un bucle for int x 13 declara la variable x como el entero 13 Nota Olvidar un punto y coma al final de una declaraci n producir un error de compilaci n bloques de comentarios Los bloques de comentarios o comentarios multil nea son areas de texto ignoradas por el programa y se usan para grandes descripciones de c digo o comentarios que
2. 3 a Figura 4 9 Men de selecci n de puerto del Entorno Arduino Asegurarse de que Arduino Diecimila est seleccionada en el men Tools gt Board Sketch HIS Help Arduino Auto Format T Copy for Forum Archive Sketch ra Arduino BT Arduino NG or older w ATmega8 Arduino NG or older w ATmega168 ns on ong Arduino Mini ON W TT it has either a built in LED y Arduino Diecimila you need only an LED LilyPad Arduino Serial Port Burn Bootloader al Blink Figura 4 10 Ment de selecci n de placa del Entorno Arduino Ahora simplemente haz click en el bot n Upload del entorno Espera unos pocos segundos deber as ver los LEDs Rx y Tx de la placa ilumin ndose Si la carga es correcta el mensaje Done uploading aparacer en la barra de estado p O i Upload to I O Board Figura 4 11 Bot n de subida de la rutina a la placa 8 Buscar el LED que parpadea Unos pocos segundos despu s de que la subida termine deberias ver el LED Ambar amarillo en la placa empezar a parpadear Si lo hace jenhorabuena Has conseguido Arduino cargado y ejecutandose Si tienes problemas consulta http www arduino cc en Guide Troubleshooting 22 4 1 2 MAC OS X v 10 3 9 o posterior 2 Descargar el entorno Arduino Para programar la placa Arduino necesitas el entorno Arduino Descarga la ltima versi n desde http www arduino cc en Main Software Cuando termine la
3. Hardware MS Windows Paso 2 19 Asistente para Nuevo Hardware MS Windows Paso 3 19 Asistente para Nuevo Hardware MS Windows Paso 4 20 ENTORNO AA MIOS da od ii as lid ta Pos hia o da 21 Administrador de Dispositivos MS Windows e 21 Men de selecci n de puerto del Entorno Arduino 22 Men de selecci n de placa del Entorno Arduino 22 Bot n de subida de la rutina a la placa o o 22 Instalaci n de drivers en Mac OS X e 23 Conexi n del cable USB a la placa Arduino 24 Entorno Arduino A A a awe eee pee a ewe 25 Men de selecci n de puerto del Entorno Arduino oaoa a a a 25 Men de selecci n de placa del Entorno Arduino ao LL a a 26 Bot n de subida de la rutina a la placa o 26 Esquema de salida digital ont A A A 45 Esquema de entrada digital orivers id a ee aes 46 Esquema desalida FWM pre Te e a Gu E E A Oe Ree 46 Esquema de entrada de potenciometro e a e 47 Cap tulo 1 PREFACIO Esta gu a de usuario intenta ser una forma de acercarse al dise o y desarrollo de proyectos basados en Arduino para aquellas personas que nunca han trabajado con l pero que poseen un buen nivel en programaci n y electr nica Por esta raz n y para hacerlo f cil se ha excluido mucha informaci n existente en Internet y otros manuales par
4. Haz click en A adir IM s informaci n sobre la distribuci n en http www ubuntu com 26 o NO OS OQ 10 11 12 13 4 2 Marca Software restringido por copyright o cuestiones legales multiverse y Software libre mantenido por la comunidad universe y haz click en A adir Haz click en Cerrar y click en Cerrar en el di logo Los repositorios han cambiado Haz click en el bot n Recargar de la barra de herramientas Marca para instalar sun java5 jre gcc avr avr libc Haz click en Aplicar en la barra de herramientas Haz click en Aplicar en el cuadro de di logo Esto instalar los paquetes seleccionados Acepta la licencia de Java Espera hasta completar la instalaci n el cuadro de di logo dir Cambios aplicados Haz click en Cerrar Cierra Synaptic Descarga la distribici n de GNU Linux de Arduino desde http www arduino cc en Main Software Haz doble click en el archivo zip y arrastra la carpeta que contiene a alg n lugar por ejempl el Escritorio Ejecuta el Terminal en Aplicaciones gt Accesorios Escribe sudo update alternatives config java y presiona Enter Teclea el n mero de opci n que tiene java 1 5 0 sun en l y presiona Enter Esto har de la versi n de Java de Sun la predeterminada de tu sistema necesaria porque la versi n GNU todav a no soporta todo lo necesitado por el entorno Arduino Haz doble click en
5. TTL en serie Estos pines estan conectados a los pines correspondientes del chip FTDI USB a TTL Serie Interruptores externos 2 y 3 Estos pines pueden ser configurados para disparar un interruptor en un valor bajo un margen creciente o decreciente o un cambio de valor Mirar la funci n attachInterrupt PWM 3 5 6 9 10 y 11 Proporcionan salida PWM de 8 bits con la funci n analog Wri te SPI 10 SS 11 MOST 12 MISO 13 SCK Estos pines soportan comunicaci n SPI la cual aunque proporcionada por el hardware subyacente no est actualmente incluida en el lenguaje Arduino LED 13 Hay un LED empotrado conectado al pin digital 13 Cuando el pin est a valor HIGH el LED est encendido cuando el pin est a LOW est apagado El Diecimila tiene 6 entradas anal gicas cada una de las cuales proporciona 10 bits de resoluci n por ejemplo 1024 valores diferentes Por defecto miden 5 voltios desde tierra aunque es posible cambiar el valor m s alto de su rango usando el pin ARF y alg n c digo de bajo nivel Adem s algunos pines tienen funcionalidad especializada 12C 4 SDA y 5 SCL Soportan comunicaci n I C TWI usando la libreria Wire Hay otro par de pines en la placa AREF Voltaje de referencia para las entradas anal gicas Usado con analogReference Reset Pone esta linea a LOW para resetear el microcontrolador T picamente usada para a adir un bot n de reset a dispositivos
6. abres el nivel superior del men Tools Antes de subir tu rutina necesitas seleccionar el elemento de este men que representa a tu placa Arduino En el Mac esto es probablemente algo como dev tty usbserial 1B1 para la placa USB o dev tty USA19QW1b1P1 1 para una placa Serie conectada con un adaptador USB a Serie Keyspan En Windows es probablemente COM1 o COM2 para una placa Serie o COM4 COM5 COM7 o superior para una placa USB para descubrirlo busca USB serial device en la secci n puertos del Gestor de dispositivos de Windows Burn Bootloader Los elementos en este men te permiten grabar un bootloader en tu placa con una variedad de programadores Esto no es necesario para uso normal de una placa Arduino pero puede ser til si encargas ATmegas adicionales o est s construyendo una placa por tu cuenta Asegurate que has seleccionado la placa correcta del men Boards de antemano Para grabar un bootloader con el AVR ISP necesitas seleccionar el elemento que corresponde a tu programador del men Serial Port 4 2 3 Preferencias Algunas preferencias pueden ser ajustadas en el di logo Preferences se encuentra bajo el men Arduino en el Mac o File en Windows y GNU Linux El resto se puede encontrar en los archivos de preferencias 29 Cap tulo 5 COMENZANDO CON ARDUINO 5 1 Estructura La estructura b sica del lenguaje de programaci n Arduino es bastante simple y se organiza en al menos dos partes o fun
7. descarga descomprime el archivo descargado Asegurate de conservar la estructura de carpetas Haz doble click en la carpeta para abrirla Deber a haber archivos y sub carpetas en su interior 3 Instalar los drivers USB Si estas usando un Arduino USB necesitar s instalar los drivers para el chip FTDI de la placa Estos pueden encontrarse en el directorio drivers de la distribuci n Arduino Si tienes un Mac m s antiguo como un Powerbook iBook G4 o G5 deber as usar los drivers PPC FTDIUSBSerialDriver_v2 1 9 dmg Si tienes un Mac m s nuevo como un MacBook Mac Book Pro o Mac Pro necesitas los drivers de Intel FTDIUSBSerialDriver_v2 2 9 Intel dmg Haz doble click para montar la imagen del disco y ejecutar el FTDIUSBSerialDriver pkg incluido 8060 drivers a lt gt pa SSE lt gt ao E E 7 y Q AH Arduino 05 app E FTDIUSBSerialDriver_v2_1_6 dmg 3 bootloader p FTDIUSBSerialDriver_v2_2_6_Intel dmg 3 drivers a KeyspanUSAdrvr20 dmg 2 examples I 2 lib b E librxtxSerial jnilib license txt macosx_setup command readme txt 2 reference 2 tools 2 of 3 selected 4 42 GB available Figura 4 12 Instalaci n de drivers en Mac OS X La ltima version de los drivers se puede encontrar en http www ftdichip com Drivers VCP htm 4 Conectar la placa La fuente de alimentaci n se selecciona mediante el jumper entre los conectores del USB y alimentaci n Para aliment
8. dos pines m s cercanos al conector de alimentaci n En cualquier caso conecta la placa a un puerto USB de tu ordenador 17 Figura 4 2 Conexi n del cable USB a la placa Arduino El LED de alimentaci n deber a encenderse El asistente para A adir Nuevo Hardware deber a abrirse Ind cale que no conecte a Windows Update y haz click en siguiente Found New Hardware Wizard Welcome to the Found New Hardware Wizard Windows will search for current and updated software by looking on your computer on the hardware installation CD or on the Windows Update Web site with your permission Read our privacy policy Can Windows connect to Windows Update to search for software O Yes this time only O Yes now and every time connect a device No not this time Click Next to continue Figura 4 3 Asistente para Nuevo Hardware MS Windows Paso 1 Selecciona Instalar desde una lista o ubicaci n especificada Avanzado y haz click en si 18 Found New Hardware Wizard This wizard helps you install software for FT232R USB UART If your hardware came with an installation CD 2 or floppy disk insert it now What do you want the wizard to do O Install the software automatically Recommended 3 Install from a list or specific location Advanced Click Next to continue Cea Oe Figura 4 4 Asistente para Nuevo Hardware MS Windows Paso 2 Asegurate que Buscar el mejor driver en e
9. m dulos est n publicados bajo li cencia Creative Commons por lo que dise adores experimentados de circuitos pueden hacer su propia versi n del m dulo extendi ndolo y mejor ndolo Incluso usuarios relativamente inexpertos pueden construir la versi n de la placa del m dulo para entender como funciona y ahorrar dinero Cap tulo 3 HARDWARE Hay m ltiples versiones de la placa Arduino La mayor a usan el ATmega168 de Atmel mientras que las placas m s antiguas usan el ATmegas Nota Los dise os de referencia para Arduino se distribuyen bajo licencia Creative Commons Attribution ShareAlike 2 5 3 1 Placas E S Diecimila Esta es la placa Arduino m s popular Se conecta al ordenador con un cable est ndar USB y contiene todo lo que necesitas para programar y usar la placa Puede ser ampliada con variedad de dispositivos placas hijas con caracter sticas espec ficas Nano Una placa compacta dise ada para uso como tabla de pruebas el Nano se conecta al ordenador usando un cable USB Mini B Bluetooth El Arduino BT contiene un modulo bluetooth que permite comunicaci n y programaci n sin cables Es compatible con los dispositivos Arduino LilyPad Dise ada para aplicaciones listas para llevar esta placa puede ser conectada en f brica y un estilo sublime Mini Esta es la placa m s peque a de Arduino Trabaja bien en tabla de pruebas o para aplicaciones en las que prima el espacio Se conecta al ordenador usa
10. pin ajusta value igual a pin Nota Los pines anal gicos al contrario que los digitales no necesitan ser declarados al principio como INPUT u OUTPUT analogWrite pin value Escribe un valor pseudo anal gico usando modulaci n por ancho de pulso PWMy en ingl s a un pin de salida marcado como PWM En los Arduinos m s nuevos con el chip ATmega168 esta funci n trabaja en los pines 3 5 6 9 10 y 11 Los Arduinos m s antiguos con un ATmega8 s lo soporta los pines 9 10 y 11 El valor puede ser especificado como una variable o constante con un valor de 0 a 255 analogWrite pin value escribe value al pin analogico 40 Valor Nivel de salida 0 0 V t 64 0V 3 4 de t y 5 V 1 4 de t 128 0 V 1 2 de t y 5 V 1 2 de t 192 0 V 1 4 de t y 5 v 3 4 de t 255 5 V t Cuadro 5 1 Relaci n valor salida con analog Write El valor de salida var a de 0 a 5 V seg n el valor de entrada de 0 a 255 en funci n del tiempo de pulso Si es el tiempo de pulso la tabla 5 1 muestra la equivalencia entre el valor y la salida en funci n del tiempo Como esta es una funci n hardware el pin generar una onda est tica despu s de una llama da a analogWrite en segundo plano hasta la siguiente llamada a analogWrite o una llamada a digitalRead o digitalWrite en el mismo pin int led 10 LED con una resistencia de 220ohm en el pin 10 int pin 0 potenci
11. una que se define dentro de una funci n o como parte de un bucle for S lo es visible y s lo puede ser usada dentro de la funci n en la cual fue declarada Adem s es posible tener dos o m s variables del mismo nombre en diferentes partes del programa que contienen diferentes valores int value value es visible por cualquier funci n void setup no se necesita setup void loop for int i 0 i lt 20 i es s lo visible dentro del bucle for i gt 33 float f f es s lo visible dentro de loop 5 3 Tipos de datos byte Byte almacena un valor num rico de 8 bits sin puntos decimales Tienen un rango de 0 a 255 byte someVariable 180 declara someVariable como un tipo byte int Enteros son los tipos de datos primarios para almacenamiento de n meros sin puntos decimales y almacenan un valor de 16 bits con un rango de 32 768 a 32 767 int someVariable 1500 declara someVariable como tipo int long Tipo de datos de tama o extendido para enteros largos sin puntos decimales almacenados en un valor de 32 bits con un rango de 2 146 483 648 a 2 147 483 647 long someVariable 90000 declara someVariable como tipo long float Un tipo de datos para n meros en punto flotante o n meros que tienen un punto decimal Los n meros en punto flotante tienen mayor resoluci n que los enteros y se almacenan como valor de 32 bits con un rango de 3 40
12. void loop digitalWrite ledPin HIGH de Lay 1888 digitalWrite ledPin LOW delay 1688 Arduino 0011 Alpha f run over and md and so o ed to digital pin 13 when the sketch starts s the digital pin as output ver again Figura 4 7 Entorno Arduino E Device Manager File Action View Help e 10189 2 1 Display adapters 3 DVD CD ROM drives 2 Floppy disk controllers 2 Floppy disk drives E IDE ATA ATAPI controllers aj Infrared devices ue Keyboards Mice and other pointing devices e Modems Monitors 88 Network adapters 4 Other devices Ports COM amp LPT J Communications Port COM1 4 Printer Port LPT1 5 PCMCIA adapters JH Me Processors 8 Sound video and game controllers System devices o Universal Serial Bus controllers Port COMS Gl Figura 4 8 Administrador de Dispositivos MS Windows 21 dit Sketch HS Help eee Auto Format ST y Archive Sketch 3 Export Folder Microcontroller MCU Serial Port gt y dev tty usbserial A3000Yj0 Serial Monitor Baud Rate dev cu usbserial A3000Yj0 dev tty Bluetooth PDA Sync dev cu Bluetooth PDA Sync dev tty Bluetooth Modem Created 1 June 2005 dev cu Bluetooth Modem copyleft 2005 DojoDave lt http www 8j8 org gt httn arduinn herlins de Burn Bootloader EXER o Ss 3 3 a Q
13. 28235E 38 a 3 4028235E 38 float someVariable 3 14 declara someVariable como tipo float arrays Un array es una colecci n de valores que son accedidos con un indice num rico Cualquier valor en el array debe llamarse escribiendo el nombre del array y el indice num rico del valor Los arrays estan indexados a cero con el primer valor en el array comenzando con el indice n mero 0 Un array necesita ser declarado y opcionalmente asignarle valores antes de que puedan ser usados int myArray fvalue0 valuel value2 Asimismo es posible declarar un array declarando el tipo del array y el tamano y luego asignarle valores a una posici n del indice 34 int myArray 5 declara un array de enteros con 6 posiciones myArray 3 10 asigna a la cuarta posici n del ndice el valor 10 Para recibir un valor desde un array asignamos una variable al array y la posici n del ndice x myArray 3 x ahora es igual a 10 5 4 Aritm tica Los operadores aritm ticos incluyen suma resta multiplicaci n y divisi n Retornan la suma diferencia producto o cociente respectivamente de dos operandos y NAS x x T7 i j 6 r r 5 La operaci n es llevada a cabo usando del tipo de datos de los operandos as 9 4 devuelve 2 en lugar de 2 25 Si los operandos son de tipos diferentes el tipo mayor es usado para el c lculo Nota Usar el operador cast por ejemplo int myFloat para convertir un tipo de variab
14. Arduino BT Serial Port Arduino NG or older w ATmega8 Arduino NG or older w ATmega168 ns on an 1 Burn Bootloader b gt g Arduino Mini AAA e it has either a built in LED _v Arduino Diecimila you need only an LED LilyPad Arduino al Blink Figura 4 16 Men de selecci n de placa del Entorno Arduino Ahora simplemente haz click en el bot n Upload en el entorno Espera unos pocos segundos deber as ver los LEDs Rx y Tx en la placa ilumin ndose Si la subida es correcta el mensaje Done uploading aparecer en la barra de estado T O i Upload to I O Board Figura 4 17 Bot n de subida de la rutina a la placa 8 Buscar el LED que parpadea Unos pocos segundos despu s de que la subida termine deber as ver el LED mbar amarillo en la placa empezar a parpadear Si lo hace jenhorabuena Has conseguido Arduino cargado y ejecut ndose Si tienes problemas consulta http www arduino cc en Guide Troubleshooting 4 1 3 GNU Linux Estas instrucciones se centran en la distribuci n Ubuntu para m s informaci n sobre c mo instalar el entorno Arduino en otras distribuciones visitar http www arduino cc playground Learning Linux 1 Ejecutar el Gestor de Paquetes Synaptic en Sistema gt Administraci n 2 Primero necesitas habilitar los repositorios Universe y Multiverse para que puedas ac ceder a todos los paquetes que necesitas Ira Configuraci n gt Repositorios a
15. Barra de herramientas 2 0 0 0 0 ADA Menus G28 a oo Gee te ie phe ee yee el Be De ee ad 4 237 Preferencias A o la cs 5 COMENZANDO CON ARDUINO TO A E NON Be ara Dl o Se att Ae A A A AI AS a Te 5 3 Tip s d d t s s sso ll e Ro le o a a o AN 10 10 11 11 12 12 13 13 14 14 14 15 15 16 16 17 23 26 21 27 29 29 55 CONSTAN S ah it A A O ANO 36 5 6 Control de O e A A A ee A wh ewe all 37 IA A A 39 287 B S ALACANT A AS 40 A A A A O a i A 41 20 Matem ticas i a aes ico a A is a A ee 42 CA de E A A A ak ee aed 42 IA Coste gob teed bo ARA AAA ts A do Sate ee bit Eki ta d s 43 A Ejemplos de Aplicaci n con Arduino 45 A 1 Salida digital a o o A 45 Ada EUA E O ANA ASAS AA ae AA IE ASAS 46 ada Me dan do aa Do ia A ea aa 46 A 4 Entrada de potenciometro a e ee 47 B Esquem tico de Arduino Diecimila 49 Indice de cuadros 3 1 Caracter sticas t cnicas de Arduino Diecimila 5 1 Relaci n valor salida con analogWrite ndice de figuras 3 1 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 A 1 A 2 A 3 A A Placa Arduino Diecimila USB xsi ache xe ack ge AA A 11 Descripci n de componentes de la placa Arduino Diecimila 2 2 17 Conexi n del cable USB a la placa Arduino 18 Asistente para Nuevo Hardware MS Windows Paso LT 18 Asistente para Nuevo
16. D Figura A 3 Esquema de salida PWM 46 La modulaci n de ancho de pulso PWM es una forma de falsificar una salida anal gica por la salida pulsante Esto podr a usarse para atenuar e iluminar un LED o posteriormente controlar un servomotor El siguiente ejemplo ilumina y atenua lentamente un LED usando bucles for int ledPin 9 pin PWM para el LED void setup OU void loop for int i 0 i lt 255 i incrementa el valor para i analogWrite ledPin i asigna el nivel de brillo a i delay 100 pausa 100 ms for int i 255 i gt 0 i decrementa el valor para i analogWrite ledPin i asigna el nivel de brillo a i delay 100 pausa 100 ms A 4 Entrada de potenciometro Pin 5v 10kPot Figura A 4 Esquema de entrada de potenciometro Usando un potenciometro y una de los pines de conversi n anal gico digital ADC de Arduino es posible leer valores de 0 a 1024 El siguiente ejemplo usa un potenciometro para controlar una frecuencia de parpadeo de un LED O pin de entrada para el potenciometro 13 pin de salida para el LED int potPin int ledPin void setupO pinMode ledPin OUTPUT declara ledPin como OUTPUT 47 J void loop digitalWrite ledPin HIGH delay analogRead potPin digitalWrite ledPin LOW delay analogRead potPin activa ledPin pausa el programa desactiva ledPin pausa el programa 48 Ap ndice B la 1ec1
17. Gu a de Usuario de Arduino Rafael Enr quez Herrador 13 de noviembre de 2009 OSO Este trabajo est publicado bajo la licencia Creative Commons Attribution Noncommercial Share Alike 3 0 Para ver una copia de esta licencia visita http creativecommons org licenses by nc sa 3 0 O env a una carta a Creative Commons 171 Second Street Suite 300 San Francisco California 94105 USA LT I Sistemas Universidad de C rdoba 152enherQuco es ndice general 1 PREFACIO 2 INTRODUCCI N 2 FIQUE ES ARDUINO nc e Mat e PT Ree ee ee ee MA 3 HARDWARE SA CAS OR A PAS TA do A o GAS AR GAS 3 2 Ardo Di ecimila se a a ir he ote DAA SA AR A GAR ae 3 2 1 Visi n General A A A do ea ese he AI o a AI TAN TI a de ede dog Bae ZO Alimentacion a a ad ca ee eager ad dA Mao A SE A A A eE A eo ae ee oe oo DA 320 Entrada y Salida ali Rad id a a eee Se DA a e AA 3 2 6 Comunicaci n ooa delle POBLACION aa ER AA A ADA AA AAA A dot 3 2 8 Res teo Autom tico Software ai tt e bid 3 2 9 Protecci n de Sobrecarga del USB e 3 2 10 Caracter sticas F sicas LL 4 SOFTWARE 4 1 Instalar el Software Arduino 304 22 ook Ae A A AV Le WandoOws ci E ea ea woe BO Ge me Oe me el a cn Ha ME ae ke e 4 1 2 MAC OS X v 10 3 9 O posterior dye ap teat ge eS Ob aa Geet A May A ace te we A At pee eT hon et 4 2 Introducci n al Entorno Arduino 2 06 a6 2b ee as da a a Be 4 2 1
18. a Como el Arduino es incapaz de crear un n mero verdaderamente aleatorio randomSeed te permite colocar una variable constante u otra funci n dentro de la funci n random lo cual ayuda a generar mas n meros random aleatorios Existen una variedad de diferentes semillas o funciones que pueden ser usadas en esta funci n incluyendo millis o incluso analogRead para leer ruido el ctrico a trav s de un pin anal gico random max random min max La funci n random te permite devolver n meros pseudo aleatorios en un rango especificado por los valores min y maz value random 100 200 asigna a value un n mero aleatorio entre 100 y 200 Nota Usar esto despu s de usar la funci n randomSeed int randNumber variable para almacenar el valor aleatorio int led 10 LED con una resistencia de 2200hm en el pin 10 42 void setup setup no es necesario void loop randomSeed millis asigna millis como semilla randNumber random 255 numero aleatorio de 0 a 255 analogWrite led randNumber salida de la sefial PWM delay 500 5 12 Serie Serial begin rate Abre el puerto serie y asigna la tasa de baudios para la transmisi n de datos serie La t pica tasa de baudios para comunicarse con el ordenador es 9600 aunque otras velocidades est n soportadas void setupO Serial begin 9600 abre el puerto serie ajusta la tasa de datos a 9600 bps Nota Cua
19. a centrarse en los aspectos m s b sicos de las caracter sticas y la programaci n de Arduino Otro de los objetivos de esta gu a es organizar un poco la gran cantidad de informaci n sobre este tema existente en la red Para ello casi toda la informaci n se ha obtenido a trav s de la fuente http www arduino cc o de manuales basados en ella pero algo m s estructurados En general el texto es una traducci n libre al espa ol del documento original Arduino Programming Notebook escrito y compilado por Brian W Evans Por ltimo la gu a est pensada para aquellas personas que no han usado Arduino pero les gustar a iniciarse en este campo por lo que si eres un usuario avanzado de esta plataforma no te aportar nada nuevo s lo te servir para repasar conceptos b sicos Espero que les sea de utilidad Cap tulo 2 INTRODUCCI N 2 1 Qu es ARDUINO Arduino es una plataforma de prototipos electr nica de c digo abierto open source basada en hardware y software flexibles y f ciles de usar Est pensado para artistas dise adores como hobby y para cualquiera interesado en crear objetos o entornos interactivos Arduino puede sentir el entorno mediante la recepci n de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces motores y otros artefactos El microcontrolador de la placa se programa usando el Arduino Programming Language basado en Wiring y el Ardui
20. aci n son los siguientes a VIN La entrada de tensi n a la placa Arduino cuando est usando una fuente de alimenta ci n externa al contrario de los 5 voltios de la conexi n USB u otra fuente de alimentaci n regulada Puedes suministrar tensi n a trav s de este pin o si suministra tensi n a trav s del conector de alimentaci n acceder a l a trav s de este pin 5V El suministro regulado de energ a usado para alimentar al microcontrolador y otros componentes de la placa Este puede venir o desde VIN a trav s de un regulador en la placa o ser suministrado por USB u otro suministro regulado de 5 V 3V3 Un suministro de 3 3 V generado por el chip FTDI de la placa La corriente m xima es de 50 mA 12 a GND Pines de Tierra 3 2 4 Memoria El ATmegal68 tiene 16 KB de memoria Flash para almacenar c digo de los cuales 2 KB se usa para el lt bootloader Tiene 1 KB de SRAM y 512 bytes de EEPROM que puede ser leida y escrita con la librer a EEPROM 3 2 5 Entrada y Salida Cada uno de los 14 pines digitales del Diecimila puede ser usado como entrada o salida usando funciones pinMode digitalWrite y digitalRead Operan a 5 voltios Cada pin puede propor cionar o recibir un m ximo de 40 mA y tiene una resistencia interna lt pull up desconectada por defecto de 20 50 KOhms Adem s algunos pines tienen funciones especiales Serial O Rx y 1 Tx Usados para recibir Rx y transmitir Tx datos
21. antes se clasifican en grupos true false Estas son constantes Booleanas que definen niveles l gicos FALSE se define como 0 cero mientras TRUE es 1 o un valor distinto de 0 if b TRUE doSomething high low Estas constantes definen los niveles de pin como HIGH o LOW y se usan cuando se leen o se escriben los pines digitales HIGH esta definido como el nivel 1 l gico ON 5 V mientras que LOW es el nivel l gico 0 OFF 0 V digitalWrite 13 HIGH input output Constantes usadas con la funci n pinMode para definir el modo de un pin digital como INPUT u OUTPUT pinMode 13 OUTPUT 36 5 6 Control de flujo if Las sentencias if comprueban si cierta condici n ha sido alcanzada y ejecutan todas las sen tencias dentro de las llaves si la declaraci n es cierta Si es falsa el programa ignora la sentencia if someVariable value doSomething Nota Cu date de usar lt en lugar de dentro de la declaraci n de la sentencia if if else if else permite tomar decisiones este o este if inputPin HIGH doThingA else doThingB else puede preceder a otra comprobaci n if por lo que multiples y mutuas comprobaciones exclu sivas pueden ejecutarse al mismo tiempo if inputPin lt 500 doThingA else if inputPin gt 1000 doThingB else doThingC 37 for La sentencia for se usa para repetir un bloque de declarac
22. ar la placa desde el puerto USB bueno para controlar dispositivos de baja potencia como LEDs coloca el jumper en los dos pines m s cercanos al conector USB Para alimentar la placa desde una fuente externa 6 12 V coloca el jumper en los dos pines mas cercanos al conector de alimentaci n En cualquier caso conecta la placa a un puerto USB de tu ordenador El LED de alimentaci n deber a encenderse 23 Figura 4 13 Conexi n del cable USB a la placa Arduino 5 Conectar un LED si estas usando una placa antigua La primera rutina que subir s a la placa Arduino hace parpadear un LED El Arduino Diecimila y el Arduino NG original tiene una resistencia incorporada y un LED en el pin 13 En el Arduino NG Rev C y placas Arduino pre NG sin embargo el pin 13 no tiene un LED incorporado En estas placas necesitar s conectar la patilla positiva m s larga de un LED al pin 13 y la negativa m s corta a tierra marcada como GND Normalmente tambi n necesitaras usar una resistencia con el LED pero estas placas tienen una resistencia integrada en el pin 13 6 Ejecutar el entorno Arduino Abrir la carpeta de Arduino y hacer doble click en la aplicaci n Arduino 7 Subir un programa Abrir la rutina de ejemplo de parpadeo del LED File gt Sketchbook gt Examples gt Digital gt Blink 24 e098 Arduino 0011 Alpha Blink The basic Ar then off for depending on yo or a built in ri h
23. arduino en el directorio de aplicaci n de Arduino Esto deber a lanzar un di logo preguntando d nde guardas los archivos de tus rutinas de Arduino Un directorio Arduino en tu carpeta home es la ubicaci n t pica Haz click en OK El entorno Arduino deber a abrirse Introducci n al Entorno Arduino 4 2 1 Barra de herramientas Verify Compile Chequea el c digo en busca de errores Stop Para el Serial monitor o minimiza otros botones 27 New Crea una nueva rutina Open Muestra un men con todas las rutinas de tu sketchbook Save Guarda tus rutinas Upload to I O board Carga tu c digo a la placa Arduino I O Aseg rate de guardar o verificar tu rutina antes de cargarla Serial Monitor Muestra datos serie enviados desde la placa Arduino placa serie o USB Para enviar datos a la placa introduce el texto y haz click en el bot n Send o presiona Enter Elige la velocidad de transmisi n de datos desde el desplegable que asigna la velocidad pasada al Serial being en tu rutina Recuerda que en Mac o GNU Linux la placa Arduino se reiniciar vuelve a ejecutar tu rutina desde del principio cuando conectes con el Serial monitor Puedes comunicarte tambi n con la placa desde Processing Flash MaxMSP etc consulta http www arduino cc playground Main Interfacing para m s detalles Tab Menu a Permite gestionar las rutinas con m s de un archivo cada uno
24. as PWM Pines de entrada anal gicos 6 Corriente DC por pin E S 40 mA Corriente DC para pin 3 3 V 50 mA Memoria Flash 16 KB de los cuales 2 KB usados para bootloader SRAM 1 KB EEPROM 512 bytes Frecuencia de reloj 16 MHz Cuadro 3 1 Caracter sticas t cnicas de Arduino Diecimila 3 2 3 Alimentaci n El Arduino Diecimila puede ser alimentado a trav s de la conexi n USB o con un suministro de energ a externo La fuente de energ a se selecciona mediante el jumper PWR_ SEL para alimentar a la placa desde la conexi n USB colocarlo en los dos pines m s cercanos al conector USB para un suministro de energ a externo en los dos pines m s cercanos al conector de alimentaci n externa La alimentaci n externa no USB puede venir o desde un adaptador AC a DC wall wart o desde una bater a El adaptador puede ser conectado mediante un enchufe centro positivo en el conector de alimentaci n de la placa Los cables de la bater a pueden insertarse en las cabeceras de los pines Gnd y Vin del conector POWER Un regulador de bajo abandono proporciona eficiencia energ tica mejorada La placa puede operar con un suministro externo de 6 a 20 voltios Si es suministrada con menos de 7 V sin embargo el pin de 5 V puede suministrar menos de cinco voltios y la placa podr a ser inestable Si usa m s de 12 V el regulador de tensi n puede sobrecalentarse y da ar la placa El rango recomendado es de 7 a 12 voltios Los pines de aliment
25. ayudan a otras personas a entender partes del programa Empiezan con y terminan con y pueden abarcar multiples lineas este es un bloque de comentario encerrado no olvides cerrar el comentario tienen que estar balanceados Como los comentarios son ignorados por el programa y no ocupan espacio en memoria deben usarse gener samente y tambi n pueden usarse para comentar bloques de c digo con propositos de depuraci n comentarios de l nea Comentarios de una l nea empiezan con y terminan con la siguiente l nea de c digo Como el bloque de comentarios son ignorados por el programa y no toman espacio en memoria este es un comentario de una l nea Comentarios de una l nea se usan a menudo despues de declaraciones v lidas para proporcionar m s informaci n sobre qu lleva la declaraci n o proporcionar un recordatorio en el futuro 5 2 Variables Una variable es una forma de llamar y almacenar un valor num rico para usarse despu s por el programa Como su nombre indica las variables son n meros que pueden cambiarse continuamente al contrario que las constantes cuyo valor nunca cambia Una variable necesita ser declarada y opcionalmente asignada al valor que necesita para ser almacenada int inputVariable 0 declara una variable y asigna el valor a O inputVariable analogRead 2 ajusta la variable al valor del pin anal gico 2 32 Una vez que una variable ha sido asignada o reasi
26. ciones que encierran bloques de declaraciones void setupO statements void loop statements Ambas funciones son requeridas para que el programa funcione setup La funci n setup deber a contener la declaraci n de cualquier variable al comienzo del programa Es la primera funci n a ejecutar en el programa es ejecutada una vez y es usada para asignar pinMode o inicializar las comunicaciones serie void setupO pinMode pin OUTPUT ajusta pin como salida loop La funci n loop se ejecuta a continuaci n e incluye el c digo que se ejecuta cont nuamente leyendo entradas activando salidas etc Esta funci n es el n cleo de todos los programas Arduino y hace la mayor parte del trabajo 30 void loop digitalWrite pin HIGH Activa pin delay 1000 espera un segundo digitalWrite pin LOW Desactiva pin delay 1000 espera un segundo funciones Una funci n es un bloque de c digo que tiene un nombre y un grupo de declaraciones que se ejecutan cuando se llama a la funci n Podemos hacer uso de funciones integradas como void setup y void loop o escribir nuevas Las funciones se escriben para ejecutar tareas repetitivas y reducir el desorden en un progra ma En primer lugar se declara el tipo de la funci n que ser el valor retornado por la funci n int void A continuaci n del tipo se declara el nombre de la funci n y entre par ntesis
27. de los cuales aparece en su propia pesta a Estos pueden ser Archivos de c digo de Arduino sin extensi n Archivos de C extensi n c Archivos de C extensi n cpp Archivos de cabecera extensi n h 28 4 2 2 Men s Sketch Verify Compile Comprueba tu rutina para errores Import Library Utiliza una librer a en tu rutina Trabaja a adiendo include en la cima de tu c digo Esto a ade funcionalidad extra a tu rutina pero incrementa su tama o Para parar de usar una librer a elimina el Ffinclude apropiado de la cima de tu rutina Show Sketch Folder Abre la carpeta de rutinas en tu escritorio Add File A ade otro fichero fuente a la rutina El nuevo archivo aparece en una nueva pesta a en la ventana de la rutina Esto facilita y agranda proyectos con m ltiples archivos fuente Los archivos pueden ser eliminados de una rutina usando el Tab Menu Tools Auto Format Esto formatea tu c digo amigablemente Copy for Discourse Copia el c digo de tu rutina al portapapeles de forma conveniente para postear en un foro completa con resaltado de sintaxis Board Selecciona la placa que estas usando Esto controla la forma en que tu rutina es compilada y cargada as como el comportamiento de los elementos del men Burn Bootloader Serial Port Este men contiene todos los dispositivos serie reales o virtuales de tu m quina Deber a actualizarse autom ticamente cada vez que
28. do para ignorar datos malformados por ejemplo cualquiera excepto una subida de c digo nuevo interceptar los primeros bytes de datos enviados a la placa despues de abrir la conexi n Si una rutina que se ejecuta en la placa recibe una configuraci n una M s informaci n en http www arduino cc en Reference SoftwareSerial Para m s detalles visitar http wiring org co reference libraries Wire index html Descargar desde http www arduino cc en Main Software l0M s informaci n en http www arduino cc en Tutorial Bootloader lIM s detalles en http www arduino cc en Hacking Programmer 14 vez u otros datos cuando empieza asegurarse de que el software con el que se comunica espera un segundo despu s de abrir la conexi n y antes de enviar estos datos 3 2 9 Protecci n de Sobrecarga del USB El Arduino Diecimila tiene un fusible reseteable que protege tus puertos USB del ordenador de cortes y sobrecargas Aunque la mayor a de los ordenadores proporcionan su propia protecci n interna el fusible proporciona una capa de protecci n extra Si m s de 500 mA se aplican al puerto USB el fusible autom ticamente romper la conexi n hasta que el corte o la sobrecarga sean eliminados 3 2 10 Caracter sticas F sicas La m xima longitud y anchura del Diecimila PCB son 2 7 y 2 1 pulgadas respectivamente con el conector USB y el conector de alimentaci n que se extienden m s alla de las primeras dimensiones T
29. gnada puedes testear su valor para ver si cumple ciertas condiciones o puedes usarlo directamente if inputVariable lt 100 comprueba si la variable es menor que 100 inputVariable 100 si es cierto asigna el valor 100 delay inputVariable usa la variable como retardo declaraci n de variable Todas las variables tienen que ser declaradas antes de que puedan ser usadas Declarar una variable significa definir su tipo de valor como int long float etc definir un nombre especifico y opcionalmente asignar un valor inicial Esto s lo necesita hacerse una vez en un programa pero el valor puede cambiarse en cualquier momento usando aritm tica y varias asignaciones int inputVariable 0 Una variable puede ser declarada en un n mero de posiciones en todo el programa y donde esta deficinici n tiene lugar determina que partes del programa pueden usar la variable mbito de la variable Una variable puede ser declarada al comienzo del programa antes del void setup localmente dentro de funciones y algunas veces en un bloque de declaraci n por ejemplo bucles for Donde la variable es declarada determina el mbito de la variable o la abilidad de ciertas partes de un programa de hacer uso de la variable Una variable global es una que puede ser vista y usada por cualquier funci n y declaraci n en un programa Esta variable se declara al comienzo del programa antes de la funci n setup Una variable local es
30. iones encerradas en llaves un n mero espec fico de veces Un contador de incremento se usa a menudo para incrementar y terminar el bucle Hay tres partes seperadas por punto y coma en la cabecera del bucle for inicializacion condicion expresion doSomething La inicializaci n de una variable local o contador de incremento sucede primero y una sola una vez Cada vez que pasa el bucle la condici n siguiente es comprobada Si la condici n devuelve TRUE las declaraciones y expresiones que siguen se ejecutan y la condici n se comprueba de nuevo Cuando la condici n se vuelve FALSE el bucle termina for int i 0 1 lt 20 i declara i comprueba si es menor que 20 incrementa i en 1 digitalWrite 13 HIGH activa el pin 13 delay 250 pausa por un 1 4 de segundo digitalWrite 13 LOW desactiva el pin 13 delay 250 pausa por un 1 4 de segundo while El bucle while se repetir continuamente e infinitamente hasta que la expresi n dentro del par ntesis se vuelva falsa Algo debe cambiar la variable testeada o el bucle while nunca saldr Esto podr a estar en tu c digo como por ejemplo una variable incrementada o una condici n externa como un sensor de comprobaci n while someVariable value doSomething while someVariable lt 200 comprueba si es menor que 200 doSomething ejecuta las sentencias encerradas someVariable incrementa la variable en 1 do
31. le a otro al vuelo asignaciones compuestas Las asignaciones compuestas combinan una operaci n aritm tica con una asignaci n de varia ble Estas son muy frecuentemente encontradas en bucles for Las asignaciones compuestas m s comunes incluyen X lo mismo que x x 1 X lo mismo que x x 1 x y lo mismo que x x y x y lo mismo que x x y x y lo mismo que x x y x y lo mismo que x x y operadores de comparaci n Las comparaciones de una variable o constante con otra se usan a menudo en declaraciones if para comprobar si un condici n espec fica es cierta y x es igual a y y x no es igual a y lt y x es menor que y gt y x es mayor que y lt y x es menor o igual que y gt y x es mayor o igual que y ES 35 operadores l gicos Los operadores l gicos son normalmente una forma de comparar dos expresiones y devuelven TRUE o FALSE dependiendo del operador Hay tres operadores l gicos AND OR y NOT que se usan a menudo en declaraciones 2f AND logico if x gt 0 amp amp x lt 5 verdadero s lo si las dos expresiones son ciertas OR logico if x gt 0 y gt 0 verdadero si al menos una expresion es cierta NOT logico if x gt 0 verdadero s lo si la expresi n es falsa 5 5 Constantes El lenguaje Arduino tiene unos cuantos valores predefinidos que se llaman constantes Se usan para hacer los programas m s legibles Las const
32. ller Power Jack Power Pins Analog Input Pins Photograph by SparkFun Electronics Used under the Creative Commons Attribution Share Alike 3 0 license Figura 4 1 Descripci n de componentes de la placa Arduino Diecimila 4 1 1 Windows 2 Descargar el entorno Arduino Para programar la placa Arduino necesitas el entorno Arduino Descarga la ltima versi n desde http www arduino cc en Main Software Cuando termine la descarga descomprime el archivo descargado Asegurate de conservar la estructura de carpetas Haz doble click en la carpeta para abrirla Deber a haber archivos y sub carpetas en su interior 3 Instalar los drivers USB Si estas usando un Arduino USB necesitar s instalar los drivers para el chip FTDI de la placa Estos pueden encontrarse en el directorio drivers FTDI USB Drivers de la distribuci n Arduino En el siguiente paso Conectar la placa se mostrar el asistente para A adir Nuevo Hardware de Windows para estos drivers La ltima versi n de los drivers se puede encontrar en http www ftdichip com Drivers VCP htm 4 Conectar la placa La fuente de alimentaci n se selecciona mediante el jumper entre los conectores del USB y alimentaci n Para alimentar la placa desde el puerto USB bueno para controlar dispositivos de baja potencia como LEDs coloca el jumper en los dos pines m s cercanos al conector USB Para alimentar la placa desde una fuente externa 6 12 V coloca el jumper en los
33. m1 Esquem tico de Arduino D KUONO ar Tra XUSh LOKTNIY 8940904 TIA TIO ZTIAZIOW EE JOY HIKI GSIMGIUU esdidaIn 8uY93HLY 0 G 069ZEE A ano vol 49
34. ma de salida digital Este es el programa b sico hola mundo usado simplemente para activar o desactivar algo En este ejemplo un LED est conectado al pin 13 y parpadea cada segundo La resistencia puede omitirse en este pin ya que el Arduino tiene una integrada int ledPin 13 LED en el pin digital 13 void setup ejecutar una vez pinMode ledPin OUTPUT asigna al pin 13 como salida void loop ejecutar una y otra vez digitalWrite ledPin HIGH activa el LED delay 1000 pausa 1 segundo digitalWrite ledPin LOW desactiva el LED delay 1000 pausa 1 segundo 45 A 2 Entrada digital 5v oo Pin 10kR Figura A 2 Esquema de entrada digital Esta es la forma mas simple de entrada con s lo dos estados posibles ON u OFF Este ejemplo lee un interruptor simple o pulsador conectado al pin 2 Cuando el interruptor est cerrado el pin de entrada leer HIGH y activar un LED int ledPin 13 pin de salida para el LED int inPin 2 pin de entrada para un interruptor void setup pinMode ledPin OUTPUT declara LED como salida pinMode inPin INPUT declara el interruptor como entrada void loop if digitalRead inPin HIGH comprueba si la entrada esta a HIGH digitalWrite ledPin HIGH activa el LED delay 1000 pausa 1 segundo digitalWrite ledPin LOW desactiva el LED delay 1000 pausa 1 segundo A 3 Salida PWM 4 Wt PWM 220R LE
35. n USB Serial Port 5 Conectar un LED si estas usando una placa antigua La primera rutina que subir s a la placa Arduino hace parpadear un LED El Arduino Diecimila y el Arduino NG original tiene una resistencia incorporada y un LED en el pin 13 En el Arduino NG Rev C y placas Arduino pre NG sin embargo el pin 13 no tiene un LED incorporado En estas placas necesitar s conectar la patilla positiva m s larga de un LED al pin 13 y la negativa m s corta a tierra marcada como GND Normalmente tambi n necesitaras usar una resistencia con el LED pero estas placas tienen una resistencia integrada en el pin 13 6 Ejecutar el entorno Arduino Abrir la carpeta de Arduino y hacer doble click en la aplicaci n Arduino 7 Subir un programa Abrir la rutina de ejemplo de parpadeo del LED File gt Sketchbook gt Examples gt Digital gt Blink Seleccionar el dispositivo serie de la placa Arduino desde el menu Herramientas gt Puerto Serie En Windows este deber a ser COM1 o COM para la placa serie Arduino o COM3 COM4 o COM5 para la placa USB Para descubrirlo abrir el Administrador de Dispositivos de Windows En la pesta a Hardware o en el Panel de Control de Sistema Buscar un USB Serial Port en la secci n Puertos esa es la placa Arduino 20 duino example then off for one depending on y or a built in https int ledPin 13 void setup pinMode ledPin OUTPUT
36. ndo el cable Mini USB Serial Es una placa b sica que usa RS232 como un interfaz con el ordenador para programa ci n y comunicaci n Esta placa es f cil de ensamblar incluso como ejercicio de aprendizaje Serial Single Sided Esta placa est dise ada para ser grabada y ensamblada a mano Es ligeramente m s grande que la Diecimila pero aun compatible con los dispositivos 10 3 2 Arduino Diecimila 3 2 1 Visi n General El Arduino Diecimila es una placa microcontroladora basada en el ATmega168 Tiene 14 pines de entrada salida digital de los cuales 6 pueden ser usados como salidas PWM 6 entradas anal gicas un oscilador de cuarzo a 16MHz una conexi n USB un conector para alimentaci n una cabecera ICSP y un bot n de reset Contiene todo lo necesario para soportar el microcontrolador simplemente con ctalo a un ordenador con un cable USB o ench falo con un adaptador AC DC o bater a para comenzar Figura 3 1 Placa Arduino Diecimila USB Diecimila quiere decir 10000 en italiano y fue llamado as para resaltar el hecho de que m s de 10000 placas Arduino han sido fabricadas El Diecimila es el ltimo en la serie de placas USB Arduino 11 3 2 2 Resumen Caracter stica Descripci n Microcontrolador ATmegal68 Voltaje de operaci n 5V Tensi n de entrada recomendada 7 12V Tensi n de entrada l mite 6 20V Pines digitales de E S 14 de los cuales 6 proveen salid
37. ndo se usa la comunicaci n serie los pines digitales 0 Rx y 1 Tx no pueden ser usados al mismo tiempo Serial println data Imprime datos al puerto serie seguido de un retorno de carro y avance de l nea autom ticos Este comando toma la misma forma que Serial print pero es m s f cil para leer datos en el Serial Monitor Serial println analogValue envia el valor de analogValue Ejemplo de aplicacion void setup Serial begin 9600 ajusta al serie a 9600 bps void loop Serial println analogRead 0 envia valor analogico delay 1000 pausa por 1 segundo IM s informaci n en 4 2 Introducci n al Entorno Arduino 43 Bibliograf a 1 2 3 4 5 6 EVANS Brian W 2007 Arduino Programming Notebook SANTO ORCERO David 2007 Hardware Libre Todo Linux Madrid Studio Press Pp 12 17 ARDUINO Wikipedia the free encyclopedia ltima modificaci n Marzo 2008 Disponible en http en wikipedia org wiki Arduino ARDUINO Homepage ltima modificaci n Marzo 2006 Disponible en http www arduino cc es ARDUINO Homepage ltima modificaci n Julio 2008 Disponible en http www arduino cc WIRING ltima modificaci n Junio 2008 Disponible en http www wiring org co 44 Ap ndice A Ejemplos de Aplicaci n con Arduino A 1 Salida digital A Wt Pin13 220R LED Figura A 1 Esque
38. no Development Environment basado en Processing Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con software en ejecuci n en un ordenador por ejemplo con Flash Processing MaxMSP etc Las placas se pueden ensamblar a mano o encargarlas preensambladas el software se puede descargar gratuitamente Los dise os de referencia del hardware archivos CAD est n disponibles bajo licencia open source por lo que eres libre de adaptarlas a tus necesidades Arduino recibi una menci n honor fica en la secci n Digital Communities del Ars Electronica Prix en 2006 2 2 Por qu ARDUINO Hay muchos otros microcontroladores y plataformas microcontroladoras disponibles para compu taci n f sica Parallax Basic Stamp Netmedia s BX 24 Phidgets MIT s Handyboard y muchas otras ofertas de funcionalidad similar Todas estas herramientas toman los desordenados detalles de la programaci n de microcontrolador y la encierran en un paquete f cil de usar Arduino tam bi n simplifica el proceso de trabajo con microcontroladores pero ofrece algunas ventajas para profesores estudiantes y aficionados interesados sobre otros sistemas IM s informaci n en http wiring org co 2M s informaci n en http www processing org 3M s informaci n en http www arduino cc en Main USBAssembly M s informaci n en http www arduino cc en Main Buy 5M s informaci n en http www arduino cc en Main Software Ba
39. ometro en el pin analogico O int value valor para lectura void setupO 7 setup no es necesario void loop value analogRead pin ajusta value igual a pin value 4 convierte 0 1023 a 0 255 analogWrite led value saca la sefial PWM al led 5 9 Tiempo delay ms Pausa tu programa por la cantidad de tiempo especificada en milisegundos donde 1000 es igual a 1 segundo delay 1000 espera por un segundo millis Devuelve el n mero de milisegundos desde que la placa Arduino empez a ejecutar el programa actual como un valor long sin signo value millis ajusta value igual a millis Nota Este n mero se desbordar resetear de nuevo a cero despu s de aproximadamente 9 horas 41 5 10 Matem ticas min x y Calcula el m nimo de dos n meros de cualquier tipo de datos y devuelve el n mero m s peque o value min value 100 asigna a value al m s peque o de value o 100 asegurandose que nunca superara 100 max x y Calcula el m ximo de dos n meros de cualquier tipo de datos y devuelve el n mero m s grande value max value 100 asigna a value al m s grande de value o 100 asegurandose que es al menos 100 5 11 Aleatorio randomSeed seed Asigna un valor o semilla seed en ingl s como el punto de partida para la funci n random randomSeed value asigna value como la semilla aleatori
40. que bloquean a la placa principal IM s informaci n en http www arduino cc en Reference EEPROM 2M s informaci n en http www arduino cc en Reference 3M s informaci n en http www arduino cc en Reference M s informaci n en http www arduino cc en Reference M s informaci n en http wiring org co reference libraries Wire index html M s informaci n en http www arduino cc en Reference 13 3 2 6 Comunicaci n El Arduino Diecimila tiene un numero de infraestructuras para comunicarse con un ordenador otro Arduino u otros microcontroladores El ATmegal68 provee comunicaci n serie UART TTL 5 V la cual est disponible en los pines digitales O Rx y 1 Tx Un FTDI FT232RL en la placa canaliza esta comunicaci n serie al USB y los drivers FTDI incluidos con el software Arduino proporcionan un puerto de comunicaci n virtual al software del ordenador El software Arduino incluye un monitor serie que permite a datos de texto simple ser enviados a y desde la placa Arduino Una libreria SoftwareSerial permite comunicaci n serie en cualquiera de los pines digitales del Diecimila El ATmegal68 tambi n soporta comunicaci n 12C TWI y SPI El software Arduino incluye una librer a Wire para simplificar el uso del bus 12C8 Para usar la comunicaci n SPI consultar el esquema del ATmegal68 3 2 7 Programaci n El Arduino Diecimila puede ser programado con el software Arduino El ATmegal68 del A
41. rato Las placas Arduino son relativamente baratas comparadas con otras plataformas microcontroladoras La versi n menos cara del modulo Arduino puede ser ensamblada a mano e incluso los m dulos de Arduino preensamblados cuestan menos de 50 Multiplataforma El software de Arduino se ejecuta en sistemas operativos Windows Ma cintosh OSX y GNU Linux La mayor a de los sistemas microcontroladores est n limitados a Windows Entorno de programaci n simple y claro El entorno de programaci n de Arduino es f cil de usar para principiantes pero suficientemente flexible para que usuarios avanzados puedan aprovecharlo tambi n Para profesores est convenientemente basado en el entorno de pro gramaci n Processing de manera que estudiantes aprendiendo a programar en ese entorno estar n familiarizados con el aspecto y la imagen de Arduino C digo abierto y software extensible El software Arduino est publicado como herramientas de c digo abierto disponible para extensi n por programadores experimentados El lenguaje puede ser expandido mediante librerias C y la gente que quiera entender los detalles t cnicos pueden hacer el salto desde Arduino a la programaci n en lenguaje AVR C en el cual est basado De forma similar puedes a adir c digo AVR C directamente en tus programas Arduino si quieres C digo abierto y hardware extensible El Arduino est basado en microcontroladores AT MEGAS y ATMEGA168 de Atmel Los planos para los
42. rcuitos en los pines de Arduino o corriente excesiva puden da ar o destruir el pin de salida o da ar el chip ATmega A menudo es una buena idea conectar un pin OUTPUT a un dispositivo externo en serie con una resistencia de 470Ohm o 1KOhm digitalRead pin Lee el valor desde un pin digital especificado con el resultado HIGH o LOW El pin puede ser especificado o como una variable o como una constante 0 13 value digitalRead Pin ajusta value igual al pin de entrada 39 digitalWrite pin value Devuelve o el nivel l gico HIGH o LOW a activa o desactiva un pin digital especificado El pin puede ser especificado como una variable o constante 0 13 digitalWrite pin HIGH ajusta pin a HIGH Ejemplo de programa int led 13 conecta led al pin 13 int pin 7 conecta pushbutton al pin 7 int value 0 variable para almacenar el valor leido void setup pinMode led OUTPUT ajusta el pin 13 como salida pinMode pin INPUT ajusta el pin 7 como entrada void loop value digitalRead pin ajusta value igual al pin de entrada digitalWrite led value ajusta led al valor del boton 5 8 E S anal gica analogRead pin Lee el valor desde un pin anal gico especificado con una resoluci n de 10 bits Esta funci n s lo trabaja en los pines anal gicos 0 5 Los valores enteros devueltos est n en el rango de 0 a 1023 value analogRead
43. rduino Diecimila viene con un bootloader pregrabado que te permite subirle nuevo c digo sin usar un programador hardware externo Se comunica usando el protocolo original STK500 Tambi n puedes saltar el bootloader y programar el ATmega168 a trav s de la cabecera ICSP In Circuit Serial Programming 3 2 8 Reseteo Autom tico Software En lugar de requerir una pulsaci n f sica del bot n de reset antes de una subida el Arduino Diecimila esta dise ado de forma que permite ser reseteado por software en ejecuci n en una computadora conectada Una de las lineas de control de flujo de hardware DTR del FT232RL esta conectada a la linea de reset del ATmegal68 a trav s de un condensador de 100 nF Cuando esta linea toma el valor LOW la linea reset se mantiene el tiempo suficiente para resetear el chip La version 0009 del software Arduino usa esta capacidad para permitirte cargar c digo simplemente presionando el bot n upload en el entorno Arduino Esto significa que el bootloader puede tener un tiempo de espera m s corto mientras la bajada del DTR puede ser coordinada correctamente con el comienzo de la subida Esta configuraci n tiene otras repercusiones Cuando el Diecimila esta conectado a un ordenador que ejecuta o Mac OS X o Linux se resetea cada vez que se hace una conexi n a l por software a trav s de USB Durante el siguiente medio segundo aproximadamente el bootloader se ejecutar en el Diecimila Mientras est programa
44. res agujeros de tornillo permiten a la placa atornillarse a una superficie o caja 15 Cap tulo 4 SOFTWARE 4 1 Instalar el Software Arduino Esta secci n explica como instalar el software Arduino en un ordenador que ejecute cualquiera de los siguientes Sistemas Operativos Windows Mac OS X GNU Linux Este documento explica como conectar tu placa Arduino al ordenador y cargar tu primera rutina Estos son los pasos que seguiremos 1 Obtener una placa Arduino y un cable 2 Descargar el entorno Arduino 3 Instalar los drivers USB 4 Conectar la placa 5 Conectar un LED 6 Ejecutar el entorno Arduino 7 Subir un programa 8 Buscar el Led que parpadea 1 Obtener una placa Arduino y un cable En este tutorial se asume que estas usando un Arduino Diecimila Si tienes otra placa lee la informaci n correspondiente en http www arduino cc en Guide HomePage El Arduino Dieci mila es una placa simple que contiene todo lo que necesitas para empezar a trabajar con electr nica y programaci n de microcontrolador Tambi n necesitas un cable USB est ndar del tipo que conectar as a una impresora USB por ejemplo 16 RX TX LEDs Pin 13 L LED Digital Pins FTDI USB Chip ODO aa TALY SF Ws E den G DAA ii FR Power LED ml az a a USB Jack ae OCA OER x apiy ANO e APR gt Reset Button gt es e Diecimila vie ZA vo SL INE O ICSP Header Power Selection Jumper Voltage Regulator Microcontro
45. stas ubicaciones est marcado desmarca Buscar dispositivos extraibles marca Incluir esta ubicaci n en la b squeda y navega a la ubicaci n donde descomprimiste los drivers USB en el paso anterior Haz click en siguiente Found New Hardware Wizard Please choose your search and installation options a y Search for the best driver in these locations Use the check boxes below to limit or expand the default search which includes local paths and removable media The best driver found will be installed C Search removable media floppy CD ROM Include this location in the search C Program Files arduino OO06 drivers FTDI USB Dr w Don t search will choose the driver to install Choose this option to select the device driver from a list Windows does not guarantee that the driver you choose will be the best match for your hardware C s Ji Figura 4 5 Asistente para Nuevo Hardware MS Windows Paso 3 El asistente buscar el driver y dir que se encontr USB Serial Converter Haz click en finalizar 19 Found New Hardware Wizard Completing the Found New Hardware Wizard The wizard has finished installing the software for e USB Serial Converter Click Finish to close the wizard Finish Figura 4 6 Asistente para Nuevo Hardware MS Windows Paso 4 El asistente para A adir Nuevo Hardware aparecer de nuevo Realiza los mismos pasos Esta vez se encontrar u
46. ttp www arduino cc en Tutorial Blink le Turns on an LED on for one second so on We use pin 13 because 0 board it has either a built in LED o that you need only an LED int ledPin 13 LED connected to digital pin 13 void setup run once when the sketch starts pinMode ledPin OUTPUT sets the digital pin as output void loop run over and over again digitalWrite ledPin HIGH sets the LED on delay 1090 digitalllrite ledPin LOW delay 1888 s for a second Figura 4 14 Entorno Arduino Selecciona el dispositivo de la placa Arduino desde el men Tools gt Serial Port En el Mac deber a ser algo con dev tty usbserial dit Sketch HIS Help aca Auto Format seT Archive Sketch Export Folder Microcontroller MCU TEE Serial Port v dev tty usbserial A3000Yj0 Serial Monitor Baud Rate b dev cu usbserial A3000Yj0 dev tty Bluetooth PDA Sync dev cu Bluetooth PDA Sync dev tty Bluetooth Modem pe on Chee Daba lt http www 8j8 org gt dev cu Bluetooth Modem k httn arduinn herlins de turns on al k pin in in board beca Burn Bootloader E eX ee Ke Ke FF Figura 4 15 Ment de selecci n de puerto del Entorno Arduino Asegurate de que Arduino Diecimila est seleccionado en el men Tools gt Board 25 Sketch Barrio Help Arduino Auto Format HT Copy for Forum Archive Sketch ra
47. while El bucle do while es un bucle que trabaja de la misma forma que el bucle while con la excepci n de que la condici n es testeada al final del bucle por lo que el bucle do while siempre se ejecutar al menos una vez 38 do doSomething while someVariable value do x readSensors asigna el valor de readSensors a x delay 50 pausa de 50 milisegundos while x lt 100 repite si x es menor que 100 5 7 E S digital pinMode pin mode Se usa en void setup para configurar un pin espec fico para que se comporte o como INPUT o como OUTPUT pintMode pin OUTPUT ajusta pin como salida Los pines digitales de Arduino estan ajustados a INPUT por defecto por lo que no necesitan ser declarados explicitamente como entradas con pinMode Los pines configurados como INPUT se dice que estan e un estado de alta impedancia Hay tambi n convenientes resistencias de pull up de 20KOhm integradas en el chip ATmega que pueden ser accedidas por software A estas resistencias pull up integradas se accede de la siguiente manera pinMode pin INPUT ajusta pin como entrada digitalWrite pin HIGH activa la resistencia de pull up Las resistencias de pull up se usar an normalmente para conectar entradas como interruptores Los pines configurados como OUTPUT se dice que est n en un estado de baja impedancia y pueden proporcionar 40 mA a otros dispositivos circuitos Nota Cortoci
Download Pdf Manuals
Related Search
Related Contents
ENSINAMENTOS DOS PRESIDENTES DA IGREJA DAVID O.McKAY 取扱説明書ダウンロード(PDF) Copyright © All rights reserved.
Failed to retrieve file