Moduler la puissance envoyée à une batterie électrique
salut
je commande via un relais une batterie électrique de 1200w pour préchauffer l'air avant l'échangeur de vmc pour qu'il ne gèle pas par les -15° actuels.
actuellement, je réchauffe tant que la température de l'air n'est pas égale à 0°. je fais ça avec une condition if et ça marche bien, mais j'ai des cycles de chauffe de 30 secondes lorsqu'il fait très froid.
du coup, je pense que l'alternance très chaud/froid peut endommager ma batterie et j'envisage de faire des cycles de chauffe de 5 secondes, quitte à en faire plus fréquemment, pour que la résistance électrique soit toujours un peu chaude mais n'alterne pas les phases extrêmes.
j'ai rédigé un script (simplifié et purgé des éléments annexes). si vous pouviez y jeter un coup d'oeil et me dire s'il fonctionne ?
- je ne voudrais pas tomber dans des conditions où ma batterie s'allume tout le temps. comme c'est la première fois que j'utilise millis()...
- j'ai un problème avec la variable batteriestate, je n'ai pas trouvé où ça coince ("" ou variable mal déclarée ?)
- j'ai bien commenté mon code et j'y pose même des questions :-)
merci pour la relecture.
je commande via un relais une batterie électrique de 1200w pour préchauffer l'air avant l'échangeur de vmc pour qu'il ne gèle pas par les -15° actuels.
actuellement, je réchauffe tant que la température de l'air n'est pas égale à 0°. je fais ça avec une condition if et ça marche bien, mais j'ai des cycles de chauffe de 30 secondes lorsqu'il fait très froid.
du coup, je pense que l'alternance très chaud/froid peut endommager ma batterie et j'envisage de faire des cycles de chauffe de 5 secondes, quitte à en faire plus fréquemment, pour que la résistance électrique soit toujours un peu chaude mais n'alterne pas les phases extrêmes.
j'ai rédigé un script (simplifié et purgé des éléments annexes). si vous pouviez y jeter un coup d'oeil et me dire s'il fonctionne ?
- je ne voudrais pas tomber dans des conditions où ma batterie s'allume tout le temps. comme c'est la première fois que j'utilise millis()...
- j'ai un problème avec la variable batteriestate, je n'ai pas trouvé où ça coince ("" ou variable mal déclarée ?)
- j'ai bien commenté mon code et j'y pose même des questions :-)
merci pour la relecture.
code: [select]
unsigned long timebatterie;
char batteriestate;
void setup()
{
#define relaisbatt 6
pinmode(relaisbatt, output);
digitalwrite(relaisbatt, high); // j'éteinds la batterie
//je pense que je peux le déclarer ici pour l'état initial, avant de lancer le script, non ?
//je vous passe la déclaration des sondes de temp.
//déclaration de la variable batteriestate
batteriestate = 'eteinte';
}
void loop() {
if (airvmc <0)
{
switch (batteriestate){
case batteriestate == 'active' : //si l'état de la batterie est à allumée, on vérifie le temps d'allumage
if (millis() - timebatterie > 5000) // s'il s'est déroulé plus de 5 secondes
{
digitalwrite(relaisbatt, high); // j'éteinds la batterie
batteriestate = 'eteinte';
//j'attend deux secondes avant de continuer le script
delay(2000); //on met en pause pendant deux secondes
}
break;
case batteriestate == 'eteinte' : //si l'état de la batterie est à éteinte, on l'allume
digitalwrite(relaisbatt, low); //j'allume la batterie
batteriestate = 'active';
timebatterie= millis(); //on stocke le moment d'allumage de la batterie
break;
}
}
else
{
//ventilation normale.
}
}
hello
avec ton prg incomplet, il est difficile de te dire que tout est ok
par exemple:
avec ton delai de 2000 tu chaufferas au moins 6 secondes et non 5
ensuite si le température = -1, tu chauffes et 3 secondes après elle est à +1.
mais là, tu ne passe plus dans ta condition if t<0
donc la batterie reste en chauffe.
à moins que tu e traite ça dans le else...
donc prg complet si tu veux des avis fiables
avec ton prg incomplet, il est difficile de te dire que tout est ok
par exemple:
avec ton delai de 2000 tu chaufferas au moins 6 secondes et non 5
ensuite si le température = -1, tu chauffes et 3 secondes après elle est à +1.
mais là, tu ne passe plus dans ta condition if t<0
donc la batterie reste en chauffe.
à moins que tu e traite ça dans le else...
donc prg complet si tu veux des avis fiables
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Moduler la puissance envoyée à une batterie électrique
arduino
Comments
Post a Comment