¡Esta es una revisión vieja del documento!


OLED y sensor de temperatura TMP102

En este ejemplo se realizará el manejo de temperatura mendiante el sensor TMP102 y OLED. También los datos del sensador serán enviados al gráficador en tiempo real que tiene la aplicación. Para manejar el gráficador, se deben enviar los datos mediante los bloques de trabajo con UART, ya que todos se envian de manera serial hacia el módulo Bluetooth, los bloques para enviar son:

Bloques UART

Para la construcción del algortimo visual se establecen los siguientes pasos:

  1. Declarar una variable de tipo flotante. Las variables se encuentran en la categoría iteraciones. Cambiar el nombre de la variable ya que el nombre (i) no esta permitido en la aplicación.
  2. Declarar un vector donde la variable anterior será convertida a texto, para ser enviada al OLED. El vector debe tener mínimo 10 posiciones y debe ser de tipo char. Para declarar este vector hacer uso de la categoría variables.
  3. Colocar el bloque iniciar OLED.
  4. Colocar el bloque reiniciar OLED.
  5. Colocar un bucle infinito ya que la lectura de temperatura se realizará de manera indefinida en la tarjeta de desarrollo.
  6. Asignar a la variable flotante el bloque (Leer TMP102) para realizar la lectura de temperatura.
  7. Usar el bloque sprintf. Este bloque convierte la variable númerica en el texto necesario para el OLED y se envia al vector declarado anteriormente.
  8. Indicar la posición donde el texto con el valor de la variable será representado en el OLED.
  9. Enviar vector al OLED
  10. Enviar variable mediante el bloque UART float send.
  11. Retraso de 50ms entre cada procesamiento para lectura de TMP102.

Tomando en cuenta lo anterior, el algoritmo visual será el siguiente:

Algoritmo visual TMP102 y gráficador

El código equivalente sería el siguiente:

codigo equivalente

#include “i2c_master.h”
#include “ssd1306.h”
#include “i2csensors.h”
#include <stdlib.h>
#include <avr/io.h>

#include “user.h”
#define F_CPU 16000000UL
#include <util/delay.h>
float temp = 0;
char tempvector[10];
int main(void) {
DDRD=1«PD1;
DDRD=0«PD0;
USART_Init();
InitializeDisplay();
reset_display();
while (1) {
temp = LecturaTMP102();
dtostrf(temp,4,2,tempvector);
setXY(0,0);
sendStr(tempvector);
Floattocharsend(tempvector);
_delay_ms(50);
}
}


Vídeo de creación de algoritmo visual

Vídeo de Funcionamiento

  • oled_sensor_tmp102_visualizaciongraficador.1564759266.txt.gz
  • Última modificación: 2019/08/02 15:21
  • por admin