Iván Santos
/
IDW01M1_Cloud_IBM14
santos_ej3 modulo 3
main.cpp
- Committer:
- sedu_santos
- Date:
- 2022-05-04
- Revision:
- 0:5e1dd727b886
File content as of revision 0:5e1dd727b886:
#include "mbed.h" #include "DHT22.h" Serial pc(USBTX, USBRX); // Se definen la entradas analógicas AnalogIn ldr(A0); AnalogIn dataX(A1); AnalogIn dataY(A2); AnalogIn dataZ(A3); // Se inicializa el DHT con la librería DHT22 dht22(D2); void bucle() { pc.baud(4800); double x,y,z; double x_g_value,y_g_value,z_g_value; double roll, pitch; int hum; int temp; while(1) { pc.printf("-------------------------------\r\n"); pc.printf("\r\n"); float ldrStatus = ldr.read(); pc.printf("LDR READING = %4.2f \r\n", ldrStatus); x = dataX.read(); y = dataY.read(); z = dataZ.read(); // Calculamos las aceleraciones en g x_g_value = ( ( ( (double)(x * 5)/1024) - 1.65 ) / 0.330 ); y_g_value = ( ( ( (double)(y * 5)/1024) - 1.65 ) / 0.330 ); z_g_value = ( ( ( (double)(z * 5)/1024) - 1.80 ) / 0.330 ); //A partir de los valores del acelerometro, se calculan los angulos Y, X //respectivamente, con la formula de la tangente. roll = ( ( (atan2(y_g_value,z_g_value) * 180) / 3.14 ) + 180 ); pitch = ( ( (atan2(z_g_value,x_g_value) * 180) / 3.14 ) + 180 ); pc.printf("Accelerometer X : %f\n\r", x); pc.printf("Accelerometer Y : %f\n\r", y); pc.printf("Accelerometer Z : %f\n\r", z); pc.printf("Roll: %f\n\r",roll); pc.printf("pitch: %f\n\r",pitch); // Conseguimos humedad y temperatura en grados del DHT dht22.sample() ; hum=dht22.getHumidity()/10.0; temp=dht22.getTemperature()/10.0; pc.printf("temp: %d , hum:%d \r\n",temp,hum); pc.printf("\r\n"); pc.printf("-------------------------------\r\n"); pc.printf("\r\n"); wait(1); } } int main() { bucle(); }