C/C++ En Arduino: Pines

by tomasdecamino in Circuits > Arduino

5274 Views, 5 Favorites, 0 Comments

C/C++ En Arduino: Pines

IMG_5775.JPG

En el Arduino, toda la información que entra y sale, lo hace a través de "pines". Los pines en el Arduino son las conexiones que están a los lados y en los cuales se pueden conectar cables como se ve en la foto.

En este instructable se concentra en como inicializar y utilizar los pines. Esto funciona exclusivamente para la programación de micro-controladores y no es general para el lenguaje C para desarrollo de software

Este es parte de la colección C en Arduino.

Digitales Y Análogicos

15 8:04 p.m..jpg
15 8:05 p.m..jpg
15 8:05 p.m..jpg

Visto desde arriba (y con la conexión USB hacia arriba), como en la foto, hay a la izquierda abajo, seis pines analógicos, marcados de A0 a A5 (analog in). Son analógicos pues reciben como entrada voltajes que pueden ir de 0 voltios a 5 voltios. El Arduino, al se una computadora digital, convierte esa información a digital, como valores de 0 a 1023 (por ser 10 bits de información). o voltios corresponden a 0 en digital, y 5 voltios a 1023. En el ejemplo explicaré como funciona esto.

Los pines digitales se encuentra a la derecha y van de 0 a 13. Estos pines leen información de entrada como voltajes de 0 o 5 voltios, convirtiéndolos a valores de 0 o 1 respectivamente. Estos pines además, se puede utilizar como salidas de información. Envían voltajes de 0 o 5 voltios, y en el caso de los que están marcados con una "~", pueden ser utilizados para enviar voltajes entre o y 5 voltios.

Ahora veremos que significa todo esto con un ejemplo.

Materiales

15 8:04 p.m..jpg

Ocupamos:

  1. Arduino UNO
  2. cables
  3. Un potenciómetro de 10k Ohm
  4. Un botón

Conexión Analógica

IMG_5864.JPG
15 8:10 p.m..jpg
15 8:11 p.m..jpg

Las conexiones de entradas analógicas se hacen a través de los pines A0 a A5. En este caso conectamos el potenciómetro como se indica en la foto. La pata izquierda a 5V, y la derecha a GND. La del centro al pin A0.

Conexión Digital

15 8:04 p.m..jpg
15 8:10 p.m..jpg
15 8:10 p.m..jpg

En esta caso vamos a conectar el botón a un pin digital. Como ven la conexion es muy simple, dado que utilizaremos lo que se llama un pullup resitor en el pin 2, evitándonos tener que utilizar resistencias.

Un pullup resitor garantiza que a través del pin va a pasar una cantidad baja de corriente y que además va a estar estable en HIGH o LOW y no oscilando. Sparkfun da una buena explicación de esto. Para hacer que el micro-controlador los utilice, lo hacemos a nivel de programación, en el siguente paso lo veremos.

Cuando ya estemos corriendo el programa veremos como funciona

Código

pines2.png

Configuración de pines

En la sección de setup, especificamos el funcionamiento de los pines:

pinMode(A0,INPUT);
pinMode(2,INPUT_PULLUP);
pinMode(13,OUTPUT);

En la primera línea (línea 6 del código) indicamos el "modo" del pin A0, indicando que va a ser INPUT. Este es el pin que va a leer la información del potenciómetro. En la segunda línea (línea 7 del código), le indicamos al Arduino, que en pin 2 queremos activar el pullup resitor del controlador, indicando INPUT_PULLUP, en el comando pinMode(). La última línea indica que vamos a usar el pin 13 de salida (OUTPUT), en ese pin está conectado el led del Arduino.

Lectura de pines de entrada

En el código, en las líneas 14 a la 15, se lee la información del potenciómetro y del botón. En la línea 14:

int val = analogRead(A0);

Se lee la información del pin A0 con analogRead(A0). esta es almacenada en la variable de tipo entero que llamamos val. Al usar analogRead(), se hace una lectura de los pines análogos, y el resultado de la lectura es un valor entre 0 - 1023.

La línea 15, por el contrario:

int boton = digitalRead(2);

Se hace una lectura digital del pin 2, a través de digitalRead(2). Esta infromación se almacena en una variable de tipo entero. El comando digitalRead(), solamente leerá 0 o 1, dependiendo del voltaje de entrada, es decir, si el botón está apretado, que permite el paso de corriente, o sin apretar que impide el paso.

Escritura a pines de salida

El único pin de salida es el 13, que en la linea 13:

digitalWrite(13, HIGH);

Manda un voltaje alto "HIGH" para encender, y luego, en la línea 22 uno bajo "LOW" para apagar el led que viene en la placa de Arduino.

Mandando datos al Serial

Como ven las líneas 16 a 18, lo que hacen es mandar la información de la variable val y boton, al puerto serial mediante Serial.print(). Este comando lo que hace es mandar (imprimir) lo que sea que esté entre paréntesis al puerto serial. El comando Serial.println(), hace lo mismo solo que adicionalmente envía un "enter" para que lo siguiente salga en la próxima línea, y en el monitor serial se vea solamente dos valores (val , boton) por línea.

Downloads

Funcionando

15 8:10 p.m..jpg
pines1.png

Cargar el código y abrir el monitor serial del arduino. Como verán, al mover el pontenciómetro obtenemos valores que van desde 0 a 1023, y al apretar el botón se verá el valor 0 o 1.