Faites-le vous même!
SOUTENEZ-NOUS! Déjà 28 personnes nous ont soutenu. Nous vous en sommes très reconnaissants. |
RETROUVEZ NOUS SUR: |
High-Tech
5 à 6 Heures.
On doit réaliser 4 circuits régulateurs variables basés sur 4 LM317 qui produisent du 1.7V. Via l'arduino, on enverra ou non de la tension dans les piles via le pin D13. on pourra lire la tension aux bornes des piles via les entrées analogiques A0 à A3 du NANO. et on pourra piloter 4 Duoled via les Pins D4 à D11. La carte pourra être alimentée en 7-12V.
Côté "porte piles", on raccorde le moins des piles au GND et chacune des 4 autres sorties du connecteur 5 points à une pile.
J'ai exporté deux types de fichiers Gerber:
Version complète pour fabrication Pro (Exemple: OSHPARK).
Version Light pour fabrication artisanale avec juste top et bottom copper.
Le programme est très simple; on teste la pile, on stocke les états des leds de status dans des tableaux, on lit ces tableau et active les leds nécessaires, on lance une charge, on affiche les tensions sur le port serie, on fait une pause, on affiche les tensions à vide sur le port série après avoir désactivé les Leds... On boucle...
Télécharger le programme Arduino (.ino)
float COEFFICIEN_VOLTS = 231.3529;
float TEMPS_CHARGE = 120;
float TEMPS_PAUSE = 5;
float TENSION_CONSIGNE = 1.60;
float TENSION_PILE_HS = 1.25;
int LED_ERREUR_PILE[] = {4,6,8,10};
int LED_CHARGE_PILE[] = {5,7,9,11};
int PIN_READ[]={3,2,1,0};
boolean CHARGE_OK[]={false,false,false,false};
boolean CHARGE_KO[]={false,false,false,false};
int PULSE_CHARGE = 13;
void setup() {
Serial.begin(9600);
//Pin d'impulsion de Charge
pinMode(13, OUTPUT);
//Pins de Charge 4,6,8,10
//Pins de défaut 5,7,9,11
for (int i = 4; i <=11; i++)
{pinMode(i, OUTPUT);}
}
//Fonction de lecture des Tensions
float TENSION_PILE_CHARGEUR(int pin)
{float value = 0.0; value = analogRead(pin); return value / COEFFICIEN_VOLTS;}
void loop() {
//------------ DEBUT DE TEST DES TENSIONS DES PILES ------------
for (int i = 0; i < 4; i++)
{
//Si la tension mesurée est inférieure à la limite PILE HS alors allumage des d'erreur.
if (TENSION_PILE_CHARGEUR(PIN_READ[i]) < TENSION_PILE_HS)
{CHARGE_KO[i]=true;} else {CHARGE_KO[i]=false;}
//Si la tension mesurée est inférieure à la consigne alors allumage des voyants de charge sinon Arrêt voyant de charge.
if (TENSION_PILE_CHARGEUR(PIN_READ[i]) < TENSION_CONSIGNE) {CHARGE_OK[i]=true;} else {CHARGE_OK[i]=false;}
}
for (int i = 0; i < 4; i++)
{
// Si il y a une erreur alors on allume la LED associée sinon on l'éteint.
if (CHARGE_KO[i]==true) {digitalWrite(LED_ERREUR_PILE[i],HIGH);}else {digitalWrite(LED_ERREUR_PILE[i],LOW);}
// Si pas d'erreur, allume le voyant de charge.
if (CHARGE_OK[i]==true) {digitalWrite(LED_CHARGE_PILE[i], HIGH);}
// Si pas d'erreur mais charge désactivée (Car pile chargée) on éteint les leds.
if (CHARGE_OK[i]==false and CHARGE_KO[i]==false) {digitalWrite(LED_CHARGE_PILE[i], LOW);}
}
//---------------- MISE EN ROUTE DE LA CHARGE ----------------
//Ecriture Serial Début de charge
Serial.println("Debut de charge de " + String(TEMPS_CHARGE) + " Secondes");
//Début de Charge
digitalWrite(PULSE_CHARGE, HIGH);
//Délai de charge
delay(TEMPS_CHARGE * 1000 - 500);
//Ecriture des tensions en fin de cycle charge:
Serial.print("Tensions de fin de charge:\n");
for (int i=0;i<4;i++){Serial.print(String(TENSION_PILE_CHARGEUR(PIN_READ[i]), 3) + "v ");}
Serial.print("\n");
//-------------------- ARRET DE LA CHARGE --------------------
//RESET des Leds
for (int i = 3; i >= 0; i--) {digitalWrite(LED_CHARGE_PILE[i], LOW);}
//Arrêt de la charge
digitalWrite(PULSE_CHARGE, LOW);
//Ecriture Serial Début de pause
Serial.println("Pause de " + String(TEMPS_PAUSE) + " Secondes");
//Pause de charge
delay(TEMPS_PAUSE * 1000 - 500);
//Ecriture des tensions à vide
Serial.print("Tensions a vide:\n");
for (int i=0;i<4;i++){Serial.print(String(TENSION_PILE_CHARGEUR(PIN_READ[i]), 3) + "v ");}
Serial.print("\n\n");
}
Au début du cycle de charge, le programme effectue une vérification de l'état des piles insérées... Si la tension mesurée est inférieure à 1.25V (Pas de pile ou pile HS), alors la led rouge associée est allumée. Si la tension mesurée est inférieure à la tension de consigne, alors on allume la led de charge. Si la pile est chargée les led rouge et bleue sont éteintes. La pile continue à recevoir une tension de charge tant qu'elle est dans le chargeur...
|
|
Thomas le 2020-05-11 14:00:54
Pouvez-vous confirmer la liste des composants, elle n'est pas en phase avec le schéma (valeur des résistances, absence des transistors...) ?
Crazymakers le 2020-01-12 12:08:05
C'est réparé ;)
Stéphane LB le 2020-01-11 11:17:01
Bonjour,
Merci pour beau projet.
Mais serait-il possible d'avoir accès aux fichiers. Les liens ne marchent plus.
oufbuzz le 2019-12-09 12:46:28
Merci pour votre travail, mais il est impossible de profiter de cette bonne idée. Impossible de récupérer ou de voir le schéma. Quand au programme et les fichiers Gerber, il n'y a aussi rien à faire ou à voir.
Comment faire pour récupérer ces précieux documents? Tous les liens sont morts.
Merci de votre réponse.
Crazymakers le 2019-09-08 21:11:28
Même les fichiers Gerber sont fournis sur la page!
Newsletter (Lettre d'information)Recevez nos lettres d'information dans votre boite mail. |