Archivo de la categoría: Sensores

Pantalla LCD Nokia 5110

En esta entrada trataré de explicar como utilizar el LCD del Nokia 5110. Es una pantalla pequeñas, de 1.5″, pero tienen buena legibilidad. Su resolución es de 84 x 48 pixel, internamente emplea un controlador PCD8544 desarrollado por Philips, un controlador de bajo consumo diseñado para manejar pantallas monocromas de 48 filas y 84 columnas. Para mayor legibilidad estos displays suelen incorporar una luz trasera (back light).

Sus características se pueden encontrar aquí.

La configuración de pines que voy a utilizar es:

Número de Pin

Nombre de Pin Arduino Pin Función de Pin Notas

1

RST

3

Reset

10kΩ

2

CE

4

Chip Selection (Selección de chip)

10kΩ

3 DC 5

Data/Commands choice

10kΩ

4

DIN

6

Serial data in

10kΩ

5

CLK 7

Serial clock

10kΩ

6

VCC

3,3 Vcc

Positive power supply (Alimentación positiva) 2.7V a 3.3V

7

LIGHT

GND

LED backlight supply Conectar a GND para máximo brillo

8

GND

GND

Ground (Tierra)

Existen varias librerías que funcionan con este LCD. Aquí explicaremos la librería más común para este modelo, “ Adafruit PCD8544 Nokia 5110 LCD library “. Esta librería posee una gran variedad de gráficos, entre ellos círculos, líneas, cuadros, triángulos, además de varios tipos de fuentes y la posibilidad de imprimir imágenes como logos o figuras.

Esta librería requiere de la instalación adicional de la librería gráfica “ GFX “ para su utilización.

En la siguiente dirección podréis ver un resumen de algunos de los procedimientos que tiene la librería “Adafruit_GFX.h”.

Circuito Práctico.

Programa Arduino

Fotos

Plano general del Circuito

Detalle de la Pantalla LCD

Códigos Fuente

LCD_Nokia_5110.ino

Vídeo resumen:

Escudo de Ethernet W5100 – III

En este caso el control lo realizaré a través de una aplicación creada con “App Inventor”.

Como solo es un ejemplo he decidido realizar la implementación de tres salida digitales y dos entradas analógicas, simulando la temperatura de dos estancias de una casa.

La programación es muy fácil, para las salidas digítales, se trata de realizar un “Get” con uno de estos códigos:

  • OnXXX para encender la estancia
  • OffXXX para apagar la estancia

Módulo de Control de un Led con AppInventos.

Para las entradas analógicas simuladas, se implementa un “Web” dentro de la aplicación y se referencia a la dirección del servidor web (192.168.1.177).

Esquema de los LED

Circuito teórico

Circuito Práctico.

Programa Arduino

AppInventos

Aspecto Simulado

Captura de Pantalla desde un móvil

Archivo aia de AppInventor.

Casa_Domotica_I.aia

App de la Aplicación.

Casa_Domotica_I.apk

Códigos Fuente  Arduino

Ethetnet_AppInventor.ino

Vídeo resumen:

Escudo de Ethernet W5100 – II

Esta entrada es una evolución de la anterior “Escudo de Ethernet W5100 – I” . Esta vez nos centraremos en representar los valores de las seis entradas analógicas de las que cuenta el Arduino UNO, además puliremos un poco el interface de la página para darle un aspecto uno poco más profesional (solo un poco).

Programamos el aspecto de un botón y lo sustituimos por el del enlace anterior.

boton

Otro de los aspecto que debemos programar es la visualización de las entradas analógicas.

escribir_entradas-analogicas

Esquema de los LED

semaforo_ethernet

Circuito teórico

semaforo_ethernert_bb

 

Circuito Práctico.

vista_general_02

Otra Foto

Programa Arduino

Página Web

paguina_web_led_e_analogicas

Códigos Fuente  Arduino

Ethetnet_Entradas_Salidas.ino

Vídeo resumen:

Polímetro 2

Basándome en la entrada anterior, he construido una simulación de lo que podría ser un polímetro.

Las características son la siguientes:

Intensidad entro 0 y 5 A

Tensión entre 0 y 5 V

Resistencia, lo he dejado para un posterior cálculo, aunque basándose en la ley de Ohm la implementación es muy sencilla.

Desarrollo en Arduino.

