Etape 4: Intégration de l’Arduino (chargement de la batterie)
Comme mentionné précédemment, pour notre régulateur de charge commencer à charger la batterie, le bouton de démarrage doit être maintenu enfoncée pendant trois secondes. Il s’agit d’un souci d’avoir à expliquer à un utilisateur aléatoire et il faut aussi le régulateur de charge et tous ses boutons extrinsèques (que nous avions des gens plutôt aléatoires ne plaisante ne pas avec) être accessibles à l’utilisateur. Au lieu de cela, nous aimerions que l’Arduino pour appuyer sur start une fois que l’utilisateur a commencé à pédaler. Il faut pirater le régulateur de charge.
Le régulateur de Charge de piratage :
Le régulateur de charge est en grande partie une boîte noire ; Il accueille une fin positive et négative du générateur DC et fournit un courant et de tension limitée sortie à l’autre extrémité à la batterie. Entre les deux, tout est au-delà de la portée de ce Instructable et est laissé seul. Cependant, après la prise du boîtier sur le contrôleur de charge, c’était évident de fée comment l’interface bouton travaillé. Les quatre boutons relié à un ruban de cinq fils. Lorsqu’une touche a été pressée il connecté le fil correspondant dans le ruban pour le cinquième fils de « référence ». Décidant qu’il était plus facile à manipuler sans le cas que nous avons pris le ruban d’où celui-ci connecté sur la maquette et souder les fils à ces connexions, les fixer à notre bouclier avec un connecteur molex. Nous avons utilisé quatre boutons pour recréer les boutons du contrôleur de charge, juste au cas où nous avons eu d’apporter des modifications dans les paramètres, si nous devions et d’appuyer sur « Start » jusqu'à ce que nous avons eu l’Arduino accroché.
IMPORTANT : Si, comme nous, vous décidez de quitter votre régulateur de charge piraté hors de son boîtier, n’oubliez pas de lui fournir un bon dissipateur de chaleur. Notre cas contrôleur de charge doublé comme un dissipateur de chaleur, et lorsque nous avons pris cela de suite, il a pu surchauffer après vélo intense.
Appuye sur Start :
Le défi sera alors de l’Arduino pour appuyer sur un bouton. Évidemment, elle ne peut en fait utiliser un bouton mécanique, donc nous avons utilisé un relais. Un relais plus ou moins se compose d’un inducteur à travers deux broches et un commutateur à travers deux autres. Lorsqu’une tension est appliquée dans l’ensemble de l’inducteur, il ferme l’interrupteur reliant les deux autres broches comme si c’était un bouton poussé. Si nous nous connectons une broche sur le fil du début et l’autre au fil de référence, nous pouvons avoir l’Arduino en une tension de sortie à travers les deux autres broches du relais pendant trois secondes à la demande, donc « en appuyant sur » Démarrer chaque fois que nous le demandons à. Bien que certains relais ont des diodes intégrés, nous avons décidé de mettre une précaution entre les broches d’induction du relais à éviter d’essayer actuel s’écouler dans les broches de l’Arduino, lorsqu’il a été défini sur faible.
Mesure de la batterie et la tension du moteur :
Cela soulève la question, quand nous voulons avoir l’Arduino Appuyez sur start ? Évidemment, nous voudrions l’Arduino pour appuyer sur start seulement lorsque quelqu'un a pédaler, sinon le régulateur de charge ne serait pas sur de commencer en premier lieu. Si le contrôleur de charge ne doit pas sciemment surcharger la batterie, nous ne tenons pas tenter en demandant à plusieurs reprises charger la batterie quand elle était pleine. Cela nécessite l’Arduino pour garder une trace de la tension produite par le générateur et la batterie. Nous tenons au fil de celles-ci jusqu'à les entrées analogiques de notre Arduino, cependant, ils aiment seulement de lire dans les tensions comprises entre 0 et 5V, tandis que la batterie va afficher n’importe où de 11-14V et le générateur va afficher n’importe où entre 0 à 24V. Pour marcher en bas de chacun de ces tensions, nous utilisons des diviseurs de tension. Dans le cas de la batterie, nous utilisons un diviseur de tension avec la première résistance étant 1 kOhms et le second (relié à la terre) soit 2,2 kohms. Si la tension maximale de la batterie est de 14V, la tension maximale aux bornes de la résistance deuxième, qui nous permettra de mesurer est environ 4.4V (pour plus d’informations sur comment les travaux de diviseurs de tension et les maths derrière eux, Découvrez la page Wikipedia). Nous avons utilisé des résistances de 1 k ohm et 4,7 kOhms respectivement pour le diviseur de tension connecté au générateur. Pour une tension génératrice 24V l’Arduino liraient 4.2V. Quelques calculs simples dans le code de l’Arduino peut facilement convertir ces mesures en valeurs réelles. Évidemment, la tension de la batterie doit être inférieure à 14V ou vous risquez de surcharger la batterie. Les conditions pour le générateur sont plus souples. Tant que l’utilisateur fournit suffisamment de tension pour le régulateur de charge mettre en marche, le régulateur de charge peut recharger la batterie. Nous utilisons > 5V du générateur et < 14V que nos conditions de la batterie.
Alimenter l’Arduino :
L’Arduino doit évidemment être alimenté si elle veut « enfoncer » les boutons (ou faire quoi que ce soit vraiment). Il est déraisonnable d’avoir constamment branché sur un ordinateur. Aussi, nous ne voulions d’utiliser une batterie de 9V, parce que nous ne voulions pas avoir à le remplacer s’il est décédé. Nous avons décidé d’utiliser la batterie 12V pour alimenter l’Arduino directement par l’intermédiaire de la prise d’alimentation. Bien que cela devrait être en mesure de prendre à 12V, nous avons décidé que c’était plus sûr d’utiliser un régulateur 5V entre la batterie et l’Arduino. (Ce 5V pourrait également servir comme une source de tension pour les autres appareils électroniques de notre circuit Si nous voulions éviter les broches 5V de l’Arduino). Puis, nous avons pris un des packs de batterie, coupant la batterie réel et branchement des fils sur la sortie 5V du régulateur et au sol. Régulateurs peuvent devenir chaudes, il est donc important de mettre un dissipateur de chaleur à ce sujet.
Exemple de Code :
code complet à la fin de ce Instructable
moteur int = A0 ; moteur/générateur code pin sur l’Arduino
int batt = A1 ; Goupille de batterie 12V
int cc = 8 ; goupille de contrôleur de charge
int wait = 500 ; délai en millisecondes
float afactor = 1023.0 ; Analogique de Arduino lire valeur max
flotteur motorV, BattV usagées ; tension du moteur et la tension de la batterie
hasBeenOn booléen = false ; se rappeler si le régulateur de charge est allumé
void setup() {}
pinMode (moteur, entrée) ;
pinMode (batt, entrée) ;
pinMode (cc, sortie) ;
}
void loop() {}
motorV = getmotorV() ; motovr/tension
Si (motorV > 1.0 & &! hasBeenOn) {//if notre moteur à courant continu donne plus que 1V, nous dire que c’est
digitalWrite (cc haute) ; la broche de cc est connectée à un relais
qui agit comme le bouton « Start » pour le contrôleur de charge
Delay(3500) ; notre régulateur de charge nécessite le bouton de démarrage qui se tiendra pendant 3 secondes
digitalWrite (cc faible) ; électriquement relâcher le bouton de démarrage
hasBeenOn = true ; le régulateur de charge devrait être charger la batterie maintenant
Delay(Wait) ; Nous voulons que notre Arduino pour attendre afin de ne pas vérifier chaque quelques millisecondes
}
ElseIf (motorV > 1.0 & & hasBeenOn) {}
Delay(Wait) ; encore une fois, nous ne voulons pas l’Arduino pour vérifier chaque quelques millisecondes
}
else {}
hasBeenOn = false ; la personne est le vélo n’est plus
}
}
Nous avons écrit des fonctions distinctes afin que nous puissions organiser notre code
flotteur getmotorV() {}
retour (flotteur (analogRead(motor)) / afactor * 5.0) ; le moteur donne dehors sur un max de 5V
}
flotteur getbattV() {}
retour (float(analogRead(batt)) / afactor * 14,0) ; la batterie est techniquement ~ 13, 5V
}