Sí, leiste bien... deja te lo vuelvo a repetir "Bibliotecas" vamos a requerir de la ayuda de estas pequeñas grandes herramientas para poder sacarle aun mas provecho a nuestro Arduino, pero...
Para poder explicarlo vamos hacer uso de la analogía que nos da su mismo nombre. Cuando trabajamos en alguna tarea, proyecto, etc. Acudimos a una biblioteca para recaudar información y asi poder usarla para nuestros pendiente ¿cierto? Pues de esta misma manera funcionan las bibliotecas en Arduino, Estás son una colección de códigos que pueden utilizarse en múltiples programas. Lo que nos permite, de manera sencilla, llamar a funciones y así poder facilitar la comunicación.
Estas librerías nos serán útiles para extender las capacidades del Arduino o incluso podemos hacer uso de librerías y de componentes electrónicos para extender aun mas las capacidades del Arduino, esto suena familiar... Por supuesto, aquí es donde entran el uso de los shields (sino recuerdas que son visita el indice 1 "Primeros Pasos").
Pero como dicen... Es mejor ponerlo en practica para entender mejor estos conceptos, así que prepara tu Arduino y tus componentes que vamos armar un nuevo proyecto
"¿Qué estas no son las pantallas que estan en mi sala?" No te preocupes, por que no usaremos esas pantallas que estas pensando, usaremos unas mas sencillas, para esto vamos a necesitar.
Arduino
Cable USB
Cables jumpers (de preferencia de colores diferentes)
Resistencias de 220 Ohm
Pantalla LCD
Potenciómetro
Protoboard
Vamos a comenzar con el potenciómetro, este lo vamos a colocar en alguna de las columnas del protoboard, notaras que posee 3 patitas, las cuales son: Terminal 1, Wiper, Terminal 2. Comenzaremos conectando la Terminal 1, la cual funcionara como nuestra corriente, usaremos un jumper de color rojo, una punta ira conectada debajo de la conexión terminal 1 y la otra estará conectada en la columna positiva, posteriormente con otro jumper rojo vamos hacer un puente, una punta estará en la columna positiva mientras que la otra punta estará en el pin de 5V del Arduino.
Continuamos con la Terminal 2, la cual funcionara como tierra, usaremos un jumper de color negro, una punta ira conectada debajo de la conexión terminal 2 y la otra estará conectada en la columna negativa, posteriormente con otro jumper negro vamos hacer un puente, una punta estará en la columna negativa mientras que la otra punta estará en el pin de GND del Arduino.
Procedemos a conectar nuestra pantalla LCD, aquí podrás ver que posee 16 conexiones. Asi que comenzaremos conectando de derecha a izquierda.
La conexión "LED" fungirá como nuestra tierra, entonces con un jumper negro, vamos a conectar una punta en la conexión LED mientras que la otra estará en la columna negativa. Puedes ver que tenemos otra conexión "LED" esta la usaremos como corriente, con un jumper naranja, una punta estará en la conexión LED mientras que la otra estará en la segunda sección de columnas (de la f-j) arriba de esta, colocaremos nuestra resistencia con una de las puntas en la columna superior positiva y para conectar las columnas positivas usaremos un jumper de color rojo, asi estarán intercomunicadas.
Ahora pasemos a la conexión DB7, usaremos un jumper morado, una punta estará en dicha conexión mientras que la otra la colocaremos en la columna "f" Este mismo procedimiento lo vamos a realizar con las conexiones DB6, DB5 y DB4, con jumpers de colores diferentes.
Siguiendo con nuestros puntes, usaremos los jumpers con el color correspondientes para poder hacer un puente entre las conexiones de la siguiente manera. DB7 al pin 2, DB6 al pin 3, DB5 al pin 4, DB4 al pin 5. Las conexiones DB3, DB2, DB1 y DB0 no las ocuparemos.
Continuando con E, vamos utilizar la misma metodología, un jumper creando un punte entre la conexión y la columna f para después hacer otro punte entre f y el pin 11, analógamente para la conexión RS, solo que esta estará ubicada en el pin 12 con un jumper naranja.
Para RW usaremos una conexión de tipo tierra, por lo que usaremos un jumper de color negro para crear un punte entre dicha conexión y la columna negativa. Haremos el mismo procedimiento para VCC, solo que este será un jumper rojo para la creación de un punte entre la conexión y la columna positiva. ¿Recuerdas que no hicimos ninguna conexión para Wiper? Llego el momento de hacer una, con un jumper morado una de las puntas estará debajo de la linea del Wiper mientras que la otra punta estará en V0 y por último conectaremos GND que como te lo imaginaras, haremos un punte con la columna negativa.
Ufff... muchas conexiones, pero hemos terminado... ¡Hora de programar!
Vamos a incorporar la librería que nos ayudara con todas las instrucciones que harán funcionar a la pantalla LCD con el comando "#include <LiquidCrystal.h> "
Ahora declaramos una variable del tipo entero con el nombre segundo y le otorgaremos un valor igual a cero, esto para que nuestro contador comience desde un cero, seguido del comando "LiquidCrystal lcd_1(12, 11, 5, 4, 3, 2);" para inicializar la biblioteca con los números de los pines que le otorgamos a las conexiones (es importante que recuerdes que pines usamos).
Con el comando "lcd_1.begin(16, 2);" vamos a configurar el tamaño que queremos que abarque nuestro mensaje dentro de la pantalla, es importante que leas el manual para conocer el número de columnas y filas en el LCD.
Seguido del comando "lcd_1.print("Hola mundo! :)");" esto nos ayudara a configurar el mensaje que queremos que se reproduzca en la pantalla, algo muy importante que debes de tener en cuenta es que el mensaje que desees debes colocarlo entre comillas, para que el programa pueda reconocerlo.
Ahora, el comando "lcd_1.setCursor(0, 1);" nos ayudara poner el cursor en la columna 0, línea 1, te preguntaras porque con esta configuración, esto es debido a que la línea 1 es la segunda fila, ya que, el conteo comienza en 0. Ahora, muy bien se podría omitir el conteo del código, ya es decisión del lector si incluirlo o no.
Ahora le indicaremos que imprima el número de segundos desde el reinicio del contador con el comando "lcd_1.print(segundos);" seguido de un delay que nos ayudara a dar una pausa entre un número del contador y otro. Ya por último, le indicaremos al contador que sume un número a nuestro contador con el comando "segundos += 1;".
Ahora vamos echar andar nuestro código.
¿Ahora entiendes el uso de las librerías? Nos ayudan a usar los shields y sacarle el mayor provecho a nuestras ideas, en nuestro proyecto podemos ver que en la pantalla LCD aparece nuestro mensaje y por debajo el tiempo que lleva encendido y seguramente te estarás preguntando... ¿Y el potenciómetro? En este caso esta funcionando como un regulador de brillo para nuestra pantalla, si movemos la perilla podemos hacer que desaparezca o que este el texto, incluso sea apenas visible.
Ahora vamos a combinar el proyecto de la pantalla LCD con el proyecto del sensor de temperatura.
Lo que realizaremos con esto es que la pantalla sea capaz de indicarnos la temperatura que recibe nuestro sensor para esto vamos a necesitar:
Arduino
Cable USB
Cables jumpers (de preferencia de colores diferentes)
Resistencias de 220 Ohm
Pantalla LCD
Potenciómetro
Protoboard
Nos vamos ahorrar toda la parte del ensamblaje de la pantalla, ya fue explicado, pasaremos directamente a conectar nuestro sensor de temperatura.
Vamos a colocar el sensor en alguna de las columnas donde haya espacio, recordaras que tiene 3 patitas, pues bien, las conectaremos de la misma forma, haremos un puente para la potencia por debajo de la conexión dicha hasta la columna positiva con un jumper rojo, lo mismo para GND, haciendo un puente con un jumper negro entre la conexión GND y la columna negativa, por último la conexión Vout estará conectada con un jumper gris, creando un puente entre la conexión y el pin A0.
Y listo, hemos terminado con el sensor de temperatura. Ahora vamos directamente a programas y te tenemos una buena noticia, usaremos de base el mismo código que el proyecto anterior.
Muy bien, al ser muy similar al código anterior, solo vamos a explicar las cosas nuevas en el código.
Vamos a comenzar declarando 3 variables, la primera será el tipo entero con el nombre "temp" indicando que el contador comience desde 0.
la siguiente variable será del tipo float, con el nombre "tempC" igualando a cero de la misma manera que el anterior, el último será del tipo entero con el nombre "sensortemp" indicando el pin en donde conectamos nuestro sensor de temperatura.
Aquí veras que modificamos el mensaje que va aparecer en la pantalla, escribiendo "Temperatura", el siguiente comando "pinMode(sensortemp, INPUT);" lo usaremos para indicar que nuestro sensor en el pin A0 se va a comportar como una entrada. ya que, el sensor enviara la información a la placa.
Esta será la sección que mas modificaciones tenga. La primera linea quedara de la misma manera, en la segunda vamos agregar el comando "temp = analogRead(sensortemp);" para indicar que se realice una lectura del valor de la temperatura que va a recibir del pin A0.
Si lo dejamos asi y corremos nuestro código, vas a notar que la pantalla nos va arrojar la temperatura en grados Kelvin, entonces para que nos de la temperatura en grados Celsius, nuestra tercera linea vamos a escribir la conversión que será "tempC = (temp*0.48828125)-50;" y por último le vamos a indicar que nos imprima el valor de la conversión con "lcd_1.print(tempC);", así haremos que en la pantalla aparezca la temperatura en grados Celsius.
Llego el momento de ejecutar nuestro código.
¡Funciona perfectamente! Podemos ver que si modificamos la temperatura que recibe nuestro sensor, la pantalla nos mostrará la temperatura en grados Celsius, incluso tu ya teniendo el conocimiento de como funciona la pantalla LCD, puedes indicar que seguido de la lectura te arroje la notación para los grados Celcius.
Esto mismo puedes hacer con los otros proyectos que te presentamos, usa tu ingenio y atrévete a realizar mas cosas.
Para poder construir nuestro multímetro vamos a necesitar los siguientes materiales:
Arduino UNO
Pantalla LCD 16x2
Modulo ACS712 de 30A
Trimpot de 10k
1 resistencia de 2.2k
1 resistencia de 47k
Protoboard
Jumpers
Comenzamos por conectar la pantalla LCD haciendo unos puentes en la columna negativa para que las conexiones de la pantalla LCD estén conectadas al Arduino. Utilizando nuestro cable jumper negro, una punta la vamos a conectar en el agujero de "GND" del Arduino, la otra punta la vamos a conectar en la segunda columna de la protoboard, justo donde esta la figura de "menos". Ahora, con ayuda de los jumper negros, vamos a interconectar las columnas de tierra de la protoboard con la pantalla LCD, conectando las entradas del LCD: VSS, RW, D0, D1, D2, D3, K. Vamos a realizar los mismos pasos, solo que estos jumper estará directamente conectados a los pines digitales del Arduino, las conexiones van a quedar de la siguiente manera: RS al pin 2, E al pin 3, D4 al pin 4, D5 al pin 5, D6 al pin 6 , D7 al pin 7. Para la conexión V0 vamos a conectar una resistencia de 2.2 K, la cual ira interconectada con un punte con la ayuda de un jumper, el cual la otra punta estará colocada en la columna de tierra. Las conexiones restantes VDD y A serán interconectadas en la columna positiva de la protoboard, a su vez, esta columna estará conectada con un jumper rojo al pin 5V del Arduino.
Procedemos a conectar el trimpot, vamos a colocarlo en cualquiera de los pines de la protoboard, la pata izquierda será la tierra, con un jumper negro, haremos un punte a la otra columna tierra (la que no se ha ocupado), a su ves, estará conectado con un jumper negro hacia el otro pin GND del Arduino. La pata de en medio, ira conectada con un jumper directamente al pin analógico A0. Mientras que la pata izquierda estará conectada a una resistencia de 47 K, aquí ya vamos a conectar nuestro Modulo ACS712, ya que, la resistencia estará conectada hacia la parte izquierda del modulo, donde hay que asegurar la conexión por medio de un tornillo. Continuamos con el modulo, la conexión GND estará interconectada hacia la columna negativa de la protoboard, donde hicimos el puente para el trimpot, la conexión OUT estara conectada directamente al pin analógico A1 y por último la conexión Vcc estará interconectada en la columna positiva, la misma donde van conectadas las conexiones de la pantalla LCD hacia el pin 5V.
Ya para terminar, pondremos un jumper libre, el cual estará conectado en el pin Vin y otro jumper libro que estará en la columna negativa, la misma de donde esta el trimpot. Estos incluso podrían ser sustituidos por caimanes, para facilitar la toma de datos, ya que, estos jumper libres servirán para la entrada de datos que va a recoger el Arduino.
A continuación, te dejaremos un esquema para ejemplificar y ayudar a entender de manera aun mas detallas las conexiones que se mencionaron.
Y listo, hemos terminado de ensamblar todas las piezas de nuestro multímetro. A continuación te dejamos el sketch que se utilizara para poder hacer funcionar el Arduino.
¿Te pareció fácil el experimento? No te preocupes, seguramente a lo largo del desarrollo del experimento se te ocurrieron ideas para optimizar el código o el ensamblaje del experimento !Ahí esta tu reto! Incluso nosotros te dejamos uno a continuación... ¿Hay alguna manera de aumentar la lectura para el voltaje, resistencia y capacitancia?