Programar fácil con Arduino

Programar fácil con Arduino, entiende cómo funciona el mundo.

  • Inicio
  • Cursos
  • Blog
  • Podcast
  • ¿Quién soy?
  • Contactar
  • Acceder
Usted está aquí: Inicio / Podcast / 26. Arduino entradas y salidas

26. Arduino entradas y salidas

Luis del Valle Hernández

http://api.spreaker.com/download/episode/6218231/capitulo26.mp3

Podcast: Descargar (20.3MB)

entradas-salidas-arduino

Primer capítulo de la serie donde veremos como crear un proyecto con Arduino y tecnología web. En este capítulo, Arduino entradas y salidas, os explicaremos como podemos conectar dispositivos al Arduino a través de las entradas y salidas.

Pero como siempre ya sabéis, si queréis contactar con nosotros lo podéis hacer a través del formulario de contacto o de Twitter @programarfacilc. También tenéis una lista de distribución a vuestra disposición para que os suscribáis.

En el Arduino UNO existen entradas y salidas analógicas (6) y digitales (16). Por un lado las analógicas son utilizadas, generalmente, para dispositivos de entrada y nos permiten leer un rango de valores. En cambio las digitales pueden tener a la entrada o a la salida 0V o 5V, esto nos indica que ese pin está en estado bajo (Low) o alto (High).

Entradas/salidas digitales

Se trata de pines donde el usuario puede activar (poner tensión) o desactivar (quitar tensión). Es similar a escribir 0 y 1, como ya hemos dicho 0V y 5V respectivamente.

Los pines 0 (Serial In RX) y 1 (Serial Out TX), puertos serie, se usan para comunicación entre dispositivos. La característica principal de los puertos serie es que envían la información bit a bit, enviando un bit cada vez. La versión avanzada de este puerto sería el paralelo que nos permite enviar información en paralelo. Para que se pueda entender imaginaros un tanque lleno de agua, si de ese tanque sacamos un grifo para llenar botellas una a una éste sería nuestro puerto serie, ahora bien, si de ese tanque sacamos cuatro grifos para llenar cuatro botellas a la vez, este sería el ejemplo de un puerto paralelo. En ordenadores, el puerto serie, se usa y se sigue usando para conectar un ordenador con módems, ratones, teclados y muchos más periféricos. En el caso concreto del Arduino UNO, el puerto 0 (RX) sería el puerto serie de entrada y el puerto 1 (TX) sería el puerto serie de salida.

Los pines 2 y 3 nos permiten interrumpir el funcionamiento del bucle «loop». Ya hablaremos de este bucle más adelante en otro artículo, pero quedaros con la idea que se ejecuta continuamente dentro del código de Arduino. Imaginaros que queremos leer un sensor cada segundo. No hace falta escribir el código infinitas veces, en Arduino existe este bloque que repite todo lo que se encuentre dentro de él indefinidamente. Estos pines paran precisamente ese bucle y obligan a ejecutar un código asignado a cada pin.

Los pines 3, 5, 6, 9, 10 y 11 que están marcados con el símbolo ˜, son entradas y salidas especiales ya que aunque son digitales y se pueden utilizar como tal, también se pueden utilizar para la comunicación PWM (Pulse-Width Modulation) modulación por ancho de pulsos. Se trata de una técnica que nos permite transferir información o energía a un dispositivo con una señal cuadrada. Como ya hemos dicho, los pines digitales solo atienden a dos estados, bajo (0V) y alto (5V). Si somos capaces de cambiar el estado alto y bajo controlando el tiempo que está en alto y el tiempo que está en bajo, conseguimos tener una onda cuadrada donde el tiempo que esté en estado alto (5V) será el ancho de pulso. La relación que existe entre estos dos tiempos se llama ciclo de trabajo y se expresa en tanto por ciento (%). Nos indica el tiempo que la señal está en alto en comparación con la que está en bajo. Lo podemos ver con el siguiente ejemplo.

pwm

En Arduino existe una función que permite utilizar estos puertos, se llama analogWrite. No podemos utilizar cualquier rango de valores, esta función solo admite valores entre 0 y 255 (8 bits). Por lo tanto y con el ejemplo de ciclos de trabajo que tenemos arriba, podemos definir una tabla donde nos diga el valor correspondiente para introducir en la función analogWrite y la salida en volitios que tendríamos.

