essaie de brancher le relais sur une autre broche que la 1 et profite en pour afficher dans la voie série la valeur de t
(Pour imprimer un float voici une fonction pratique :
void printDouble( double val, byte precision){
// prints val with number of decimal places determine by precision
// precision is a number from 0 to 6 indicating the desired decimial places
// example: printDouble( 3.1415, 2); // prints 3.14 (two decimal places)
Serial.print (int(val)); //prints the int part
if( precision > 0) {
Serial.print("."); // print the decimal point
unsigned long frac;
unsigned long mult = 1;
byte padding = precision -1;
while(precision--)
mult *=10;
if(val >= 0)
frac = (val - int(val)) * mult;
else
frac = (int(val)- val ) * mult;
unsigned long frac1 = frac;
while( frac1 /= 10 )
padding--;
while( padding--)
Serial.print("0");
Serial.print(frac,DEC) ;
}
}
Concernant les #define, c'est juste une directive pré-processeur pour remplacer du texte.
En claire, si tu écris #define FOO 3, alors à chaque fois que tu écris FOO dans ton code, le compilateur va automatiquement remplacer ça par 3 avant de compiler.
Du coup, c'est comme si tu avais le code suivant :
#include "DHT.h"
DHT dht(2, DHT11);
const int relais = 1;
void setup ()
{
pinMode(relais,OUTPUT);
}
void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (t > 25)
{
digitalWrite(relais,LOW);
} else {
digitalWrite(relais,HIGH);
}
}
Merci pour vos réponse, j'ai reussi à mieux comprendre et du coup reussir
Mais j'ai déjà un autre probléme ...
Cette fois ci avec le temps je n'ai pas acheter d'horloge mais j'aimerais quand même utiliser le temps dans mon programme, j'ai donc trouver la libraris time .
Mais je ne comprend pas comment je peut l'introduire dans mon programme ?
Celle dont je parle est celle ci : http://www.pjrc.com/teensy/td_libs_Time.html
Tu y trouveras un zip avec tout ce qu'il faut dedans
=====
Concrètement, il te suffit juste d'ajouter ces 3 fichiers à ton projet pour utiliser cette lib.
Une fois que cela est fait, tu as des fonctions simple à utiliser :
int hour(); // the hour now
int minute(); // the minute now
int second(); // the second now
int day(); // the day now
int month(); // the month now (Jan is month 1)
int year(); // the full four digit year: (2009, 2010 etc)
Ou alors, la fonction now() qui te renvoie une structure très complète.
=====
Par contre, l'arduino ne possède pas de système RTC.
Cela signifie qu'il est incapable de retenir l'heure lorsqu'il est éteind.
Bref, à chaque fois que tu reset ta carte, tu devras la remettre à l'heure (avec des boutons ou le port COM).
Cela se fait à l'aide de la fonction :
void setTime(int hr, int min, int sec, int day, int month, int yr);
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !