Modifications

Aller à : navigation, rechercher

Controleur de Lumière

6 622 octets ajoutés, 15 octobre 2014 à 13:46
Fichiers finaux
{{Projet
|status= Prototype|image=Light.control.soldered.board.jpg|description=Une centrale de phares clignotants pour velo ou velomobile|license=CC-by-sa-3.0|contributeurs=Cedric|ingrédients=electronique
|name=Contrôleur de lumière
|description=Une centrale de phares clignotants pour velomobile
|license= CC-by-sa-3.0|Creative Commons Attribution CC-by-sa-3.0 France
 
|contributeurs=Cedric
|materiaux=electronique
}}
 
 
==Résumé==
==Fabrication==
après Lors de la gravure, comme j'étais incertain de l'horizontalité du plan de travail, j'ai réglé dans fabmodules une gravure sans soucis avec profondeur légèrement plus importante que la normale : 0.12mm au lieu de 0.1 [[Image:Light.control.milled.board.jpg|400px]] On voit la différence car les inter-pistes sont beaucoup plus creux, alors les pistes et les motifs fins sont plus fragiles : c'est notamment flagrant pour le texte, mais il faudra se méfier lors de la modelasoudure, car les pistes fines pourront avoir tendance à se décoller. [[Image:Light.control.soldered.board.jpg|400px]] Bien que je m'améliore à chaque fois, je pense que j'ai soudé les composantsencore quelques progrès à faire en soudure ;) Les borniers à vis, traversants, sont soudés au dos du circuit.  
J'ai utilisé le petit code ci-dessous pour tester le circuit : j'ai dut m'y reprendre à plusieurs fois pour corriger toutes les petites erreurs de soudure.
==Code==
Je vais coder en C, en partant de l'exemple des exemples [http://academy.cba.mit.edu/classes/output_devices/video/hello.video.44.c helloindex.videohtml du cours du jour] car j'ai le même tiny avec l'horloge interne
===fonctionnement désiré===
===le code===
PA1 utilisera un PWM pour régler l'intensité des phares
====Premier test====
Pour valider le circuit
Finalement, j'ai mis une pile 9V et ça fonctionne bien
====interruptions====
Les clignotants...clignoteront, donc, ça serai judicieux d'utiliser des interruptions pour détecter les changements des boutons même pendant le delay de clignotement.
</code>
====pwm====
pour régler l'intensité des lumières je compte utiliser du PWM
Lensemble du code final est téléchargeable ici : [[Fichier:Light.control.44.c.zip]]
 
==Essais==
 
 
on programme le tiny en tapant
make -f Light.control.44.make program-usbtiny
 
 
===à vide===
Comme j'ai mis des leds témoin sur le circuit, j'ai put coder tout le programme sans mettre de charge sur les mosfets.
 
j'avais également monté un petit tableau de bord de fortune pour câbler des interrupteurs.
 
Le comportement est complètement conforme à mes attentes :
 
* chaque appui sur le bouton poussoir des phares change de mode d'éclairage : OFF / LOW / HIGH
 
* Les clignotants s'allument et s'éteignent sans (pratiquement) interférer avec le phare
 
 
 
===en charge===
 
[[Image:Light.control.working.board.jpg|600px]]
 
j'ai câblé un petit ruban de led 12V pour tester. Il est un peu sous alimenté, mais ça fera l'affaire pour le moment.
 
Le mosfet des phares fonctionne bien
 
Hélas, lorsque j'active un des clignotants, cela ne fonctionne plus.
 
En testant les mosfets des clignotants, je m'aperçoi qu'ils ne fonctionnent pas. Il doit y avoir un problème de soudure mais je ne suis pas au lab. Je devrais corriger ça plus tard.
 
===Diagnostic (temporaire)===
 
* les mosfets des clignotants sont à revoir
* peut-être que la charge cumulée des leds indicateurs fait chuter la tension du régulateur qui est un peu limite : il serait bien
** de changer le régulateur par un plus puissant
** de mettre des résistances plus fortes sur les leds indicateurs
 
ou bien mon circuit d'indication perturbe le déclenchement du mosfet, il faudrait alors mettre les leds indicateurs en aval du mosfet (avec des résistances dimensionnées pour la tension d'alimentation)
 
==Version 2==
 
je modifie le circuit pour trois raisons :
 
* installer un régulateur plus puissant
* élargir les pistes de puissance
* ajouter un capteur de lumière pour piloter les phares
 