Está basado en la entrada anterior (https://ardubasic.wordpress.com/2016/10/01/midiendo-intensidad/) y lo que hace es sacar la media de las medidas que realiza el sensor. Anteriormente el sensor debe estar calibrado.

codigo_medida

Desarrollo en Visual Basic

Está basado en la entrada (https://ardubasic.wordpress.com/2013/11/04/comunicacion-con-visual-basic/) . Lo que he realizado es una mejora del diseño y la introducción de un sensor medidor de intensidad. He aumentado a tres las lecturas y el registro de los datos utilizando lo explicado en la entrada ( https://ardubasic.wordpress.com/2015/11/01/exportando-a-excel-los-valores/ ).

Obtener datos

obtener_datos_arduino

Se realiza una escritura del carácter ASCII 10 para que el Arduino mande los datos. Leyéndolos la aplicación a continuación.

Representar en la Pantalla de Medida

representar_en_pantalla

Dependiendo de la escala y el parámetro que hemos seleccionado, realiza la representación en pantalla.

Representación Gráfica.

representar_graficamente

Se realizan los cálculos para que la representación se realice entre unos puntos definidos.

Configuración del SerialPort.

serialport

En el cuadro verde, señalo el puerto de comunicación de la aplicación con Arduino.

En el cuadro azul, señalo el parámetro “DtrEnable” que debe ser True para el Arduino Leonardo, si no se realiza así, hay problemas en la comunicación, envía datos pero no recibe. Si es otra placa distinta esta última consideración, no se tiene que tener en cuenta.

Código Arduino

codigo_arduino

Circuito Teórico

polimetro_2_bb

Fotos

tension

Midiendo tensión y registrando los datos

intensidad

Midiendo Intensidad y registrando los datos

Código Fuente  Arduino Completo

Polímetro_2.ino

Proyecto VB 2015

Polímetro_Arduino.zip

Vídeo resumen:

 

 

 

Midiendo Intensidad

En esta entrada realizaremos medidas de intensidad a través del sensor  ACS712 – 5A, dicho sensor internamente trabaja con un sensor de “Efecto Hall” que detecta el campo magnético que se produce por inducción de la corriente que circula por la línea que se está midiendo y nos entrega un voltaje proporcional a la corriente.

Edwin Hall(1855-1938) descubrió que si por una fina lámina de oro circula una corriente y se le aplica un campo magnético elevado perpendicular al movimiento de las cargas, aparece una separación de cargas que da lugar a un campo eléctrico en el interior de la lámina, perpendicular al movimiento de las cargas y al campo magnético aplicado, a este campo eléctrico se le denomina “Voltaje Hall”

   voltaje_hall

En el mercado podemos encontrar el ACS712 para diferentes rangos de intensidad:

rango_asc712

El sensor necesita alimentación de +5v y este nos entrega un valor de +2.5 voltios más una tensión proporcional a la intensidad que circula por él, con una relación lineal entre la salida de voltaje del sensor y la corriente. Dicha relación es una línea recta donde la pendiente es la sensibilidad y la intersección en el eje Y es 2.5 voltios. La ecuación de la recta seria la siguiente:

Tensión de Salida del Sensor = Sensibilidad * Intensidad que Circula + 2.5

de donde se despeja que:

Intensidad=(Tensión de Salida del Sensor -2.5)/Sensibilida

Circuito ACS712

esquema_acs712

Sensor

sensor_acs712-5a

Calibración del punto intensidad cero sin carga.

Para realizar el calibrado inicial del punto cero (sin carga) realizaremos un programa que en ausencia de intensidad debería de dar una salida de 2.5 v.

Para evitar ruido, realiza 1.000 medidas y luego realizo la media.

codigo_calibrando

 

Pero como se puede observar el valor es ligeramente superior 2.503 v

calibrado_sensor

Calibrando la sensibilidad del Sensor.

Como hemos dicho anteriormente el sensor responde a una ecuación de la resta con una pendiente que es el valor de la sensibilidad, pues bien calculando dos valores, seremos capaces de calcular la pendiente de la recta con la formula siguiente:

Sensibilidad del sensor = (V1-V0)/(I1-I0)

Para realizar el ensayo coloco una carga de aproximadamente 230 mA y realiza una nueva medida con el programa anterior, obteniendo los siguientes resultados:

calibrado_sensor_carga_230ma

Con estos valores calculamos la pendiente.

Sensibilidad del sensor = (2.530-2.503)/(230-0)=0.117

Sensibilidad=0.117 V/A

Realizando Mediciones

Circuito teórico

medir-intensidad_bb

Circuito Práctico.

vista_general

Medida del Polímetro

polimetro

Medida del Sensor

midiendo_sensor

No se varia mucho de lo que hemos medido con el polímetro, aunque para ser sinceros, para obtener unos resultados aceptables hay que realizar una calibración cada vez que realicemos la medida.

Código del Programa de Medida

codigo_midiendo

Códigos Fuente  Arduino Completo

Calibrando_sensor.ino

Midiendo_Intensidad.ino

Vídeo resumen: