Introducción a Arduino

Un Arduino es una placa de desarrollo de microcontroladores de código abierto. En inglés simple, puede usar el Arduino para leer sensores y controlar cosas como motores y luces. Esto le permite cargar programas en este tablero que luego pueden interactuar con cosas del mundo real. Con esto, puede crear dispositivos que respondan y reaccionen ante el mundo en general.

Por ejemplo, puede leer un sensor de humedad conectado a una planta en maceta y encender un sistema de riego automático si se seca demasiado. O bien, puede crear un servidor de chat independiente que esté conectado a su enrutador de Internet. O bien, puede hacer que twittee cada vez que su gato pase por la puerta de una mascota. O bien, puede hacer que comience una taza de café cuando suene la alarma por la mañana.

Básicamente, si hay algo que está controlado de alguna manera por la electricidad, el Arduino puede interactuar con él de alguna manera. E incluso si no está controlado por la electricidad, es probable que todavía pueda usar cosas que son (como motores y electroimanes), para interactuar con él.

Las posibilidades del Arduino son casi ilimitadas. Como tal, no hay forma de que un solo tutorial pueda cubrir todo lo que pueda necesitar saber. Dicho esto, he hecho todo lo posible para darle una visión general básica de las habilidades y conocimientos fundamentales que necesita para poner en funcionamiento su Arduino. Si nada más, esto debería funcionar como un trampolín para una mayor experimentación y aprendizaje.

Paso 1: diferentes tipos de arduinos

Hay varios tipos diferentes de Arduinos para elegir. Esta es una breve descripción de algunos de los tipos más comunes de placas Arduino que puede encontrar. Para obtener una lista completa de las placas Arduino compatibles actualmente, consulte la página de hardware de Arduino.

Arduino Uno

La versión más común de Arduino es el Arduino Uno. Esta placa es de lo que la mayoría de la gente habla cuando se refieren a un Arduino. En el siguiente paso, hay un resumen más completo de sus características.

Arduino NG, Diecimila y Duemilanove (versiones heredadas)

Las versiones heredadas de la línea de productos Arduino Uno consisten en NG, Diecimila y Duemilanove. Lo importante a tener en cuenta sobre las placas heredadas es que carecen de características particulares del Arduino Uno. Algunas diferencias clave:

  • Diecimila y NG usan chips ATMEGA168 (a diferencia del ATMEGA328 más potente),
  • Tanto Diecimila como NG tienen un puente al lado del puerto USB y requieren una selección manual de USB o batería.
  • El Arduino NG requiere que mantenga presionado el botón de descanso en el tablero durante unos segundos antes de cargar un programa.

Arduino Mega 2560

El Arduino Mega 2560 es la segunda versión más común de la familia Arduino. El Arduino Mega es como el hermano mayor más robusto del Arduino Uno. Cuenta con 256 KB de memoria (8 veces más que el Uno). También tenía 54 pines de entrada y salida, 16 de los cuales son pines analógicos y 14 de los cuales pueden hacer PWM. Sin embargo, toda la funcionalidad adicional tiene el costo de una placa de circuito un poco más grande. Puede hacer que su proyecto sea más poderoso, pero también lo hará más grande. Echa un vistazo a la página oficial Arduino Mega 2560 para más detalles.

Arduino Mega ADK

Esta versión especializada del Arduino es básicamente un Arduino Mega que ha sido diseñado específicamente para interactuar con teléfonos inteligentes Android. Esto también es ahora una versión heredada.

Arduino Yun

El Arduino Yun usa un chip ATMega32U4 en lugar del ATmega328. Sin embargo, lo que realmente lo distingue es la adición del microprocesador Atheros AR9331. Este chip adicional permite que esta placa ejecute Linux además del sistema operativo Arduino normal. Si todo eso no fuera suficiente, también tiene capacidad wifi integrada. En otras palabras, puede programar la placa para hacer cosas como lo haría con cualquier otro Arduino, pero también puede acceder al lado de la placa de Linux para conectarse a Internet a través de wifi. El lado de Arduino y el lado de Linux pueden comunicarse fácilmente entre ellos. Esto hace que esta placa sea extremadamente potente y versátil. Apenas estoy rascando la superficie de lo que puede hacer con esto, pero para obtener más información, consulte la página oficial de Arduino Yun.

