bonjour je suis en terminale sti2d et j'ai un projet à faire.Mon projet est de faire tourner un ventilateur sur 3 vitesses avec 3 boutons poussoirs et à chaque vitesse une led s'allume(il y a 4 led en tout, 3 pour les vitesses et une pour le mode automatique) ou avec un mode automatique où quand j'appuie sur le bouton poussoir destiné au mode automatique le ventilateur se règle par rapport à la température,l'humidité et la luminosité.Mais je n'arrive pas à changer la vitesse du ventilateur, il reste toujours sur une vitesse et les leds spécifiées pour chaque vitesse ne changent pas non plus.
voici mon programme à part que j'ai remplacé la température par la luminosité:
int VENTILO = A0;
#include "DHT.h"
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
const int ledauto = 6;
const int LDR = A2;
int pourcent = 0;
int valeur = 0;
int etatldr;
int DHTPIN = A1;//DHT11 connecté à la broche A0
const int BPA = 5;
int etatbpa = 0;
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600);// définie la vitesse d'horloge
pinMode(LDR, INPUT);
pinMode(BPA, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(ledauto, OUTPUT);
pinMode(VENTILO, OUTPUT);
dht.begin();
}
void loop()
{
// put your main code here, to run repeatedly:
float h = dht.readHumidity();//lit la valeur du capteur d'humidité
float t = dht.readTemperature();//lit la valeur du capteur de température
etatldr = analogRead(LDR);
etatbpa = digitalRead(BPA);
Serial.print("Analog reading = ");
Serial.print(etatldr);//afficher les informations de la LDR
Serial.println("temp: ");//afficher le texte
Serial.println(t);//afficher les informations du capteur de température
Serial.println("hum: ");//afficher le texte
Serial.println(h);//afficher les informations du capteur d'humidité
if(etatbpa == LOW)
{
digitalWrite(ledauto, HIGH);
if ( etatldr < 35) // intervalle 0 22 eclus
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
pourcent = 0;
valeur = (pourcent255)/100;
analogWrite(VENTILO, valeur);
}
else // >=22
{
if ( etatldr < 100)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
pourcent = 33;
valeur = (pourcent255)/100;
analogWrite(VENTILO, valeur);
}
else
{
if ( etatldr < 150)
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
pourcent = 66;
valeur = (pourcent255)/100;
analogWrite(VENTILO, valeur);
}
else
{
if ( etatldr < 270)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
pourcent = 100;
valeur = (pourcent255)/100;
analogWrite(VENTILO, valeur);
}
}
}
}
}
}