Ejercicio: construir un datalogger - fi.mdp.edu.ar · El pin 10 es el pin de selección para...

29

Transcript of Ejercicio: construir un datalogger - fi.mdp.edu.ar · El pin 10 es el pin de selección para...

Ejercicio: construir un datalogger

2

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

El datalogger o registrador debe sensar la temperatura ambiente cada 1s y

guardarla junto a la fecha y hora de adquisición en un archivo .txt alojado

en una memoria µSD. Las mediciones y el estado del registro se deben

mostrar en una pantalla LCD imitando algunas versiones comerciales como

se muestran a continuación:

Componentes necesarios

3

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Sensor de temperatura LM 35

- Opera con una tensión de 4 a 30 V.

- Entrega una tensión de salida linealmente proporcional a la temperatura

en grados Celsius: 10mV/˚C.

- Exactitud a 25˚C de 0.5˚C.

- Rango de medición: -55˚C a 150˚C

Componentes necesarios

4

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Sensor de temperatura LM 35

Componentes necesarios

5

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Microcontrolador

ARDUINO UNO ó ARDUINO MEGA

Componentes necesarios

6

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• LCD (Liquid Crystal Display) 20x4 (20 columnas y 4 filas)

- Se comunica con Arduino a través del protocolo I2C.

- Se comanda a través de la librería LiquidCrystal_I2C.h

Adaptador paralelo/I2C

LCD 20x4

Componentes necesarios

7

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

LCD 20x4

Adaptador paralelo/I2C

Componentes necesarios

8

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• RTC (Real Time Clock ó Reloj de Tiempo Real)

- Se basa en el intregrado DS1307.

- Se comunica con Arduino o PIC a través del protocolo I2C. (pines SCL y SDA)

- Posee una salida de señal de clok (pin SQ).

- Se comanda a través de la librería Wire.h y DS1307RTC.h

- Además:

- Posee una memoria EEPROM I2C: 24c32 que se puede usar para almacenar variables.

- Posee terminales para agregar un sensor de temperatura (salida sobre pin DS)

Componentes necesarios

9

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Lecto-grabadora de SDcard

- Se comunica con Arduino a través del protocolo de comunicación SPI.

- Se comanda a través de la librería SD.h

Otra opción es usar un Shields disponible

10

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Datalogger shield

Tensión de alimentación 5V (se alimenta

directamente desde la tarjeta Arduino).

Reloj de Tiempo Real (RTC) basado en el

chip DS1307.

Pila de litio para mantener el chip en hora

cuando el Arduino está sin alimentación.

Lecto-grabadora de memoria SD.

Conexión con Arduino a través del bus

SPI (pines 10, 11, 12, 13). El pin 10 es el pin de selección para utilizar la memoria SD.

El RTC se controla a través de los pines SCL y SDA (bus I2C).

Comando desde librería DS1307RTC.h, Time.h , y SD.h.

Dispone de un área experimental para soldar conectores, componentes y sensores.

Se monta arriba de una Arduino UNO, o se conecta con cables a una Arduino Mega.

11

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ethernet shield

Tensión de alimentación 5V (se alimenta

directamente desde la tarjeta Arduino).

Controlador ethernet: chip Wiznet W5100

con memoria flash de 16K.

Proporciona una red IP con capacidad de

comunicación TCP y UDP.

Puede operar como cliente o servidor.

Hasta 4 conexiones simultáneas.

Velocidad: 10/100Mbps Conexión con Arduino a través del Puerto SPI (pines 10, 11, 12, 13).

El pin 10 es para seleccionar la conexión Ethernet.

Provista con lecto-grabadora de memoria micro-SD (pin 4 para seleccionar la

memoria).

Comando desde librería SPI.h Ethernet.h y SD.h.

Se monta arriba de una Arduino UNO, Mega o compatibles y permite que se apilen

otros shields sobre ella.

Otra opción es usar un Shields disponible

I2C bus (Inter-Intergrated Circuit)

12

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Hay dos líneas comunes entre todos los dispositivos:

-SDA (Serial Data): línea de datos semibidireccional.

-SCL (Serial Clock): línea de pulsos de clock generados por el maestro

que sincronizan la transmisión de datos.

• Cada esclavo tiene una dirección única de 7 bits que lo identifica. La

misma se puede configurar por hardware o por software.

I2C bus (Inter-Intergrated Circuit)

13

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• El bus I2C tiene una arquitectura de tipo maestro-esclavo. El dispositivo

maestro inicia la comunicación con los esclavos, y puede mandar o recibir

datos de los esclavos. Los esclavos no pueden iniciar la comunicación (el

maestro tiene que preguntarles), ni hablar entre si directamente.

• Es posible disponer de más de un maestro, pero solo uno puede ser el

maestro cada vez. El cambio de maestro supone una alta complejidad, por

lo que no es algo frecuente.

• El bus I2C es síncrono. El maestro proporciona una señal de reloj, que

mantiene sincronizados a todos los dispositivos del bus. De esta forma, se

elimina la necesidad de que cada dispositivo tenga su propio reloj, de tener