Arduino Nano

Si quieres ir más pequeño que la placa Arduino estándar, ¡el Arduino Nano es para ti! Basado en un chip ATmega328 de montaje en superficie, esta versión del Arduino se ha reducido a una pequeña huella capaz de adaptarse a espacios reducidos. También se puede insertar directamente en una placa de pruebas, lo que facilita la creación de prototipos.

Arduino LilyPad

El LilyPad fue diseñado para aplicaciones portátiles y de textiles electrónicos. Está diseñado para ser cosido a tela y conectado a otros componentes cosibles con hilo conductor. Esta placa requiere el uso de un cable de programación en serie FTDI-USB TTL especial. Para obtener más información, la página Arduino LilyPad es un buen punto de partida.

Paso 2: características de Arduino Uno

Algunas personas piensan que toda la placa Arduino es un microcontrolador, pero esto es inexacto. La placa Arduino en realidad es una placa de circuito especialmente diseñada para la programación y creación de prototipos con microcontroladores Atmel.

Lo bueno de la placa Arduino es que es relativamente barata, se conecta directamente al puerto USB de una computadora y es muy simple de configurar y usar (en comparación con otras placas de desarrollo).

Algunas de las características clave del Arduino Uno incluyen:
  • Un diseño de código abierto. La ventaja de ser de código abierto es que tiene una gran comunidad de personas que lo utilizan y solucionan problemas. Esto facilita encontrar a alguien que lo ayude a depurar sus proyectos.
  • Una interfaz USB fácil. El chip de la placa se conecta directamente a su puerto USB y se registra en su computadora como un puerto serie virtual. Esto le permite interactuar con él como si fuera un dispositivo en serie. El beneficio de esta configuración es que la comunicación en serie es un protocolo extremadamente fácil (y probado en el tiempo), y el USB hace que la conexión a computadoras modernas sea realmente conveniente.
  • Gestión de energía muy conveniente y regulación de voltaje incorporada. Puede conectar una fuente de alimentación externa de hasta 12v y la regulará a 5v y 3.3v. También se puede alimentar directamente desde un puerto USB sin alimentación externa.
  • Un "cerebro" microcontrolador fácil de encontrar y muy barato. El chip ATmega328 se vende por alrededor de $ 2.88 en Digikey. Tiene innumerables características agradables de hardware como temporizadores, pines PWM, interrupciones internas y externas y múltiples modos de suspensión. Consulte la hoja de datos oficial para más detalles.
  • Un reloj de 16mhz. Esto no lo convierte en el microcontrolador más rápido, pero lo suficientemente rápido para la mayoría de las aplicaciones.
  • 32 KB de memoria flash para almacenar su código.
  • 13 pines digitales y 6 pines analógicos. Estos pines le permiten conectar hardware externo a su Arduino. Estos pines son clave para extender la capacidad informática del Arduino al mundo real. Simplemente conecte sus dispositivos y sensores en los enchufes que corresponden a cada uno de estos pines y listo.
  • Un conector ICSP para omitir el puerto USB e interconectar el Arduino directamente como un dispositivo en serie. Este puerto es necesario para volver a cargar su chip si está dañado y ya no puede comunicarse con su computadora.
  • Un LED incorporado en el pin digital 13 para una depuración rápida y fácil del código.
  • Y por último, pero no menos importante, un botón para restablecer el programa en el chip.

Para obtener un resumen completo de todo lo que Arduino Uno tiene para ofrecer, asegúrese de visitar la página oficial de Arduino.

Paso 3: IDE Arduino

Antes de que pueda comenzar a hacer algo con Arduino, debe descargar e instalar Arduino IDE (entorno de desarrollo integrado). A partir de este momento nos referiremos al IDE de Arduino como el Programador Arduino.

El programador Arduino se basa en el IDE de procesamiento y utiliza una variación de los lenguajes de programación C y C ++.

Puede encontrar la versión más reciente del Arduino Programmer en esta página.

Paso 4: conéctelo

