Modifications

Controleur de Lumière

4 162 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
|ingrédients=electronique
}}
 
 
==Résumé==
==Essais==
 
 
on programme le tiny en tapant
make -f Light.control.44.make program-usbtiny
* 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 !
Le nouveau régulateur peut fournir jusqu'à 1 Ampère : http://www.digikey.com/product-detail/en/LM2940IMP-5.0/LM2940IMP-5.0CT-ND/3701581
[http://www.ti.com/lit/ds/symlink/lm2940-n.pdf datasheet:LM2940]===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