Skip to main content

digitalRead() y Serial.begin() – Lectura de entradas digitales – Ejemplo con Arduino Nº 03

Para leer el valor de un detector, utilizarás la función digitalRead(), además en este ejemplo te voy a mostrar cómo ver en el monitor del puerto serie el valor leído en un pin configurado como entrada digital, a través del USB, para ello utilizarás la función Serial.begin().

CIRCUITO:

En este ejemplo utilizaremos una resistencia de 10K, uno de sus extremos lo conectarás directamente a masa, el otro extremo lo conectarás a un pulsador tal como se indica en el esquema eléctrico, el nodo donde se conectan el pulsador y la resistencia lo llevarás mediante un cable de conexión al pin 2, configurado como entrada, en este caso entrada digital.

Si todo funciona como debiera, cuando no acciones el pulsador en el pin digital número 2 tendrás 0 voltios, que la placa de Arduino interpretará como “cero” o “falso” y cuando el pulsador este activado tendrás en el citado pin 5 voltios que la placa de Arduino interpreta como “uno” o “cierto”

Si desconectas el pin de entrada del todo, el LED puede parpadear de forma errática. Esto se debe a que la entrada no está conectada ni a tierra ni a Vcc, es por ello que se necesita una resistencia pull-down en la circuitería que acompaña al pulsador.

CÓDIGO:

Para comenzar las comunicaciones entre la placa de Arduino y el PC deberás inicializar el puerto de comunicaciones serie a 9600 baudios (bits/segundo) mediante la función:

Serial.begin(9600).

A continuación, iniciarás el pin digital 2, como un pin de entrada mediante la función:

pinMode( 2 , INPUT );

Estas dos funciones, como ya habrás deducido, irán dentro de la función setup() y el programa en sí, estará en la función loop(), donde continuamente estaremos comprobando si el pulsador esta accionado o no, mediante la función:

digitalRead(2);

El valor leído por esta función lo debemos memorizar en una variable de tipo int, llamada por ejemplo, EstadoDelPulsador, donde memorizaremos si el pulsador ha sido activado o no, mediante esta sentencia:

EstadoDelPulsador = digitalRead(2);

Has de tener en cuenta, que mientras el pulsador no está activado, la patilla número dos está conectada a masa mediante la resistencia de 10K, pero cuando activas el pulsador estás conectando Vcc a masa mediante la citada resistencia.

Una vez que se ha leído el valor presente en el pin 2, y memorizado en la variable EstadoDelPulsador, la puedes mostrar en el monitor del puerto serie incluido en el IDE de Arduino, mediante la función:

Serial.println(EstadoDelPulsador);

Si todo ha ido correctamente en tu monitor del puerto serie verás un “0” cuando el pulsador no está accionado y un “1” cuando pulses el dispositivo.

El programa completo quedará así:

int pulsador=2;

void setup()

{

Serial.begin(9600);

pinMode( pulsador, INPUT);

}

void loop()

{

int EstadoDelBoton = digitalRead( pulsador );

Serial.println( EstadoDelBoton );

delay( 1 ) ;                  // Retraso para poder ver el valor en el monitor

}

digitalWrite() – Manejo de salidas digitales – Ejemplo con Arduino Nº 02

En el ejemplo del parpadeo, o blink, utilizamos la función digitalWrite(), este es el ejemplo más sencillo que se puede hacer con Arduino, para conocer el comportamiento de una salida digital, a este pin configurado como salida, conectaremos un led y una resistencia de 220 ohms, conectados con la polaridad adecuada. Es decir, el cátodo a masa y el ánodo del led conectado a la parte más positiva del circuito.

De hecho, para este ejemplo, no es necesario conectar una resistencia y un led, ya que las placas de Arduino, tienen integrado un led conectado a una salida digital concreta. El IDE de Arduino tiene una constante definida como LED_BUILTIN, que es la que permite controlar el led incorporado a la placa.

Esta es la relación de pins con el led incorporado y las placas que lo utilizan:

D13:

  • 101
  • Vencimiento
  • Intel Edison
  • Intel Galileo Gen2
  • Leonardo y micro
  • LilyPad
  • LilyPad USB
  • MEGA2560
  • Mini
  • Nano
  • Pro
  • Pro Mini
  • UNO
  • Yún
  • Cero

D6

  • MKR1000

D1:

  • Genma

Pero si deseas encender un LED externo con este sketch, necesitas construir un circuito, donde se conecta en un extremo la resistencia al pin digital correspondiente a la constante LED_BUILTIN. Además de ello debes conectar la pata larga del LED (pin negativo, llamado cátodo) a la GND (masa del circuito)

El valor de resistencia adecuado es de 220 ohmios, pero también se encenderá con valores de hasta 1K, pero descenderá la luminosidad del LED.

CÓDIGO:

void setup()

{

pinMode(LED_BUILTIN, OUTPUT); // Inicializa el pin 13 como salida

}

void loop()

{

digitalWrite(LED_BUILTIN, HIGH);          // Enciende el led 13

delay(1000);                                                   // Espera un segundo

digitalWrite(LED_BUILTIN, LOW);           // Apaga el led 13

delay(1000);                                                   // Espera un segundo

}

Este ejemplo lo puedes utilizar también para comprobar rápidamente si la placa de Arduino funciona correctamente.

loop() y setup() – Ejemplo con Arduino Nº 01