Conecte el Arduino al puerto USB de su computadora.

Tenga en cuenta que aunque el Arduino se conecta a su computadora, no es un verdadero dispositivo USB. La placa tiene un chip especial que le permite aparecer en su computadora como un puerto serie virtual cuando está conectado a un puerto USB. Es por eso que es importante enchufar la placa. Cuando la placa no está enchufada, el puerto serie virtual en el que opera el Arduino no estará presente (ya que toda la información sobre él vive en la placa Arduino).

También es bueno saber que cada Arduino tiene una dirección de puerto serie virtual única. Esto significa que cada vez que conecte una placa Arduino diferente a su computadora, necesitará reconfigurar el puerto serie que está en uso.

El Arduino Uno requiere un cable USB A macho a USB B macho.

Paso 5: Configuraciones

Antes de que pueda comenzar a hacer algo en el programador Arduino, debe configurar el tipo de placa y el puerto serie.

Para configurar el tablero, vaya a lo siguiente:

Herramientas -> Tableros
Seleccione la versión de la placa que está utilizando. Como tengo un Arduino Uno enchufado, obviamente seleccioné "Arduino Uno".

Para configurar el puerto serie, vaya a lo siguiente:

Herramientas -> Puerto serie
Seleccione el puerto serie que se parece a:

/dev/tty.usbmodem [números aleatorios]

Paso 6: ejecutar un boceto

Los programas de Arduino se llaman bocetos. El programador Arduino viene con una tonelada de bocetos de ejemplo precargados. Esto es genial porque incluso si nunca has programado nada en tu vida, puedes cargar uno de estos bocetos y hacer que el Arduino haga algo.

Para conectar el LED al pin digital 13 para que se encienda y se apague, carguemos el ejemplo de parpadeo.

El ejemplo de parpadeo se puede encontrar aquí:

Archivos -> Ejemplos -> Conceptos básicos -> Blink
El ejemplo de parpadeo básicamente establece el pin D13 como salida y luego parpadea el LED de prueba en la placa Arduino cada segundo.

Una vez que se abre el ejemplo de parpadeo, se puede instalar en el chip ATMEGA328 presionando el botón de carga, que parece una flecha apuntando hacia la derecha.

Observe que el LED de estado de montaje en superficie conectado al pin 13 en el Arduino comenzará a parpadear. Puede cambiar la velocidad del parpadeo cambiando la duración de la demora y presionando nuevamente el botón de carga.

Paso 7: monitor en serie

El monitor en serie permite que su computadora se conecte en serie con el Arduino. Esto es importante porque toma datos que su Arduino está recibiendo de sensores y otros dispositivos y los muestra en tiempo real en su computadora. Tener esta capacidad es invaluable para depurar su código y comprender qué valores numéricos está recibiendo realmente el chip.

Por ejemplo, conecte el barrido central (pin central) de un potenciómetro a A0, y los pines externos, respectivamente, a 5v y tierra. Luego cargue el boceto que se muestra a continuación:

Archivo -> Ejemplos -> 1.Básicos -> AnalogReadSerial
Haga clic en el botón para activar el monitor en serie que se parece a una lupa. Ahora puede ver los números que lee el pin analógico en el monitor en serie. Cuando gire la perilla, los números aumentarán y disminuirán.

Los números estarán entre el rango de 0 y 1023. La razón de esto es que el pin analógico está convirtiendo un voltaje entre 0 y 5V en un número discreto.

Paso 8: entrada digital

El Arduino tiene dos tipos diferentes de pines de entrada, los que son analógicos y digitales.

Para empezar, veamos los pines de entrada digital.

Los pines de entrada digital solo tienen dos estados posibles, que están activados o desactivados. Estos dos estados de encendido y apagado también se conocen como:
  • Alto o bajo
  • 1 o 0
  • 5V o 0V.
Esta entrada se usa comúnmente para detectar la presencia de voltaje cuando un interruptor se abre o se cierra.

Las entradas digitales también se pueden utilizar como base para innumerables protocolos de comunicación digital. Al crear un pulso de 5V (ALTO) o un pulso de 0V (BAJO), puede crear una señal binaria, la base de toda la computación. Esto es útil para hablar con sensores digitales como un sensor ultrasónico PING o comunicarse con otros dispositivos.