que acordar una velocidad de transmisión y mecanismos para mantener la

transmisión sincronizada (como en UART).

I2C bus (Inter-Intergrated Circuit)

14

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Para poder realizar la comunicación con solo un cable de datos, el bus I2C

emplea una trama (formato de los datos enviados) amplia. La comunicación

costa de:

- 7 bits con la dirección del dispositivo esclavo a comunicar,

- 1 bit de sentido (indica si el maestro quiere enviar o recibor datos),

- 1 bit de validación,

- 1 o más bytes de datos enviados o recibidos del esclavo,

- 1 bit de validación.

Funcionamiento del I2C bus (Inter-Intergrated Circuit)

15

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Con estos 7 bits de dirección es posible acceder a 112 dispositivos en un

mismo bus (16 direcciones de las 128 direcciones posibles se reservan para

usos especiales)

• Este incremento de los datos enviados (18bits por cada 8bits de datos) supone

que, en general, la velocidad del bus I2C es reducida. La velocidad estándar

de transmisión es de 100khz, con un modo de alta velocidad de 400khz.

Funcionamiento del I2C bus (Inter-Intergrated Circuit)

16

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

I2C bus (Inter-Intergrated Circuit)

17

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ventajas:

- Requiere menos cables que el SPI bus.

- Dispone de mecanismos para chequear que la información ha llegado.

• Desventajas:

- Su velocidad es media o baja en comparación con otros buses.

- La comunicación no es full duplex, sino half duplex.

- No hay verificación de que el contenido del mensaje sea correcto.

I2C bus (Inter-Intergrated Circuit)

18

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Arduino dispone de soporte I2C por hardware vinculado físicamente a ciertos

pines. También es posible emplear cualquier otro grupo de pines como bus I2C

a través de sofware, pero en ese caso la velocidad será mucho menor.

• Los pines a los que está asociado varían de un modelo a otro. La siguiente

tabla muestra la disposición en alguno de los principales modelos.

SPI bus (Serial Peripheral Interface)

19

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

SPI bus (Serial Peripheral Interface)

20

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Hay tres líneas comunes entre todos los dispositivos:

- MISO (Master In Slave Out): por la cuál el esclavo envía datos al maestro,

- MOSI (Master Out Slave In): por la cuál el maestro envía datos al esclavo,

- SCK (Serial Clock): línea de pulsos de clock emitidos por el maestro que

sincronizan la transmisión de datos.

• Y una línea específica para cada periférico o esclavo:

- SS (Slave Select): pin a través del cuál el maestro habilita o deshabilita la

comunicación.

SPI bus (Serial Peripheral Interface)

21

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• La comunicación de datos entre maestro y esclavo se realiza en dos líneas

independientes, una del maestro a los esclavos, y otra de los esclavos al

maestro. Por tanto la comunicación es Full Duplex, es decir, el maestro puede

enviar y recibir datos simultáneamente.

Funcionamiento del SPI bus (Serial Peripheral Interface)

22

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Por defecto el maestro mantiene en estado HIGH todas las líneas SS. Cuando

el maestro quiere establecer comunicación con un esclavo pone a LOW la

línea SS correspondiente, lo que indica al esclavo que debe iniciar la

comunicación.

Funcionamiento del SPI bus (Serial Peripheral Interface)

23

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• En cada pulso de la señal de reloj, normalmente en el flanco de subida, el

dispositivo maestro envía un bit al esclavo a la vez que puede recibir un

bit del esclavo seleccionado.

Funcionamiento del SPI bus (Serial Peripheral Interface)

24

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• La trama (los datos enviados) no sigue ninguna regla, es decir, se puede

enviar cualquier secuencia arbitraria de bits. Esto hace que los dispositivos

conectados necesiten tener pre-acordado la longitud y significado de lo que

van a enviar y recibir.

SPI bus (Serial Peripheral Interface)

25

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

• Ventajas:

- Alta velocidad de trasmisión (hasta 8 Mhz en Arduino) y Full Duplex

- Integrado en muchos dispositivos.

- Permite enviar secuencias de bit de cualquier tamaño.

• Desventajas:

- Se requieren 3 cables (SCK, MOSI y MISO) + 1 cable adicional (SS) por

cada dispositivo esclavo.

- Solo es adecuado a corta distancias (hasta 30cm)

- No se dispone de ningún mecanismo de control que permita saber si el

mensaje ha sido recibido correctamente.

- La longitud de los mensajes enviados y recibidos tiene que ser conocida

por ambos dispositivos.

SPI bus (Serial Peripheral Interface)

26

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

Guía de

Ejercicios

N° 11

27

Circuito a realizar: opción 1 (Arduino UNO + Datalogger shield)

28

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

LM 35

Circuito a realizar: opción 2 (Arduino MEGA + Datalogger Ethernet

+ RTC DS1307)

29

INSTRUMENTACIÓN AVANZADADepartamento de Ingeniería Eléctrica y Electromecánica

Facultad de Ingeniería – Universidad Nacional de Mar del Plata

LM 35

RTC DS 1307