sd
Dependencies: mbed ADXL345 TextLCD LM75A
main.cpp
- Committer:
- birda
- Date:
- 2021-08-26
- Revision:
- 0:b31695578d04
File content as of revision 0:b31695578d04:
/* mbed Microcontroller Library * Copyright (c) 2019 ARM Limited * SPDX-License-Identifier: Apache-2.0 */ #include "mbed.h" #include "LM75A.h" #include "ADXL345.h" #include "TextLCD.h" Serial pc(USBTX, USBRX); DigitalOut led1(LED1); char buffer[6]; //creamos buffer int grados=0; ADXL345 accelerometer(D11, D12, D13, D10); // mosi, miso,sck,cs LM75A temperatura(D14,D15,0x90); // SDA, SCL, ADDRESS I2C i2c_lcd(D3,D6); // SDA, SCL TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780); // I2C bus, PCF8574 addr, LCD Type, Ctrl Type int main() { temperatura.write_reg(0x01, 0x00); //Escribir el registro de la direccion para obetener los datos de la temperatura ////////////////////// int readings[] ={0,0,0}; // crea el vector de lectura en 3 posiciones //pc.printf("Starting test...\n"); //Go into standby mode to configure the device. accelerometer.setPowerControl(0x00); //Full resolution, +/-16g, 4mg/LSB. accelerometer.setDataFormatControl(0x0B); //activar la maxima capacidad de resolucion //3.2kHz data rate. accelerometer.setDataRate(ADXL345_3200HZ); //activa la velocidad de testeo //Measurement mode. accelerometer.setPowerControl(0x08); //activa modo de medicion //////////////////// while (true) { lcd.cls(); grados=temperatura.read_T(); //llamar de temperatura la lectura de read_T pc.baud(9600); // velocidad de comunicacion //pc.printf("la temperatura es: %d grados celcius\n\r",grados); //pc.printf("' ',%d,' '",grados); led1 = !led1; ///////////// accelerometer.getOutput(readings); //13-bit, sign extended values. ///pc.printf("Aceleracion en x: %i, En Y: %i, En Z: %i\n\r", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]); //pc.printf("' ',%i\n\r,' '",x); //pc.printf("' ',%i\n\r,' '",y); //pc.printf("' ',%i\n\r,' '",z); /////////// lcd.setBacklight(TextLCD::LightOn);// activa el led de la lCD int x=(int16_t)readings[0]; //tomamos los valores de cada eje como un entero int y=(int16_t)readings[1]; int z=(int16_t)readings[2]; //pc.printf("' ',%i,' '",x); //pc.printf("' ',%i,' '",y); //pc.printf("' ',%i,' '",z); /////////////////////// sprintf(buffer,"' ',%d,%d,%d,%d,' '\n\r",grados,x,y,z); pc.write(buffer, strlen(buffer)); ///determina el tamaño de la funcióna imprimir //////////// lcd.locate(0,1); lcd.printf("Y:%i,Z:%i \n", y,z); lcd.locate(0,0); lcd.printf("temp:%dC x:%i\n",grados,x); wait(1); } }