Ciclo trabajo
(%)
analogWrite
(0 – 255)
Salida
(Voltios)
000
25641.25
501272.5
751913.75
1002555

Si por ejemplo tenemos conectado un led a alguna de estas salidas es fácil imaginar que pasará, cuando esté al 25%, el led tendrá una intensidad del 25 % y así sucesivamente.

Los pines 10, 11, 12 y 13 son utilizados para conectar varios dispositivos entre sí, por ejemplo varios Arduinos. Son los pines SPI (Serial Peripheral Interface) ya que precisamente utilizan este estándar de comunicación definido para comunicar circuitos integrados con comunicación serie a través de un bus de comunicación. El pin 10 es el SS (Slave Select) es el puerto esclavo (Slave). Permite seleccionar el Slave desde el maestro (Master) o para que el Master active el Slave, si es el esclavo. El pin 11 es el MOSI (Master Output Slave Input). Se usa como entrada de datos del Master y la salida de datos del Slave. El pin 12 es el MISO (Master Input Slave Output) es el contrario del pin 11, permite entrada de datos del Master y salida de datos del Slave. Por último el pin 13 SCK (Select Clock) nos sirve de señal de reloj. Se trata de un pulso, como el visto en los pines PWM, que marca la sincronización entre los dispositivos conectados. Cada pulso de ese reloj se envía o se lee un bit.

Entradas/salidas analógicas

En el Arduino UNO tenemos 6 entradas analógicas que van marcadas con una A delante. Aunque pueden ser utilizadas como salida, su uso más común es la lectura de datos de dispositivos analógicos. Tiene una resolución de 10 bits lo que implica que tenemos 1024 valores diferentes, es decir, podemos leer un rango de tensiones desde 0V hasta 5V detectando cambios de voltaje de 0.004V (5/1024).

Los pines 4 y 5 soportan la comunicación I2C (Inter-Integrated Circuit), muy parecida al bus de comunicación SPI y sirve para conectar varios dispositivos. En este tipo de comunicación cada dispositivo tiene una dirección única y cada dispositivo puede funcionar como Master o Slave. El pin 4 es el SDA (Serial Data Line) y se utiliza para la transmisión de datos en serie. El pin 5 es el SCL (Serial Clock Line) suministra la señal de reloj para mantener a todos los dispositivos conectados sincronizados.

Otras entradas/salidas

Además de los pines digitales y analógicos existen otros pines que nos dan diferentes funcionalidades.

  • GND (Ground) es la toma de tierra, 0V.
  • AREF (Analog Reference) es el pin que nos suministra la tensión para el rango máximo de los puertos analógicos, normalmente 5V.
  • Vin es la entrada de alimentación de la placa Arduino. Esta entrada no está protegida y por lo tanto hay que tener un especial cuidado con el voltaje que suministramos ya que podemos quemar la placa. Se recomienda una alimentación por USB en el periodo de pruebas.
  • 5V y 3.3 V suministra una tensión de 5V y 3.3V respectivamente.
  • RESET sirve para resetear el Arduino si aplicamos la tensión máxima posible (IOREF). Reinicia el Arduino volviendo a ejecutar el Bootloader y el programa que tengamos cargado. Importante, esta función no borra el programa que tengamos cargado en la memoria del Arduino.
  • IOREF (Input Output Reference) es el pin que nos suministra la tensión para el estado alto de los pines digitales. Por norma general si conectamos el Arduino a 5V este pin nos dará 5V, en caso contrario serán 3.3V.

Pues hasta aquí el programa de hoy, hemos visto todo lo necesario para poder conectar a nuestro Arduino diferentes tipos de dispositivos. Os esperamos en el siguiente capítulo donde veremos más cosas interesantes sobre Arduino.

Recurso del día

123d.circuits.io

Os presentamos una aplicación on-line muy interesante. Se trata de una web donde podemos crear nuestros propios diseños con Arduino, se llama 123d circuits y es de la casa Autodesk, los creadores de Pixelr, la aplicación web de retoque fotográfico que ya comentamos el capítulo 9.

Además del laboratorio de electrónica donde prototipar, también puedes diseñar tu propia placa de circuito impreso PCB (Printed Circuit Board).