===régulateur de tension===
Le nouveau régulateur peut fournir jusqu'à 1 Ampère : http://fr.rs-online.com/web/p/regulateurs-de-tension-a-faible-chute-ldo/7615618/
[http://docs-europe.electrocomponents.com/webdocs/10fa/0900766b810fa44b.pdf datasheet:LM2940IMP]
 
Tension d'entrée maxi : 24V
protection contre les cablages inversés
 
vu la puissance, je peux envisager d'alimenter les lampes avec
 
Par contre, il apparait qu'il faut un condensateur de lissage d'au moins 22uF : absent du fabinventory
 
J'ai heureusement trouvé des condensateurs 47uF dans l'atelier...
 
J'ai du créer un objet dans fabModules :
 
<code lang="python">class C_5mm(part):
class C_5mm(part):
#
# 5mm capacitor
#
#
def __init__(self,value=''):
self.value = value
self.labels = []
self.pad = [point(0,0,0)]
#self.shape = rectangle(-.02,.02,-.11,-.019)
self.shape = cube(-.02,.02,-.11,-.019, 0,0)
self.pad.append(point(0,0.05,0))
self.labels.append(self.text(self.pad[1].x,self.pad[1].y,self.pad[1].z,'-'))
self.shape = add(self.shape,cube(-.02,.02,.019,.11,0,0))
self.pad.append(point(.0,-.05,0))
self.labels.append(self.text(self.pad[2].x,self.pad[2].y,self.pad[2].z,'+'))</code>
 
à noter que j'ai découvert une particularité du code : pour faire des traces qui ne dessinent pas aussi des trous, il faut utiliser des primitives de volume (cube, cylinder...), les formes plates (square,circle) provoquant des trous.
 
===Le circuit principal===
 
j'ai repris le même schéma en élargissant les pistes de puissance.
 
J'ai créé une dérivation pour avoir le choix d'alimenter les lampes soit en 5V régulé, soit avec l'alimentation principale (6 à 12V)
 
[[image:Light.central.v2.44.board.png|300px]][[image:Light.central.v2.44.cut.png|300px]][[image:Light.central.v2.44.traces.png|300px]]
 
les fichiers sont en 72pixels/mm
 
*R2,R3,R4 = 100k
 
===Le capteur de lumière===
 
en alternative au bouton, j'ai produit un détecteur de lumière pour actionner les phares directement quand la lumière ambiante baisse.
 
[[image:Light.Detector.board.png|100px]]
[[image:Light.Detector.cut.png|100px]]
[[image:Light.Detector.traces.png|100px]]
 
le capteur est un Optek OP580 (phototransistor)
 
 
 
Work in progress : [[Media:Lumvelo.zip]]
 
 
===Fabrication===
 
====Fraisage====
 
Le circuit est réalisé en fraisage avec la Modela MDX20
 
====Soudure des composants====
 
[[image:Lumvelo.soude.jpg|600px]]
 
====Cablage====
 
Le circuit a deux ou trois options de cablage :
* on peut choisir la tension d'alimentation des lumières
* on peut éventuellement cabler le capteur de lumière avec les interupteurs (du code doit être écrit)
 
[[image:LightControl.wiring.png|600px]]
 
===Tests===
 
sans charge, ça fonctionne bien
 
mais lorsqu'on câble des leds derrière les mosfets, ça fait des trucs bizarres
 
Avec Laurent, j'ai découvert que même sans charge, l'alim perd 1 V quand on actionne les inter de clignotants : ça fait beaucoup alors je check mon code
 
Je pense que les entrées en pullup fonctionnent bizarrement.
 
 
Je vérifie la mise en oeuvre des résistances pullup http://www.micahcarrick.com/avr-tutorial-switch-debounce.html
 
 
 
===Debuggage===
 
Avec l'aide de Laurent, j'ai réussi à isoler le problème :
 
En voulant configurer mes entrées numériques en "pullup", je les ai configurées en sortie, donc lorsqu'on actionnai un interrupteur, elles tentaient de fournir un maximum de courant (car étant reliées à la masse, elle provoquaient un court circuit).
 
J'ai donc changé le code :
 
<code lang=C>
// initialise button pins pullup
//
set(button_port,LeftBton_pin);
set(button_port,RightBton_pin) ;
set(button_port,LightBton_pin);
//initialise inputs
set(Lights_direction,LeftBton_pin);
set(Lights_direction,RightBton_pin);
set(Lights_direction,LightBton_pin) ;
</code>
 
 
par
 
<code lang=C>
// initialise button pins pullup
 
button_port |= _BV(PA4);
button_port |= _BV(PA5);
button_port |= _BV(PA6);
</code>
 
 
Finalement le code fonctionne !
 
 
===Fichiers finaux===
 
Je publie d'hors et déjà les [[media:LightControl.V2.zip|fichiers de fabrication finaux]], avant d'[[Controleur_de_Lumière/Implantation|implanter le circuit]] dans mon vélomobile
[[Catégorie:FabAcademy]]
0
6 691
modifications

Menu de navigation