Show Posts
Pages: 1 2 [3]
31  International / Generale / Re: arrotondare un valore on: December 16, 2011, 03:47:56 am

Ma in sostanza che devi farci? Internamente i float sono molto imprecisi, sulla seriale l'arrotondamento di default è a 2 cifre decimali ma in realtà dietro ci sono diverse altre cifre che non vengono visualizzate ma ci sono.

perchè dici che i float sono molto imprecisi? cosa significa? cosa dovrei usare?
infatti non è un problema di serale o lcd.

leggo diverse temperature, interne, esterne, mandata e ritorno caldaia e comando delle valvole miscelatrici in base a dei calcoli (niente di scientifico, semplici moltiplicazioni - sottrazioni etc) ed alla curva climatica ( una tabella), partendo appunto dalle temperature rilevate.
dopo i "miei" calcoli mi troverò dei valori con diversi decimali ma che poi dovrò arrotondare ad 1 decimale o forse anche alla mezza unità (0.5)

tnks!!!



32  International / Generale / Re: arrotondare un valore on: December 15, 2011, 11:09:59 am

ehmmm vediamo se ho capito
esiste un qualcosa (una funzione ?) setprecision()
che nell'esempio viene utilizzato con lo streaming (che non conosco....)
come dovrebbe invece essere la sintassi nel formato "nativo" di arduino?

inoltre di che libreria ha bisogno? SdFat.h ?

quindi se io ho
float variabile =20.1645
con tale funzione potrei arrivare ad avere un risultato di 20.2 ( arrotondato ad 1 decimale)
con un qualcosa del tipo risultato= setprecision(variabile, 1) ??

grazie!!!

33  International / Generale / Re: LM35DZ La temperatura sale sempre ! on: December 15, 2011, 08:40:27 am

ottimo e mooooolto interessante!!!
grazie!
34  International / Generale / arrotondare un valore on: December 15, 2011, 04:56:32 am
Hola,
ignoranza mia, scusate,
ho una variabile di tipo FLOAT (una temperatura letta da un sensore LM35) ed attualmente ha 2 decimali
vorrei che tale valore venga arrotondato ad un solo decimale ( devo poi fare altri calcoli, non mi serve per mandarla a video)
come posso fare?
grazie 1000
stefano
35  International / Generale / Re: LM35DZ La temperatura sale sempre ! on: December 15, 2011, 04:47:47 am
secondo te quante letture ed in che intervallo di tempo andrebbero fatte?
grazie 1000
stefano
36  International / Generale / Re: problemi e/o dubbi con sensore dht11 (temperatura ed umidità) on: November 24, 2011, 04:16:54 pm
 smiley-eek bene scoperto l'arcano.....
37  International / Generale / Re: problemi e/o dubbi con sensore dht11 (temperatura ed umidità) on: November 24, 2011, 01:11:42 pm
Leggendo poi l datasheet, viene riportato:
Accuratezza: umidità +-5% - temperatura +-2°C
Risoluzione: umidità +-1% - temperatura +-0.1°C

Quindi la risoluzione è di 0,1°C anche se poi ha un'accuratezza di +- 2°C. Quindi vuol dire che può segnare 18.9° anche se magari in realtà ce ne sono 19.6°C, per capirsi.

purtroppo anche io avevo letto tale datasheet ma ho appena modificato la funzione: gli faccio scrivere sia la parte intera che la parte decimale e a meno di miei errori sembra proprio che i datasheet sia sbagliati... non trasmette nessun valore decimale ne della T ne della RH
qualcuno può gentilmente confermare???
tnks
38  International / Generale / Re: problemi e/o dubbi con sensore dht11 (temperatura ed umidità) on: November 24, 2011, 08:22:49 am
si ho un dht11
infatti notavo che c'è una differenza tra la parte del dht11 e dht22
a sto punto ancor di + non si capisce se il dht11 legge i decimali o no  (alcuni datasheet dicono di no.. )
39  International / Generale / Re: problemi e/o dubbi con sensore dht11 (temperatura ed umidità) on: November 24, 2011, 08:07:15 am
molte grazie!!! ora mi è chiaro
 mi devo abituare a leggere il C non come se fosse il basic... suggerimenti per qualche tutorial?


googlando ho poi notato una cosa.. non è per niente chiaro se il dht11 misura o meno i valori decimali
ho trovato dei pdf che dicono che la risoluzione è di 1 grado altri di 0.1....

grazie
stefano
40  International / Generale / problemi e/o dubbi con sensore dht11 (temperatura ed umidità) on: November 24, 2011, 06:16:01 am
Hola a todos
sono nuovo su arduino ma qualcosa con i PIC in basic l'ho fatto (non conosco i vari dialetti del C )
ho collegato il sensore dht11 sul pin A0 e messo la resistenza di pull up da 4.7K
ho  scaricato 3 programmi e relative librerie
http://arduino.cc/playground/Main/DHT11Lib
http://www.dfrobot.com/index.php?route=product/product&filter_name=dht11&product_id=174
http://www.ladyada.net/learn/sensors/dht.html

l'unico che mi funziona ( con le opportune modifiche del pin e del sensore da usare) è l'ultimo
MA non mi da i valori decimali ho solo valori "interi"
ad esempio 46.00 % e 22.00 *C

come mai? non mi pare sia una limitazione del sensore...

spulciando nel codice dell'esempio e poi nella libreria dht.cpp

ho trovato la funzione

float DHT::readTemperature(void) {
  float f;

  if (read()) {
    switch (_type) {
    case DHT11:
      f = data[2];
      return f;
    case DHT22:
    case DHT21:
      f = data[2] & 0x7F;
      f *= 256;
      f += data[3];
      f /= 10;
      if (data[2] & 0x80)
   f *= -1;

      return f;
    }
  }
  Serial.print("Read fail");
  return NAN;
}


mi pare di capire che dopo la lettura dei byte inviati dal sensore con il CASE testa il tipo di sensore e nel caso del DHT11 mette solo la parte numerica intera "data[2]" nel valore di ritorno della funzione
mentre negli altri modelli mette anche la parte decimale
ma mi sfugge (non sono afferrato in C) cosa faccia con la parte di codice

f = data[2] & 0x7F;
      f *= 256;
      f += data[3];
      f /= 10;
      if (data[2] & 0x80)
   f *= -1;

 ed ancora cosa sono f* oppure f+ f/

grazie e scusate delle domande banali....
stefano
Pages: 1 2 [3]