« Controleur de Lumière » : différence entre les versions
De fablabo
(26 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Projet | {{Projet | ||
|status= Prototype | |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 | |name=Contrôleur de lumière | ||
}} | }} | ||
==Résumé== | ==Résumé== | ||
Ligne 278 : | Ligne 275 : | ||
==Essais== | ==Essais== | ||
on programme le tiny en tapant | |||
make -f Light.control.44.make program-usbtiny | |||
Ligne 322 : | Ligne 323 : | ||
* ajouter un capteur de lumière pour piloter les phares | * 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]] | [[Catégorie:FabAcademy]] |