sd
Dependencies: mbed ADXL345 TextLCD LM75A
main.cpp@0:b31695578d04, 2021-08-26 (annotated)
- Committer:
- birda
- Date:
- Thu Aug 26 04:55:28 2021 +0000
- Revision:
- 0:b31695578d04
pro
Who changed what in which revision?
User | Revision | Line number | New 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 |