Quiero resolver esta raiz en arduino pero me recorta los decimales, en este ejemplo el resultado es 0,959 y este me redondea en 1
int raiz;
void setup()
{
Serial.begin(9600);
}
void loop()
{
raiz= pow((72/100), (8)^-1);
Serial.println(raiz);
delay(1000);
}
Pero @Adrian_E en que piensas?
int raiz en lugar de double raiz?
Bueno aún asi no da el valor esperable.
Mi calculadora científica de la PC da 0,9597686545
En que estaba pensando yo.
Buen pow da unresultado en double y deben pasarse parámetros en float.
Asi funciona correctamente.
Esto ahora funciona
double raiz;
void setup()
{
Serial.begin(9600);
float numero = 72.0/100.0;
float exponente = 0.125;
raiz = pow(numero, exponente);
Serial.println(raiz, 5);
}
void loop() {
}
yo no comprender lo de double, a mi en la calculadora poniendo 8 raiz (72/100) me da 0959 y en el mathematica igual
Pero no estas en la calculadora ni en Mathematica. Estas en Arduino con las reglas de arduino.
Esto tampoco funciona.
raiz = pow(72.0/100.0, 1/8);
Me da 1.0000
Estoy comientiendo barbaridades pero solo para aclarar cosas y luego veremos los errores
Esto tampoco funciona
raiz = pow(72.0/100.0, 8^(-1));
Da 19.23124
Bueno respecto de 8^(-1) el resultado es -9 de modo que no toma el operador ^
Tendrias que hacer un pow(8,-1)
Asi que esto si funciona como tu esperas
double raiz;
void setup()
{
Serial.begin(9600);
raiz = pow(72.0/100.0, pow(8.0,-1.0));
Serial.println(raiz, 5);
}
void loop() {
}
Gracias surbyte, me quede sin internet y no pude porner que lo habia solucionaso, estoy programando un sensor de temperatura el bme 280, y estaba calculando el punto de rocio,
todavia falta, pero subo lo que tengo hecho. cuando tenga tiempo, ya lo subo completo y la parte de la pantalla nextion.
#include <Adafruit_BME280.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>;
#include<SPI.h>;
#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
double T=13;
double H=72;
double raiz1;
double raiz2;
void setup()
{
Serial.begin(9600);
Serial.println(F("BME280 test"));
bool status;
status = bme.begin();
if(!status){
Serial.println("No se pudo detectar Modulo BME 280");
while(1);
}
}
void loop()
{
puntorocio();
}
void puntorocio(){
raiz1= pow(H,1.0/8);
raiz2= pow(100,1.0/8);
double div_raiz= raiz1/raiz2;
double Pun_rocio= div_raiz*(110+T)-110;
//Serial.println(raiz1);
//Serial.println(raiz2);
//Serial.println(div_raiz);
Serial.print("Punto de Rocio :");
Serial.print(Pun_rocio);
Serial.println(" %");
delay(1000);
}
El punto de rocío o temperatura de rocío es la temperatura más alta a la que empieza a condensarse el vapor de agua contenido en el aire, produciendo rocío, neblina, cualquier tipo de nube o, en caso de que la temperatura sea lo suficientemente baja, escarcha.
Para una masa dada de aire, que contiene una cantidad dada de vapor de agua (humedad absoluta), se dice que la humedad relativa es la proporción de vapor contenida en relación con la necesaria para llegar al punto de saturación, es decir, ...