Para un ejemplo simple de una entrada digital en uso, conecte un interruptor del pin digital 2 a 5V, una resistencia de 10K ** del pin digital 2 a tierra, y ejecute el siguiente código:

Archivo -> Ejemplos -> 2.Digital -> Botón
** La resistencia de 10K se llama resistencia desplegable porque conecta el pin digital a tierra cuando no se presiona el interruptor. Cuando se presiona el interruptor, las conexiones eléctricas en el interruptor tienen menos resistencia que la resistencia, y la electricidad ya no se conecta a tierra. En cambio, la electricidad fluye entre 5V y el pin digital. Esto se debe a que la electricidad siempre elige el camino de menor resistencia. Para obtener más información sobre esto, visite la página Pines digitales.

Paso 9: entrada analógica

Además de los pines de entrada digital, el Arduino también cuenta con una serie de pines de entrada analógica.

Los pines de entrada analógica toman una señal analógica y realizan una conversión de analógico a digital de 10 bits (ADC) para convertirla en un número entre 0 y 1023 (pasos de 4, 9 mV).

Este tipo de entrada es buena para leer sensores resistivos. Estos son básicamente sensores que proporcionan resistencia al circuito. También son buenos para leer una señal de voltaje variable entre 0 y 5V. Esto es útil al interactuar con varios tipos de circuitos analógicos.

Si siguió el ejemplo en el Paso 7 para conectar el monitor en serie, ya ha intentado usar un pin de entrada analógica.

Paso 10: salida digital

Un pin de salida digital se puede configurar en ALTO (5v) o BAJO (0v). Esto le permite encender y apagar las cosas.

Además de encender y apagar las cosas (y hacer que los LED parpadeen), esta forma de salida es conveniente para una serie de aplicaciones.

En particular, le permite comunicarse digitalmente. Al encender y apagar el pin rápidamente, está creando estados binarios (0 y 1), que muchos otros dispositivos electrónicos reconocen como una señal binaria. Al utilizar este método, puede comunicarse utilizando una serie de protocolos diferentes.

La comunicación digital es un tema avanzado, pero para tener una idea general de lo que se puede hacer, consulte la página Interfaz con hardware.

Si siguió el ejemplo en el Paso 6 para hacer que un LED parpadee, ya ha intentado usar un pin de salida digital.

Paso 11: salida analógica

Como se mencionó anteriormente, el Arduino tiene una serie de funciones especiales integradas. Una de estas funciones especiales es la modulación de ancho de pulso, que es la forma en que un Arduino puede crear una salida similar a la analógica.

La modulación de ancho de pulso, o PWM para abreviar, funciona girando rápidamente el pin PWM alto (5V) y bajo (0V) para simular una señal analógica. Por ejemplo, si enciende y apaga un LED lo suficientemente rápido (aproximadamente cinco milisegundos cada uno), parecería promediar el brillo y solo parecería estar recibiendo la mitad de la potencia. Alternativamente, si parpadeara durante 1 milisegundo y luego se apagara durante 9 milisegundos, el LED parecería estar 1/10 tan brillante y solo recibiría 1/10 del voltaje.

PWM es clave para una serie de aplicaciones que incluyen hacer sonido, controlar el brillo de las luces y controlar la velocidad de los motores.

Para obtener una explicación más detallada, consulte los secretos de la página PWM.

Para probar PWM usted mismo, conecte un LED y una resistencia de 220 ohmios al pin digital 9, en serie a tierra. Ejecute el siguiente código de ejemplo:

Archivo -> Ejemplos -> 3.Analógico -> Desvanecimiento

Paso 12: escriba su propio código

Para escribir su propio código, necesitará aprender una sintaxis básica del lenguaje de programación. En otras palabras, debe aprender a formar correctamente el código para que el programador lo entienda. Puedes pensar en este tipo de comprensión de la gramática y la puntuación. Puede escribir un libro completo sin la gramática y la puntuación adecuadas, pero nadie podrá entenderlo, incluso si está en inglés.