En este ejemplo te muestro el código minimo necesario, que son las funciones loop() y setup(), para que un programa (Sketch) realizado con el IDE de Arduino se compile correctamente, sin dar errores.

Para ello será necesario incluir dos funciones.

La función setup()

La función setup() se inicia automaticamente cuando se inicia el programa, se usa para inicializar variables, modos de los pines (INPUT o OUTPUT), llamadas a librerias, etc. La función setup() se inicia UNA SOLA VEZ, cuando se enciende la placa por primera vez o se reinicia.

La función loop()

La función loop() como su nombre indica, es un lazo que se ejecuta INDEFINIDAMENTE, permitiendo realizar un proceso de multitud de iteraciones. El código dentro de la función loop() es el programa que efectivamente controla la placa de Arduino.

Para comprobar lo anterior únicamente necesitas la placa de Arduino conectada mediante el USB a tu ordenador y ejecutar el IDE de Arduino.

El código que vas a cargar y ejecutar en tu placa de Arduino, “no hace nada”, pero su estructura es útil para comenzar desde cero cualquier programa que quieras realizar. Si te fijas en este programa he añadido algún comentario, que no será leido por el compilador. Para ello utilizarás // dos barras, las que están encima del 7 en la mayoria de los teclados, si vas a hacer un comentario de una linea, y /* comentario de varias lineas */, asterisco y barra si vas a hacer un comentario que ocupe varias lineas.

El código mínimo para que el compilador no de errores es el siguiente:

void setup()

{

            // esta parte del código solamente se ejecutará una vez

}

void loop()

{

            /* Esta parte del código se

                        ejecutará en infinitas

                                    iteraciones */

}

Empezando con Arduino

Si estas empezando con Arduino, debes saber algunas cosas, antes de empezar a controlar el mundo que te rodea con Arduino, debes instalar el software para programar tu placa de Arduino.

El entorno de programación de Arduino (IDE) te permite escribir tus programas y cargarlos en tu placa micro-programable. En la página del software de Arduino encontrarás dos opciones:

  1. Si tienes una conexión de Internet fiable, debes utilizar el IDE en línea (Editor Web de Arduino) Este te permitirá guardar tus bocetos en la nube, tenerlos disponibles desde cualquier dispositivo y realizar copias de seguridad. Siempre tendrás la versión más actualizada del IDE sin necesidad de instalar actualizaciones o bibliotecas generadas por la comunidad.
  2. Si prefieres trabajar sin conexión, puedes utilizar la última versión del IDE de escritorio.

CÓDIGO ONLINE EN EL EDITOR WEB DE ARDUINO

Para usar el IDE online simplemente sigue las instrucciones que puedes encontrar en esta página, recuerda que si trabajas online, no necesitarás instalar nada en tu ordenador.

INSTALACIÓN DEL IDE DE ARDUINO DE ESCRITORIO

Para conocer como debes instalar la versión de escritorio del entorno de desarrollo de Arduino (IDE) debes seguir las instrucciones que figuran en los siguientes enlaces dependiendo del sistema operativo que tengas.

En la página principal de aprendizaje de Arduino, a la derecha tienes una relación de las diferentes placas de Arduino disponibles y es desde allí donde puedes encontrar alguna peculiaridad de alguna de ellas, pero si vas a empezar a trabajar con el Arduino UNO, el MEGA o alguno de los más habituales puedes empezar a trabajar sin problemas, únicamente teniendo en cuenta el puerto COM al que has conectado la placa, y al tipo de placa que es, que puedes encontrar en el menú de herramientas.

COMIENZA CON ARDUINO

Si estas empezando con Arduino es bueno que leas una introducción sobre lo que es Arduino y por qué te gustaría usarlo, después es interesante que sepas qué es el software de Arduino y ajustarlo al idioma en el que te desenvuelvas mejor, no te olvides que hay mucho trabajo ya hecho y que puedes utilizar las librerías o bibliotecas ya creadas y desarrolladas. Si te animas no puedes dejar de aprender qué son los núcleos y la necesidad o no de añadir o ampliar la placa de Arduino con la que estás trabajando, y si de verdad de verdad, quieres ser un verdadero maestro de Arduino, debes saber solucionar los problemas que se te planteen cuando no salgan bien las cosas a la primera.

Para obtener una visión completa de las Guías que tiene Arduino, es muy conveniente visitar la sección de fundaciones, donde puedes encontrar conocimientos a un nivel mucho más profundo sobre los principios y técnicas que hay detrás de la plataforma Arduino.

Puedes empezar a jugar con Arduino con los proyectos que se encuentran en el libro de proyectos “Arduino Starter Kit projects”, además la lectura del libro “Getting Started with Arduino”, sin duda te ayudará a comprender mejor los conceptos que hay detrás de esta interesante plataforma de aprendizaje y comenzarás a controlar el mundo que te rodea.

YA HE APRENDIDO, Y… ¿AHORA QUÉ?

Si ya has aprendido los primeros conceptos y nociones de Arduino, puedes seguir trabajando con el “Arduino and Genuino Starter Kit”, que te guiará en tus primeros pasos en el mundo de la electrónica y más concretamente en el mundo de los sensores y objetos interactivos.

Si estás buscando inspiración, puedes encontrar una gran cantidad de tutoriales en “Arduino Project Hub