Lo mejor de todo es que es gratuito, tienes multitud de componentes y entre ellos un Arduino UNO y un Arduino Micro, resistencias, potenciómetros, servos, leds, protoboard, pulsadores y muchos componentes más, aunque tiene ciertas limitaciones. No nos permite usar sus modelos 3D para uso comercial, tenemos acceso a aplicaciones 3D de diseño, acceso ilimitado a los componentes básicos, acceso a 10 modelos premium, espacio de alojamiento ilimitado en la nube e ilimitados proyectos, tutoriales y acceso a foros.

Si quieres empezar con Arduino sin comprar uno, esta es la mejor opción para que te adentres en este mundo.

Muchas gracias por todos los comentarios y valoraciones que recibimos a través de las plataformas de podcast ivoox, iTunes y Spreaker.

curso programacion de arduino desde cero

Tutoriales de Arduino


Curso de Arduino
Proyectos con Arduino
Arduino UNO R3
Arduino MEGA 2560
Servomotor con Arduino
Sensor de temperatura DHT11
Sensor temperatura Arduino
Tutorial pulsadores
Tutorial RTC reloj Arduino
Tutorial potenciómetro Arduino
Tutorial display 7 Arduino
Tutorial motor paso a paso Arduino
Tutorial librerías Arduino
Tutorial ultrasonidos Arduino
Tutorial I2C Arduino
Tutorial consumo Arduino
Tutorial weareable Arduino
Tutorial interrupciones Arduino
Tutorial ADS1115 ADC Arduino
Tutorial pilas Arduino
Tutorial riego Arduino
Arduino Shield EchidnaShield
Tutorial if else Arduino

Tutoriales ESP8266


Introducción ESP8266
Tutorial NodeMCU
IDE Arduino NodeMCU
Tutorial ESP-01
Relé WiFi Sonoff

Tutoriales IoT


Proyectos IoT con Arduino
MQTT ESP8266 Raspberry Pi
Redes LPWAN Arduino
IFTTT Arduino
Geolocalización Arduino
Arduino MKRFOX1200 Sigfox
Tutorial Node-RED

Tutoriales Visión Artificial


Instalación OpenCV y Python
Introducción Vision Artificial
Detección movimiento OpenCV
Introducción OpenCV
Qué es Machine Learning
Sensor Kinect
Realidad Aumentada
Detector Canny OpenCV
Big Data Visión Artificial
Kinect y Processing
Deep Learning

Tutoriales Raspberry Pi


Tutorial Raspberry Pi
Proyectos Raspberry Pi
Vídeo Raspberry Pi
Servidor web Raspberry Pi
Servidor Raspberry Pi
Flask Raspberry Pi
Monitor bebé Raspberry Pi

Podcast


Entrevista Obijuan
Entrevista BricoGeek
Entrevista David Cuartielles
Entrevista Rinconingenieril
Entrevista Staticboards
Entrevista La Hora Maker
Entrevista OSHWDem
Entrevista Colepower
Entrevista Aprendiendoarduino
Entrevista BitFab
tertulia-maker-invierno-2021

Los Amazon Echo tendrán comunicación LoRa integrado

Hola a todos, una vez más nos encontramos por estos lados, en el inicio de la sexta temporada del podcast La Tecnología Para Todos, con muchas … [+ info...]

Protocolo i2c imagen destacada

Comunicación I2C con Arduino lo mejor de dos mundos

El protocolo de comunicación I2C con Arduino es ampliamente utilizado en multitud de sensores y actuadores. Esto se debe principalmente a dos … [+ info...]

Introducion-a-git-y-git-hub-github tutorial paso a paso

Git y GitHub tutorial paso a paso

¿Qué es Git y GitHub? En este artículo vas a entender cómo utilizar Git y GitHub, la famosa red social del código basada en Git, orientada a … [+ info...]

Copyright © 2021 · Programar Fácil · Aviso legal

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando, consideramos que acepta su uso.Aceptar Política de privacidad y cookies
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necesarias
Siempre activado

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

No necesarias

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

close

Te ayudo a dar los primeros pasos con Arduino

Si quieres aprender programación de electrónica con Arduino utilizando un método serio, prueba el curso que te ofrezco.


Es muy sencillo, te apuntas en este formulario y accedes a los 3 primeros módulos.


Que te gusta, sigues con el curso completo.


Que no te gusta, sin problema, te das de baja y tan amigos.


Solo para gente seria que esté cansada de copiar y pegar código sin saber lo que hace.

x