void setup(){ Serial.begin(9600);
pinMode(13,OUTPUT); //ventilo en sortie
}
void loop(){
dht DHT;
float Temp_max = 25.00; //température max
//Si la température ou humidité est différente de celle relevée précédement alors l'écrire
if((DHT.humidity != humidity) || (DHT.temperature != temperature)){ Serial.print (DHT.humidity,2); Serial.print (",\t"); Serial.println (DHT.temperature,2);
temperature=DHT.temperature;
humidity=DHT.humidity;
}
//Si la température est supérieure à 25° alors allumé le ventilo
if(DHT.temperature > Temp_max){
digitalWrite(13,HIGH);
}
else digitalWrite(13,LOW); //sinon l'éteindre
}
Je viens de me rendre compte que l'exemple DHT22 ne déclare pas la broche de sortie du capteur bizarre non ? IL n'y a pas de pinMode(DHT,2) par exemple ?
J'ai d'abord voulu déclarer la variable Temp_max en tant que byte mais je ne sais pas si après la comparaison aurait été possible avec DHT.temperature ?
Au niveau du ventilo, je trouve sur un des tutos que le niveau HIGH correspond à allumer et sur l'autre que c'est le niveau LOW qui permet de faire tourner le ventilo ?
Un des tutos indique l'utilisation d'un transistor mais pas l'autre. Y a t-il une erreur ?
Faut il alimenter l'arduino avec une alim extérieure pour un montage de ce type (est ce que la simple alimentation 5V suffira à gérer le capteur + le ventilateur + un autre capteur et un signal PWM pour des LED) ?
La bibliothèque pour le DHT22 a été mise à jour --> voir playground version 1.7.
Il faut abandonner immédiatement les anciennes bibliothèques à base de digitalRead qui génère trop d'erreurs Timeout.
L'auteur utilise une solution très proche de la discussion qui a eu lieu ici il y a 2 ou 3 semaines.
Donc tu as la dernière version --> c'est bon.
Effectivement les pins sont déclarées "en dur" par un #define dans le programme. C'est "un peu beaucoup" limite que pour une bibliothèque en *.cpp on ne puisse pas choisir la pin et donc déclarer autant d'objet dht que l'on veut.
En fait ce n'est pas une bibliothèque mais une preuve de faisabilité.
C'est modifiable en ajoutant un constructeur à la classe où on passerait la pin et le type de DHT.
Concernant mes autres questions quelqu'uns à une réponse/conseil à m'apporter ?
J'ai d'abord voulu déclarer la variable Temp_max en tant que byte mais je ne sais pas si après la comparaison aurait été possible avec DHT.temperature ?
Au niveau du ventilo, je trouve sur un des tutos que le niveau HIGH correspond à allumer et sur l'autre que c'est le niveau LOW qui permet de faire tourner le ventilo ?
Un des tutos indique l'utilisation d'un transistor mais pas l'autre. Y a t-il une erreur ?
Faut il alimenter l'arduino avec une alim extérieure pour un montage de ce type (est ce que la simple alimentation 5V suffira à gérer le capteur + le ventilateur + un autre capteur et un signal PWM pour des LED) ?
salut je m'excuse mais je n'utilise pas la meme librairie que vous donc il ce peut que je me plante !
Je viens de me rendre compte que l'exemple DHT22 ne déclare pas la broche de sortie du capteur bizarre non ? IL n'y a pas de pinMode(DHT,2) par exemple ?
normal vu la conception de la librairie cela permet de ne pas assigné de pin directement au DTH pandant la création de l'objet
, et surtout cela permet d'avoir plusieur dth et de simplement les intérogés grace a la definition en haute de programe
dans l'exemple
#define DHT22_PIN 5
je pense que l'on peut alors cree plusieur def ou un tableau de valeur de pin pour intérogé plusieur capteur :
( biensur je n'ai pas tester mais je ne vois pas pourquoi ça ne fonctionerai pas)
J'ai d'abord voulu déclarer la variable Temp_max en tant que byte mais je ne sais pas si après la comparaison aurait été possible avec DHT.temperature ?
dans la lib humidity et temperature sont defini par des double donc un chifre a virgule tu vas donc perdre en precision et le resultat sera tronqué
Au niveau du ventilo, je trouve sur un des tutos que le niveau HIGH correspond à allumer et sur l'autre que c'est le niveau LOW qui permet de faire tourner le ventilo ?
tout depand de la magniere dont et fait l'intarface de "comutation" la plupar du temps on s'arange pour que ce soit la mise a la masse donc LOW de la sortie pour faire la comutation "on" , sans etre sur cela evite d'avoir a tire quelque chose sur la sortie.
Un des tutos indique l'utilisation d'un transistor mais pas l'autre. Y a t-il une erreur ?
est ce que par hazard l'un des ventilo ne serai pas un quatre fil avec par exemple un fil pour une commande PWM ?
Faut il alimenter l'arduino avec une alim extérieure pour un montage de ce type (est ce que la simple alimentation 5V suffira à gérer le capteur + le ventilateur + un autre capteur et un signal PWM pour des LED) ?
tu devrai avoir la reponse asser facilement ,
-ton ventilo il fonctione sous quel tension ?
tes capteur consome combien?
si ton ventilo est en 5V (je serai surpris) combien consome t'il (A)?
bref il y a de tres forte probabilité pour que ton arduino n'ai pas asser de jus sur un port usb et que ton montage neccesite plusieur tension differente et une intensité plus importante que ce que peut debité l'arduino.
Au niveau du ventilo, je trouve sur un des tutos que le niveau HIGH correspond à allumer et sur l'autre que c'est le niveau LOW qui permet de faire tourner le ventilo ?
tout depand de la magniere dont et fait l'intarface de "comutation" la plupar du temps on s'arange pour que ce soit la mise a la masse donc LOW de la sortie pour faire la comutation "on" , sans etre sur cela evite d'avoir a tire quelque chose sur la sortie.
Je ne comprend pas bien de quelle interface de commutation tu parles ?
Un des tutos indique l'utilisation d'un transistor mais pas l'autre. Y a t-il une erreur ?
est ce que par hazard l'un des ventilo ne serai pas un quatre fil avec par exemple un fil pour une commande PWM ?
Faut il alimenter l'arduino avec une alim extérieure pour un montage de ce type (est ce que la simple alimentation 5V suffira à gérer le capteur + le ventilateur + un autre capteur et un signal PWM pour des LED) ?
tu devrai avoir la reponse asser facilement ,
-ton ventilo il fonctione sous quel tension ?
tes capteur consome combien?
si ton ventilo est en 5V (je serai surpris) combien consome t'il (A)?
En pj une datasheet du DHT22/AM2302 un peu moins "folklorique" que j'ai trouvé par hasard.
Le DHT22 est un bon produit mais avec une gestion 100% " à la chinoise".
Je ne comprend pas bien de quelle interface de commutation tu parles ?
ce qui enclenche le ventilateur n'est pas directement la mise au niveau haut ou bas de la sortie de l'arduino , mais en générale la mise en conduction ou l'arret d'un transistor relier apres la sortie de l'arduino , et dans ce cas on peut, en fonction de la conception de ce systeme de comutation metre en marche soit par un niveau haut de la sortie de l'arduino( mais ça pompe sur la sortie ) soit par le niveau bas au quel cas la sortie est a la masse . c'est comme ça que fonctione les carte a 8 relais que l'on trouve sur ebay par exemple.
Quelle serait l'alimentation extérieure la plus adaptée (entre 7 et 12V) ? Cela influe t'il sur la durée de vie de la carte ?
donc pas le choix il te faut une alime externe de 12V pour le ventilateur
pour le DTH le 5V sur la carte arduino
pour le MG811 le 5V sur la carte arduino ( si c'est pour allimenter le circuit de mesure pas pas le systeme de chauffage du capteur)
pour le chauffage du capteur C02 , le 12V de l'alime
pour la carte arduino , le 12V de l'alime ( atention le regulateur de tension qui est sur la carte peut chaufait et planter le systeme en decendant a 9V il ne devrai pas trops faire des siene)
si j'ai bien compris tu as des LED aussi l'alime que tu evoque ne fait que 1 ampere en sortie est ce que ça va sufire ?
regarde du coté des meanweel type industriel 12V, 25W ou 50W qui debite plus et sont de tres bonne alime a decoupage
sur le ventilateur Rouge =+, noir=Masse, Jaune = conptetoure( il me semble).
apres pour dedouble des fil faudra metre les main dans le cambouis , domino , waggo , épisure bref va faloir dedoublé , et tands que tu n'arrive pas a la limite que debite l'alimentation ( en A) pas de probléme , attention toutefois au probléme de mise en route l'ors de l'alumage du ventilateur.( ne pas prendre une alime trop faible ou alors lui ajouter un condo pour pas quel s'ecrase de trop.
J'ai du mal à appréhender comment choisir la bonne alim. Quel paramètre je dois regarder dans la datasheet des capteurs pour savoir ce qu'ils requièrent en A ?
Les LED sont réliées au secteur (220V) donc je pense que la carte doit simplement alimenter le signal PWM qui servira ensuite à régler l'intensité des LED non ?
en general les capteur sont pas de gros demandeur et passe largement sur l'alime 5V que fourni la carte arduino ,
pour bien choisir ton allime il faut que tu regarde la tension dons tes systemes on besoin, puis que tu regarde combien il consome de courrant en fonctionement ( sur le capteur c02 c'est le IH environs 200mA qui est le plus important) . apres pour tout les apareils qui contienne des bobines ( example moteur, relais ) il faut faire attention car il sont consomateur d'un plus fort courant au demarage ou a chaque enclanchement.
il te suffi ensuite de prendre un peut plus que la somme de tout ces apareil en fonctionement simultané!
pour les led ok je n'avais pas fait attention qu'il y avais un driver commandable par PWM! donc RAS coté LED
desacant:
Et concernant le choix du transistor pour le ventilateur comment je dois le choisir (fonctions de quels paramètres) ?
A priori je dirais (à la réserve près que je ne connais pas le ventilateur) :
Courant max = 2 à 3 fois celui du ventilateur --> les moteurs ont un appel de courant au démarage, une fois démarrés ils consomme moins.
Tension max entre le Collecteur/Drain et l'Emetteur/Source que peut supporter le transistor quand il est à l'état bloqué -> pas moins de 60 V, si 100V disponible ne pas hésiter: il faut toujours prendre des marges à cause des sur-tensions dans les bobinages des moteur quand il s'arrètent, même avec la diode de roue libre indispensable.
Paramètre VCE0 pour un bipolaire ou VDS0 pour un MosFet
Si c'est un bipolaire ne pas dépasser 10 mA dans la base au delà prendre un assemblage Darlington.
Si c'est un MossFet prendre un Vgs threshold de 2 V maximum sinon il ne sera pas saturé avec 5 V sur sa gate.
Après je ne comprends pas les termes " Collecteur/Drain et l'Emetteur/Source" donc j'ai du mal à comprendre tes explications désolé si tu peux me donner plus de précision maintenant que tu connais le type de ventilateur cela me serait très utile ! Merci.
desacant:
Donc en 12V et 0.6 A.
Après je ne comprends pas les termes " Collecteur/Drain et l'Emetteur/Source"
C'est bien dommage car si tu veux te servir d'un transistor il va falloir faire un effort personnel de documentation.
En hyper réducteur dans ton cas tu va utiliser le transistor comme un interrupteur.
Le courant va passer par 2 pattes et le 3ème servira de commande.
Ces pattes ont un nom qui pour éviter les confusions dépend du type de transistor.
Toujours en hyper réducteur, mais suffisant pour ton application tu pourra utiliser deux type de transistors :
type bipolaire NPN il existe aussi en PNP --> ne sert à rien dans ton appli
type MosFet canal N il existe aussi en canal P --> ne sert à rien dans ton appli
Avec un bipolaire il faut mettre une résistance en série avec la commande --> voir les inombrables tuto pour la calculer.
Avec un MosFet en théorie il n'y a pas besoin de résistance, en pratique on met toujours une résistance d'environ 10kohms entre la commande et la masse.
Les noms :
Type Commande Accès - Accès +
Bipolaire Base Emetteur Collecteur
xFet Gate Source Drain
Courant que doit accepter le transistor:
Un ventillateur c'est un moteur.
Un moteur à deux valeurs de courant : au démarage et quand il tourne .
Seul le courant moteur tournant est donné, au démarrage le courant peut être beaucoup plus élevé.
Donc pour 0,6A tournant je prendrai un transistor qui supporte au minimum 2 à 5 A pour être tranquille.
Attention à ne pas oublier la diode en parallèle sur le moteur, dite diode de roue libre : si tu l'oublie tu peux dire adieu au transistor.
La mode est au MosFet. Le paramètre important est le "Vgd threshold". Ce terme te parait du charabia je le nommerai en français : "tension de pincement".
Imagine un tuyau arrosage complètement pincé --> l'eau ne coule plus.
Tire un peu sur les flancs pour ouvrir le tuyau et quelques gouttes vont commencer à couler --> c'est la tension de pincement.
Ouvre complètement le tuyau : l'eau coule à flot.
Tu imagine la suite : la tension de pincement correspond au déblocage du transistor le courant n'est que de quelques µA ou mA. Pour obtenir plusieurs centaines de mA ou plusieurs ampères il faut mettre une tension beaucoup plus élevée.
Comme tu ne dispose que de 5V en sortie du microcontroleur il faut choisir un MosFet avec un "Vgs threshold" au pire égal à 2V pour pouvoir saturer le transistor avec 5V.
Pour la référence tout dépend de tes sources d'approvisionnement.
J'ai fait une recherche sur Farnell avec ces paramétres : Mosfet : canal N, Courant de drain Id entre 2.5 et 5A, Tension de seuil Vgs au max 2V. Et j'obtiens 221 résultats ! A part le critère du prix, dois-je faire attention en particulier à un des autres paramètres proposés ?
Il y a notamment la tension Vds max, la tension mesure Rds et la résistance (surement pas importante si l'on ajoute une 10k entre la commande et la masse non?)
J'ai fait une recherche sur Farnell avec ces paramétres : Mosfet : canal N, Courant de drain Id entre 2.5 et 5A, Tension de seuil Vgs au max 2V. Et j'obtiens 221 résultats ! A part le critère du prix, dois-je faire attention en particulier à un des autres paramètres proposés ?
Il y a notamment la tension Vds max, la tension mesure Rds et la résistance (surement pas importante si l'on ajoute une 10k entre la commande et la masse non?)
bonjour
Regarde du coté des mosfet N logic
privilegie un boitier T-220