Algunas cosas importantes a tener en cuenta al escribir su propio código:

  • Un programa Arduino se llama boceto.
  • Todo el código en un boceto Arduino se procesa de arriba a abajo.
  • Los bocetos de Arduino generalmente se dividen en cinco partes.
  1. El boceto generalmente comienza con un encabezado que explica qué está haciendo el boceto y quién lo escribió.
  2. A continuación, generalmente define variables globales. A menudo, aquí es donde se dan nombres constantes a los diferentes pines Arduino.
  3. Después de establecer las variables iniciales, Arduino comienza la rutina de configuración. En la función de configuración, establecemos las condiciones iniciales de las variables cuando es necesario y ejecutamos cualquier código preliminar que solo queremos ejecutar una vez. Aquí es donde se inicia la comunicación en serie, que es necesaria para ejecutar el monitor en serie.
  4. Desde la función de configuración, pasamos a la rutina de bucle. Esta es la rutina principal del boceto. Aquí no solo va su código principal, sino que se ejecutará una y otra vez, siempre que el boceto continúe ejecutándose.
  5. Debajo de la rutina de bucle, a menudo hay otras funciones enumeradas. Estas funciones están definidas por el usuario y solo se activan cuando se llama en la configuración y la rutina de bucle. Cuando se invocan estas funciones, Arduino procesa todo el código de la función de arriba a abajo y luego vuelve a la siguiente línea en el boceto donde se detuvo cuando se llamó a la función. Las funciones son buenas porque le permiten ejecutar rutinas estándar, una y otra vez, sin tener que escribir las mismas líneas de código una y otra vez. Simplemente puede invocar una función varias veces, y esto liberará memoria en el chip porque la rutina de la función solo se escribe una vez. También hace que el código sea más fácil de leer. Para aprender a formar sus propias funciones, consulte esta página.
  • Dicho todo esto, las dos únicas partes del bosquejo que son obligatorias son las rutinas de configuración y bucle.
  • El código debe estar escrito en el idioma Arduino, que se basa aproximadamente en C.
  • Casi todas las declaraciones escritas en el idioma Arduino deben terminar con a;
  • Los condicionales (como sentencias if y para bucles) no necesitan a;
  • Los condicionales tienen sus propias reglas y se pueden encontrar en "Estructuras de control" en la página Arduino Language
  • Las variables son compartimentos de almacenamiento para números. Puede pasar valores dentro y fuera de las variables. Las variables deben estar definidas (indicadas en el código) antes de que puedan usarse y deben tener un tipo de datos asociado. Para conocer algunos de los tipos de datos básicos, revise la página de idioma.

¡Bueno! Digamos que queremos escribir un código que lea una fotocélula conectada al pin A0, y usemos la lectura que obtenemos de la fotocélula para controlar el brillo de un LED conectado al pin D9.

Primero, queremos abrir el boceto BareMinimum, que se puede encontrar en:

Archivo -> Ejemplos -> 1.Básico -> BareMinimum

