Se lee un sensor de temperatura LM61CIZ a travès deun canal analógico del ADC (A0/PTB0) y el resultado se muestra en la terminal serial y en un LCD 16x12.

Dependencies:   mbed TextLCD

Committer:
CHRISTIAN_GSL
Date:
Tue Aug 04 18:41:32 2020 +0000
Revision:
0:94d7e4f51a87
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CHRISTIAN_GSL 0:94d7e4f51a87 1
CHRISTIAN_GSL 0:94d7e4f51a87 2 /*******************************************************************************
CHRISTIAN_GSL 0:94d7e4f51a87 3 Nombre del Proyecto: SENSOR TEMPERATURA
CHRISTIAN_GSL 0:94d7e4f51a87 4 Se lee un sensor de temperatura LM61CIZ a travès deun canal analógico del ADC
CHRISTIAN_GSL 0:94d7e4f51a87 5 (A0/PTB0) y el resultado se muestra en la terminal serial y en un LCD 16x12.
CHRISTIAN_GSL 0:94d7e4f51a87 6 Autor: Christian G.S.L.
CHRISTIAN_GSL 0:94d7e4f51a87 7 Fecha: 16-05-2019
CHRISTIAN_GSL 0:94d7e4f51a87 8 Software: MBED
CHRISTIAN_GSL 0:94d7e4f51a87 9 Hardware: LCD16x2, LM61ciz
CHRISTIAN_GSL 0:94d7e4f51a87 10 Diagrama:
CHRISTIAN_GSL 0:94d7e4f51a87 11 Tarjeta KL25Z
CHRISTIAN_GSL 0:94d7e4f51a87 12 --------------------
CHRISTIAN_GSL 0:94d7e4f51a87 13 /|\| |
CHRISTIAN_GSL 0:94d7e4f51a87 14 | | |
CHRISTIAN_GSL 0:94d7e4f51a87 15 --|RST |
CHRISTIAN_GSL 0:94d7e4f51a87 16 | |
CHRISTIAN_GSL 0:94d7e4f51a87 17 LM61cizVout--->|PTB0 |----<LCD 16x2>
CHRISTIAN_GSL 0:94d7e4f51a87 18
CHRISTIAN_GSL 0:94d7e4f51a87 19 Diagrama de conexión al LCD.
CHRISTIAN_GSL 0:94d7e4f51a87 20 ===============================================================================
CHRISTIAN_GSL 0:94d7e4f51a87 21 LCD pin Connect to
CHRISTIAN_GSL 0:94d7e4f51a87 22 -------------------------------------------------------------------------------
CHRISTIAN_GSL 0:94d7e4f51a87 23 01 - GND GND, pot
CHRISTIAN_GSL 0:94d7e4f51a87 24 02 - VCC +5V, pot
CHRISTIAN_GSL 0:94d7e4f51a87 25 03 - Contrast Pot wiper
CHRISTIAN_GSL 0:94d7e4f51a87 26 04 - RS PTE20
CHRISTIAN_GSL 0:94d7e4f51a87 27 05 - R/W GND
CHRISTIAN_GSL 0:94d7e4f51a87 28 06 - EN PTE21
CHRISTIAN_GSL 0:94d7e4f51a87 29 07 - DB0 GND
CHRISTIAN_GSL 0:94d7e4f51a87 30 08 - DB1 GND
CHRISTIAN_GSL 0:94d7e4f51a87 31 09 - DB2 GND
CHRISTIAN_GSL 0:94d7e4f51a87 32 10 - DB3 GND
CHRISTIAN_GSL 0:94d7e4f51a87 33 11 - DB4 PTE22
CHRISTIAN_GSL 0:94d7e4f51a87 34 12 - DB5 PTE23
CHRISTIAN_GSL 0:94d7e4f51a87 35 13 - DB6 PTE29
CHRISTIAN_GSL 0:94d7e4f51a87 36 14 - DB7 PTE30
CHRISTIAN_GSL 0:94d7e4f51a87 37 15 - BL- GND
CHRISTIAN_GSL 0:94d7e4f51a87 38 16 - BL+ +5V
CHRISTIAN_GSL 0:94d7e4f51a87 39 *******************************************************************************/
CHRISTIAN_GSL 0:94d7e4f51a87 40 //ARCHIVOS DE CABECERA.
CHRISTIAN_GSL 0:94d7e4f51a87 41 #include "mbed.h"
CHRISTIAN_GSL 0:94d7e4f51a87 42 #include "TextLCD.h"
CHRISTIAN_GSL 0:94d7e4f51a87 43 //******************************************************************************
CHRISTIAN_GSL 0:94d7e4f51a87 44 //DECLARACION DE FUNCIONES.
CHRISTIAN_GSL 0:94d7e4f51a87 45
CHRISTIAN_GSL 0:94d7e4f51a87 46 //******************************************************************************
CHRISTIAN_GSL 0:94d7e4f51a87 47 //INICIALIZACION.
CHRISTIAN_GSL 0:94d7e4f51a87 48 Serial pc(USBTX, USBRX); // tx, rx inicialización del puerto serial emulado.
CHRISTIAN_GSL 0:94d7e4f51a87 49 Serial uart1(PTE0, PTE1);// inicialización del puerto serial uart1 TX=PTE0, RX=PTE1
CHRISTIAN_GSL 0:94d7e4f51a87 50
CHRISTIAN_GSL 0:94d7e4f51a87 51 //inicialización de pines para control de LCD
CHRISTIAN_GSL 0:94d7e4f51a87 52 TextLCD lcd(PTE20, PTE21, PTE22, PTE23, PTE29, PTE30, TextLCD::LCD16x2); // rs, e, d4-d7, LCDType
CHRISTIAN_GSL 0:94d7e4f51a87 53
CHRISTIAN_GSL 0:94d7e4f51a87 54 AnalogIn Sensor(PTB0); //inicialización de un canal del ADC
CHRISTIAN_GSL 0:94d7e4f51a87 55
CHRISTIAN_GSL 0:94d7e4f51a87 56 unsigned short int lectura_ADC;
CHRISTIAN_GSL 0:94d7e4f51a87 57 float Vent;
CHRISTIAN_GSL 0:94d7e4f51a87 58 float temperatura;
CHRISTIAN_GSL 0:94d7e4f51a87 59
CHRISTIAN_GSL 0:94d7e4f51a87 60 //PROGRAMA PRINCIPAL.
CHRISTIAN_GSL 0:94d7e4f51a87 61 //******************************************************************************
CHRISTIAN_GSL 0:94d7e4f51a87 62 int main()
CHRISTIAN_GSL 0:94d7e4f51a87 63 {
CHRISTIAN_GSL 0:94d7e4f51a87 64 pc.baud(9600);//Velocidad bps (Taza de transmisión)
CHRISTIAN_GSL 0:94d7e4f51a87 65 pc.format(8,Serial::None,1);//8 bits de datos,sin paridad,1 bit de paro
CHRISTIAN_GSL 0:94d7e4f51a87 66 uart1.baud(9600);//Velocidad bps (Taza de transmisión)
CHRISTIAN_GSL 0:94d7e4f51a87 67 uart1.format(8,Serial::None,1);//8 bits de datos,sin paridad,1 bit de paro
CHRISTIAN_GSL 0:94d7e4f51a87 68
CHRISTIAN_GSL 0:94d7e4f51a87 69 lcd.locate(0,0);
CHRISTIAN_GSL 0:94d7e4f51a87 70 lcd.printf("Temperatura ");
CHRISTIAN_GSL 0:94d7e4f51a87 71
CHRISTIAN_GSL 0:94d7e4f51a87 72 while(1) //Bucle infinito
CHRISTIAN_GSL 0:94d7e4f51a87 73 {
CHRISTIAN_GSL 0:94d7e4f51a87 74 lectura_ADC = Sensor.read_u16();//Read the input voltage, represented as an unsigned short in the range [0x0000, 0xFFFF].
CHRISTIAN_GSL 0:94d7e4f51a87 75 pc.printf("%d \n", lectura_ADC);
CHRISTIAN_GSL 0:94d7e4f51a87 76 Vent = (2.30*lectura_ADC)/65535.0;
CHRISTIAN_GSL 0:94d7e4f51a87 77 pc.printf("%f \n", Vent);
CHRISTIAN_GSL 0:94d7e4f51a87 78 temperatura = (Vent-0.6)/0.01;
CHRISTIAN_GSL 0:94d7e4f51a87 79 lcd.locate(0,1);//(col,row)
CHRISTIAN_GSL 0:94d7e4f51a87 80 lcd.printf("%.2f",temperatura);
CHRISTIAN_GSL 0:94d7e4f51a87 81 lcd.putc(223); //imprime símbolo º
CHRISTIAN_GSL 0:94d7e4f51a87 82 lcd.printf("C "); //imprime C
CHRISTIAN_GSL 0:94d7e4f51a87 83
CHRISTIAN_GSL 0:94d7e4f51a87 84 pc.printf("%f \n", temperatura);
CHRISTIAN_GSL 0:94d7e4f51a87 85 wait(0.5);//1/2 segundo para refrescar lectura del ADC wait_ms(250);wait_ms(250);
CHRISTIAN_GSL 0:94d7e4f51a87 86 }
CHRISTIAN_GSL 0:94d7e4f51a87 87 }
CHRISTIAN_GSL 0:94d7e4f51a87 88 //******************************************************************************