sd

Dependencies:   mbed ADXL345 TextLCD LM75A

Committer:
birda
Date:
Thu Aug 26 04:55:28 2021 +0000
Revision:
0:b31695578d04
pro

Who changed what in which revision?

UserRevisionLine numberNew contents of line
birda 0:b31695578d04 1 /* mbed Microcontroller Library
birda 0:b31695578d04 2 * Copyright (c) 2019 ARM Limited
birda 0:b31695578d04 3 * SPDX-License-Identifier: Apache-2.0
birda 0:b31695578d04 4 */
birda 0:b31695578d04 5
birda 0:b31695578d04 6 #include "mbed.h"
birda 0:b31695578d04 7 #include "LM75A.h"
birda 0:b31695578d04 8 #include "ADXL345.h"
birda 0:b31695578d04 9 #include "TextLCD.h"
birda 0:b31695578d04 10
birda 0:b31695578d04 11
birda 0:b31695578d04 12 Serial pc(USBTX, USBRX);
birda 0:b31695578d04 13
birda 0:b31695578d04 14
birda 0:b31695578d04 15 DigitalOut led1(LED1);
birda 0:b31695578d04 16 char buffer[6]; //creamos buffer
birda 0:b31695578d04 17 int grados=0;
birda 0:b31695578d04 18 ADXL345 accelerometer(D11, D12, D13, D10); // mosi, miso,sck,cs
birda 0:b31695578d04 19 LM75A temperatura(D14,D15,0x90); // SDA, SCL, ADDRESS
birda 0:b31695578d04 20 I2C i2c_lcd(D3,D6); // SDA, SCL
birda 0:b31695578d04 21
birda 0:b31695578d04 22
birda 0:b31695578d04 23 TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::HD44780); // I2C bus, PCF8574 addr, LCD Type, Ctrl Type
birda 0:b31695578d04 24
birda 0:b31695578d04 25
birda 0:b31695578d04 26
birda 0:b31695578d04 27 int main()
birda 0:b31695578d04 28 {
birda 0:b31695578d04 29 temperatura.write_reg(0x01, 0x00); //Escribir el registro de la direccion para obetener los datos de la temperatura
birda 0:b31695578d04 30
birda 0:b31695578d04 31 //////////////////////
birda 0:b31695578d04 32
birda 0:b31695578d04 33 int readings[] ={0,0,0}; // crea el vector de lectura en 3 posiciones
birda 0:b31695578d04 34
birda 0:b31695578d04 35 //pc.printf("Starting test...\n");
birda 0:b31695578d04 36
birda 0:b31695578d04 37
birda 0:b31695578d04 38 //Go into standby mode to configure the device.
birda 0:b31695578d04 39 accelerometer.setPowerControl(0x00);
birda 0:b31695578d04 40
birda 0:b31695578d04 41 //Full resolution, +/-16g, 4mg/LSB.
birda 0:b31695578d04 42 accelerometer.setDataFormatControl(0x0B); //activar la maxima capacidad de resolucion
birda 0:b31695578d04 43
birda 0:b31695578d04 44 //3.2kHz data rate.
birda 0:b31695578d04 45 accelerometer.setDataRate(ADXL345_3200HZ); //activa la velocidad de testeo
birda 0:b31695578d04 46
birda 0:b31695578d04 47 //Measurement mode.
birda 0:b31695578d04 48 accelerometer.setPowerControl(0x08); //activa modo de medicion
birda 0:b31695578d04 49
birda 0:b31695578d04 50 ////////////////////
birda 0:b31695578d04 51
birda 0:b31695578d04 52
birda 0:b31695578d04 53
birda 0:b31695578d04 54 while (true) {
birda 0:b31695578d04 55 lcd.cls();
birda 0:b31695578d04 56
birda 0:b31695578d04 57 grados=temperatura.read_T(); //llamar de temperatura la lectura de read_T
birda 0:b31695578d04 58 pc.baud(9600); // velocidad de comunicacion
birda 0:b31695578d04 59 //pc.printf("la temperatura es: %d grados celcius\n\r",grados);
birda 0:b31695578d04 60 //pc.printf("' ',%d,' '",grados);
birda 0:b31695578d04 61 led1 = !led1;
birda 0:b31695578d04 62
birda 0:b31695578d04 63 /////////////
birda 0:b31695578d04 64
birda 0:b31695578d04 65 accelerometer.getOutput(readings);
birda 0:b31695578d04 66
birda 0:b31695578d04 67 //13-bit, sign extended values.
birda 0:b31695578d04 68 ///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]);
birda 0:b31695578d04 69 //pc.printf("' ',%i\n\r,' '",x);
birda 0:b31695578d04 70 //pc.printf("' ',%i\n\r,' '",y);
birda 0:b31695578d04 71 //pc.printf("' ',%i\n\r,' '",z);
birda 0:b31695578d04 72 ///////////
birda 0:b31695578d04 73
birda 0:b31695578d04 74 lcd.setBacklight(TextLCD::LightOn);// activa el led de la lCD
birda 0:b31695578d04 75 int x=(int16_t)readings[0]; //tomamos los valores de cada eje como un entero
birda 0:b31695578d04 76 int y=(int16_t)readings[1];
birda 0:b31695578d04 77 int z=(int16_t)readings[2];
birda 0:b31695578d04 78
birda 0:b31695578d04 79 //pc.printf("' ',%i,' '",x);
birda 0:b31695578d04 80 //pc.printf("' ',%i,' '",y);
birda 0:b31695578d04 81 //pc.printf("' ',%i,' '",z);
birda 0:b31695578d04 82 ///////////////////////
birda 0:b31695578d04 83
birda 0:b31695578d04 84 sprintf(buffer,"' ',%d,%d,%d,%d,' '\n\r",grados,x,y,z);
birda 0:b31695578d04 85 pc.write(buffer, strlen(buffer)); ///determina el tamaño de la funcióna imprimir
birda 0:b31695578d04 86
birda 0:b31695578d04 87 ////////////
birda 0:b31695578d04 88 lcd.locate(0,1);
birda 0:b31695578d04 89 lcd.printf("Y:%i,Z:%i \n", y,z);
birda 0:b31695578d04 90 lcd.locate(0,0);
birda 0:b31695578d04 91 lcd.printf("temp:%dC x:%i\n",grados,x);
birda 0:b31695578d04 92
birda 0:b31695578d04 93 wait(1);
birda 0:b31695578d04 94
birda 0:b31695578d04 95 }
birda 0:b31695578d04 96
birda 0:b31695578d04 97 }
birda 0:b31695578d04 98