En este post te voy a enseñar a manejar las instrucciones pinMode, digitalWrite, DiditalRead, analogRead y analogWrite

pinMode:

Esta instrucción sirve para configurar un pin como entrada o como salida, se coloca en la parte de void setup()

                    pinMode(numerode pin,entrada entrada o salida);

*Los pines de arduino están configurados por defecto como entradas.

En esta instrucción se usan dos constantes que se deben de escibir en mayúscula:

-INPUT: Configura el pin como entrada (lee información desde el exterior).

-OUTPUT:Configura el pin como salida (saca información hacia el exterior).

Ejemplo:

pinMode(5,INPUT);//configura el pin 5 como entrada

pinMode(3,OUTPUT);//configura el pin 3 como salida

digitalWrite:

Aquí se usan dos constantes:

HIGH = 5 voltios (encendido)

LOW = 0 voltios (apagado)

Esta instrucción pone 0v  o 5v en el pin seleccionado, con lo que daremos o quitaremos tensión al elemento conectado en el, como por ejemplo un diodo led con su resistencia de carga.

digitalWrite(numeroPin,nivel)

high low arduino
pin de salida estados High Low

Ejemplo:

digitalWrite(5,HIGH); //pone el pin 5 a 5 voltios digitalWrite(5,LOW); // pone el pin 5 a 0 voltios

digitalRead

Esta instrucción nos permite leer el valor de tensión de un pin configurado como entrada al que tendremos conectado un sensor de cualquier tipo, como un pulsador, un final de carrera, un sensor de movimiento etc.

digitalRead(numerodepin);

Curso Arduino

Si quieres convertirte en un experto en Arduino pincha en el siguiente botón

Ejemplo:

digitalRead(5); // leemos el valor de la entrada del pin 5.

Esta lectura la tendremos que guardar en una variable y será del tipo HIGH o LOW.

Arduino dispone de unas resistencias internas pull-up de 20KΩ que sirven para evitar interferencias por ruido eléctrico generado por dejar una entrada al aire, es decir si configuramos un pin como entrada y no conectamos nada a el o un pulsador normalmente abierto, se puede inducir interferencias que produzcan una tensión en el pin de entrada que induzca a error interpretando que hay presencia de tensión cuando no la hay.

Por lo tanto podemos conectar una resistencia en configuración pull-up o pull-down externa o bien usar las resistencias pull-up internas de Arduino por programación, al configurarlas tenemos una tensión de 5 voltios permanente en ese pin hasta que por medio de un pulsador u otro sensor pongamos 0 voltios.

Para ello deberemos configurar en void setup() el siguiente código:

int  pulsador = 1; // nombramos el pin 1 como pulsador

pinMode(pulsador,INPUT); // configuramos pulsador como entrada

digitalWrite(pulsador,HIGH);  // activamos pull-up de la entrada pulsador

Aunque parezca una contradicción escribir en una entrada que lo es, es la manera de activar estas resistencias pull-up.

analogRead

Con esta instrucción podemos leer las entradas analógicas denominadas Analog Input (A0…..A5), esta instrucción solo sirve para estos pines y su lectura nos devolverá un valor entre 0 y 1023 que deberemos guardar en una variable.

var1 = analogRead(A0); // Guardamos en la variable var1 el valor de la entrada analógica A0

En este tipo de entradas analógicas también podemos activar las resistencias pull-up para ello escribiremos la siguiente instrucción.

pinMode(A0,INPUT_PULLUP); // Activamos la resistencia pull-up del pin A0

analogWrite

Con esta instrucción podemos escribir en los pines ~pwm, (en Arduino uno R3 son los pines 3,5,6,9,10,11) , configurados como salidas, un valor pseudo-analogico, es decir, imagina que quieres hacer que un led brille de a diferentes intensidades, pues con esta instrucción escribiendo un valor entre 0 y 255.

Ejemplo:

analogWrite(11,0); // el led del pin 11 estaría apagado

analogWrite(11,64); // el led del pin 11 estaría al 25% del brillo

analogWrite(11,127); // el led del pin 11 estaría al 50% del brillo

analogWrite(11,255); // el led del pin 11 estaría al 100% del brillo

Esta instrucción también la podríamos utilizar para variar la velocidad de un motor mediante un driver.

Para que estos conceptos queden más claros vamos a hacer un programa que lea el valor de un potenciómetro conectado en la entrada analógica A0 y encienda cuatro leds conectados en los pines 0,1,2,3, si el potenciómetro esta al mínimo nivel se apagaran todos los leds si le damos al potenciómetro entre un poco más de cero y un cuarto del recorrido se encenderá el led 1, si ponemos el potenciómetro entre ¼ y la mitad se encenderán los leds 1 y 2, si ponemos el potenciómetro a tres cuartos de su recorrido se encenderán los leds 1,2 y 3 y si llevamos el potenciómetro entre ¾ de recorrido y el total se iluminaran los leds 1,2,3 y 4.

Programa indicador de posición

Este programa lo tienes para descargarlo en la zona de descargas.

Aquí tenemos el montaje en la placa protoboard en el que el valor de las resistencias es de 220Ω y el potenciómetro es de 47kΩ, pero nos valdría cualquier valor.

Conexionado indicador de posición del potenciometro