El BareMinimum Sketch debería verse así:
 void setup () {// ponga su código de configuración aquí, para ejecutarlo una vez:} void loop () {// ponga su código principal aquí, para ejecutarlo repetidamente:} 

A continuación, coloquemos un encabezado en el código, para que otras personas sepan lo que estamos haciendo, por qué y en qué términos:
 / * LED Dimmer de Genius Arduino Programmer 2012 Controla el brillo de un LED en el pin D9 en función de la lectura de una fotocélula en el pin A0 Este código está en el dominio público * / void setup () {// ponga aquí su código de configuración, ejecutar una vez:} void loop () {// ponga su código principal aquí, para ejecutar repetidamente:} 

Una vez que todo esté al cuadrado, definamos los nombres de los pines y establezcamos variables:
 / * LED Dimmer por Genius Arduino Programmer 2012 Controla el brillo de un LED en el pin D9 en función de la lectura de una fotocélula en el pin A0 Este código está en el dominio público * / // nombre pin analógico 0 un nombre constante const int analogInPin = A0; // nombre pin digital 9 un nombre constante const int LEDPin = 9; // variable para leer una fotocélula int photocell; void setup () {// ponga su código de configuración aquí, para ejecutarlo una vez:} void loop () {// ponga su código principal aquí, para ejecutarlo repetidamente:} 

Ahora que las variables y los nombres de los pines están configurados, escribamos el código real:
 / * LED Dimmer por Genius Arduino Programmer 2012 Controla el brillo de un LED en el pin D9 en función de la lectura de una fotocélula en el pin A0 Este código está en el dominio público * / // nombre pin analógico 0 un nombre constante const int analogInPin = A0; // nombre pin digital 9 un nombre constante const int LEDPin = 9; // variable para leer una fotocélula int photocell; void setup () {// nada aquí ahora} void loop () {// lee el análogo en el pin y establece la lectura en la variable de la fotocélula photocell = analogRead (analogInPin); // controla el pin del LED usando el valor leído por la fotocélula analogWrite (LEDPin, photocell); // pausa el código por 1/10 segundo // 1 segundo = 1000 delay (100); } 

Si queremos ver qué números lee realmente el pin analógico de la fotocélula, necesitaremos usar el monitor en serie. Activemos el puerto serie y generemos esos números:
 / * LED Dimmer por Genius Arduino Programmer 2012 Controla el brillo de un LED en el pin D9 en función de la lectura de una fotocélula en el pin A0 Este código está en el dominio público * / // nombre pin analógico 0 un nombre constante const int analogInPin = A0; // nombre pin digital 9 un nombre constante const int LEDPin = 9; // variable para leer una fotocélula int photocell; configuración nula () {Serial.begin (9600); } void loop () {// lee el análogo en el pin y establece la lectura en la variable de la fotocélula photocell = analogRead (analogInPin); // imprime el valor de la fotocélula en el monitor serie Serial.print ("Photocell ="); Serial.println (fotocélula); // controla el pin del LED usando el valor leído por la fotocélula analogWrite (LEDPin, photocell); // pausa el código por 1/10 segundo // 1 segundo = 1000 delay (100); } 

Para obtener más información sobre la formulación de código, visite la página de Fundamentos. Si necesita ayuda con el idioma Arduino, entonces la página de idiomas es el lugar para usted.

Además, la página de boceto de ejemplo es un excelente lugar para comenzar a jugar con el código. No tengas miedo de cambiar las cosas y experimentar.

Paso 13: escudos

Los escudos son placas de adaptador de expansión que se conectan sobre el Arduino Uno y le dan funciones especiales.

Dado que el Arduino es un hardware abierto, cualquiera que tenga la inclinación es libre de hacer un escudo Arduino para cualquier tarea que desee realizar. Debido a esto, hay innumerables escudos Arduino en la naturaleza. Puedes encontrar una lista cada vez mayor de escudos Arduino en el parque infantil Arduino. Tenga en cuenta que habrá más escudo del que encontrará en la lista de esa página (como siempre, Google es su amigo).

Para darle una pequeña idea de las capacidades de los escudos Arduino, consulte estos tutoriales sobre cómo usar tres escudos Arduino oficiales:
  • Escudo SD inalámbrico
  • Ethernet Shield
  • Escudo motor

Paso 14: construcción de un circuito externo

A medida que sus proyectos se vuelvan más complejos, querrá construir sus propios circuitos para interactuar con el Arduino. Si bien no aprenderá electrónica de la noche a la mañana, Internet es un recurso increíble para el conocimiento electrónico y los diagramas de circuitos.

Para comenzar con la electrónica, visite Basic Electronics Instructable.

Paso 15: yendo más allá

A partir de aquí, lo único que queda por hacer es hacer algunos proyectos. Hay innumerables recursos y tutoriales increíbles de Arduino en línea.

Asegúrese de revisar la página y el foro oficial de Arduino. La información que se enumera aquí es invaluable y muy completa. Este es un gran recurso para depurar proyectos.

Si necesita inspiración para algunos proyectos divertidos para principiantes, consulte la guía de 20 proyectos increíbles de Arduino.

Para una gran lista o proyecto Arduino, el Canal Arduino es un gran lugar para comenzar.

Eso es. Estás sólo en esto.

¡Buena suerte y feliz pirateo!

Artículos Relacionados