Bonjour à tous.
Je suis tout nouveau dans le monde d'arduino et j'ai quelques bases en C. Bref...
J'avai pour "mini-Projet" de faire un système qui, à l'aide d'un DHT11, activerait une des 3 led (vert, jaune ou rouge) et ferait bipper un buzzer en fonction de la température. Seulement, les 3 leds clignotent (signe d'une mauvaise mesure du DHT11).
Code :
//inclusion des librairies
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN,DHTTYPE);
//Déclaration des variables
int ledVerte = 1, ledJaune = 2, ledRouge = 3, buzzer = 5;
char led;
//Déclaration des fonctions
void eteindre();
void setup() {
//Put your setup code here, to run once:
pinMode(ledVerte, OUTPUT);
pinMode(ledJaune, OUTPUT);
pinMode(ledRouge, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(8, INPUT_PULLUP) ;
dht.begin();
}
void loop() {
//Put your main code here, to run repeatedly:
float temperature = dht.readTemperature() ;
if(temperature <= 16)
{
if(led == 'V')
{
tone(5, 550, 10);
delay(2000);
}
else
{
eteindre();
led = 'V' ;
digitalWrite(ledVerte, HIGH);
}
}
//Si 16 < Temperature <= 20
if(temperature > 16 && temperature <= 20)
{
if(led == 'J')
{
delay(2000);
}
else
{
eteindre();
led = 'J' ;
digitalWrite(ledJaune, HIGH);
}
}
if(temperature > 20)
{
if(led == 'R')
{
tone(buzzer, 550, 10);
delay(2000);
}
else
{
eteindre();
led = 'R';
digitalWrite(ledRouge, HIGH);
}
}
if(isnan(temperature))
{
if(led == 'P')
{
tone(buzzer, 550, 10);
delay(500);
}
else
{
eteindre();
led = 'P';
digitalWrite(ledVerte, HIGH);
digitalWrite(ledJaune, HIGH);
digitalWrite(ledRouge, HIGH);
}
}
}
void eteindre()
{
digitalWrite(ledVerte, LOW);
digitalWrite(ledJaune, LOW);
digitalWrite(ledRouge, LOW);
}
Merci pour votre temps consacré a mon probleme
Je laisse le code source en piece jointe !
Temperature.ino (1.72 KB)