Escolar Documentos
Profissional Documentos
Cultura Documentos
Tracker Solaire
Samuel Goutenoir GESC 01
Denis Touillon GESC 02
Responsable de lUV Damien Paire
TP Eric Chrtien
Printemps 2011
Prface
LUV EN41 nous a permis de dvelopper notre premier projet dlectronique ncessitant un
panel de comptences diverses. Nous avons bnci chaque jeudi pour une dure de 3 heures,
dune salle de travail quipe des logiciels et du matriel ncessaire an de mener laboutisse-
ment de notre projet.
Nous nous sommes port sur le sujet tracker solaire. Nous pensons que cest un sujet tout
fait dactualit dans le domaine de lindustrie puisque aujourdhui beaucoup de panneaux so-
laires sont dots dun tracker solaire.
Ce rapport a pour objectif de retracer lvolution de la ralisation de notre projet, de la
dnition du cahier des charges la phase de tests nous permettant de valider ou non lavance
du projet.
Vous pouvez retrouver ce rapport au format Pdf sur le site : http ://samuel.goutenoir.com/
Accs direct
TABLE DES MATIRES
Table des matires
1 Introduction 5
1.1 Dnition du sujet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Quest-ce quun Tracker Solaire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Est-ce rentable ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Calendrier prvisionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Conception 8
2.1 Principe de fonctionnement du systme . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Schma bloc du systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Les panneaux solaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Les photorsistances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.3 Le moteur pas pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.4 Le driver du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.5 La carte mre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Ralisation de la carte sous Altium . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.1 Le schma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.2 Le Typon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Maquette 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Ralisation Matriel 21
3.1 Construction de la maquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Montage de la carte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Phase de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3
TABLE DES MATIRES
3.3.1 Test du moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.2 Test des photorsistances . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.3 Test des panneaux solaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Ralisation Logiciel 24
4.1 Fonctions du Moteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2 getTravel() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3 Main() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Conclusion 28
5.1 Amliorations possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
A Programme 29
A.1 TrackerSolaire.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A.2 Cong.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
A.3 Stepper.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
A.4 Stepper.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4
1 Introduction
Le soleil ne se lve que pour celui qui va sa rencontre. Henri le Saux
1.1 Dnition du sujet
Objectif : Raliser un tracker solaire command par un moteur pas pas an dassurer une
production lectrique optimale.
Le travail consiste proposer et raliser une commande de moteur pas pas (PaP) pour
permettre une rotaton denviron 140
OUTPUT
FUNCTION TABLE
(each driver)
H = high-level, L = low-level
X = irrelevant
Z = high-impedance (off)
.
2 / FONCTION GETTRAVEL( ) /
// Foncti on qui r envoi e l a commande du moteur en f onc t i on des LDRs
4 float getTravel ( )
{
6
// Rotati on Hor ai r e
8 if ( erreurMOY < ( deadband 1) )
{
10 if ( nbdepas > 0)
{
12 nbdepas;
return 1. 0;
14 }
}
16 else
{
18 // Rotati on AntiHor ai r e
if ( erreurMOY > deadband )
20 {
if ( nbdepas < 40)
22 {
nbdepas++;
24 return 1 . 0 ;
}
26 }
else
28 {
//On ne bouge pas dans l a deadband
30 return 0 . 0 ;
}
32 }
}
25
4.3. MAIN()
4.3 Main()
1 / FONCTION MAIN( ) /
void main ( void )
3 {
5 // De f i ni t i on des E/S du moteur
TRISBbits . TRISB5 = 0; / Sor t i e B5 /
7 TRISBbits . TRISB4 = 0; / Sor t i e B4 /
TRISBbits . TRISB3 = 0; / Sor t i e B3 /
9 TRISBbits . TRISB2 = 0; / Sor t i e B2 /
11 // De f i ni t i on des E/S des LDR
TRISAbits . TRISA1 = 1; / ent r e A1 /
13 TRISAbits . TRISA0 = 1; / ent r e A0 /
15 // De f i ni t i on des E/S des panneaux s o l a i r e
TRISAbits . TRISA2 = 1; / ent r e A2 /
17
/ Re gi s t r e ADCON /
19 ADCON1bits . PCFG3 = 0;
ADCON1bits . PCFG2 = 0;
21 ADCON1bits . PCFG1 = 0;
ADCON1bits . PCFG0 = 0;
23
// On i n i t i a l i s e l e moteur pas pas
25 initStepper ( ) ;
27 // On r e g l e sa v i t e s s e a 100 t r s /min
setVitesseStepper ( 100) ;
29
// On i n i t i a l i s e l e c onve r t i s s e ur ADC
31 OpenADC ( ADC_FOSC_64 & ADC_RIGHT_JUST& ADC_20_TAD , ADC_CH0 & ADC_INT_OFF&
ADC_REF_VDD_VSS , 0 ) ;
Delay10TCYx ( 5) ;
33
// On i n i t i a l i s e l e LCD
35 XLCDInit ( ) ; // i n i t i a l i s a t i o n du module LCD
XLCDL1home ( ) ; // Posi ti onnement l a premi ere l i g ne
37 XLCDDisplayOnCursorOff ( ) ; // On n a f f i c h e pas l e cur s eur
39 {
while ( 1)
41 {
/ /
43 / Conversi on ADC /
/ /
45
// On r ecuper e l a val eur de l a LDR de dr oi t e
47 SetChanADC ( ADC_CH0 ) ; // s e l e c t i o n RA0
Delay10TCYx ( 5) ;
49 ConvertADC ( ) ; // Demarre l a conver s i on
while ( BusyADC ( ) ) ; // Attente ADC conver s i on
51 valeurDroite = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met
dans val eur Dr oi t e
53 // On r ecuper e l a val eur de l a LDR de gauche
SetChanADC ( ADC_CH1 ) ; // s e l e c t i o n RA1
55 Delay10TCYx ( 5) ;
ConvertADC ( ) ; // Demarre l a conver s i on
26
4.3. MAIN()
57 while ( BusyADC ( ) ) ; // Attente ADC conver s i on
valeurGauche = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met dans
val eurGauche
59
// On r ecuper e l a val eur de l a t e ns i on des panneaux s o l a i r e s
61 SetChanADC ( ADC_CH2 ) ; // s e l e c t i o n RA2
Delay10TCYx ( 5) ;
63 ConvertADC ( ) ; // Demarre l a conver s i on
while ( BusyADC ( ) ) ; // Attente ADC conver s i on
65 tension = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met dans t e ns i on
67 / /
/ Commande Moteur /
69 / /
71 // Cal cul de l e r r e ur
erreur = valeurGauche valeurDroite ;
73
// Cal cul de l e r r e ur moyenne
75 erreurMOY = ( erreurMOY + erreur ) / 2;
77 // On r ecuper e l a commande du moteur ( 0 , 1 ou 1)
travel = getTravel ( ) ;
79
// On f a i t t our ner l e moteur en f onc t i on
81 avanceStepper ( travel ) ;
83 // Cal cul de l angl e ac t ue l du moteur
angle = nbdepas 3 . 6 ;
85
// Cal cul de l a t e ns i on mapper des panneaux
87 tensionmapper = tension 5. 0/1024. 0;
89 / /
/ Af f i chage LCD /
91 / /
93 // On a f f i c h e l a t e ns i on
XLCDL1home ( ) ;
95 sprintf ( buf , "Tension ") ;
XLCDPutRamString ( buf ) ;
97 ftoa ( tensionmapper , buf , 2 , f) ;
XLCDPutRamString ( buf ) ;
99 sprintf ( buf , " V") ;
XLCDPutRamString ( buf ) ;
101 XLCDL2home ( ) ;
// On a f f i c h e l angl e
103 sprintf ( buf , "Angle ") ;
XLCDPutRamString ( buf ) ;
105 ftoa ( angle , buf , 2 , f) ;
XLCDPutRamString ( buf ) ;
107 sprintf ( buf , " deg") ;
XLCDPutRamString ( buf ) ;
109
}
111 }
}
27
5 Conclusion
5.1 Amliorations possibles
Pour amliorer lecacit du systme, il existe plusieurs solutions, toutes envisageables sur
un projet plus long terme :
Remplacer le moteur pas pas par un servo-moteur :
* Plus besoin de +12V mais +5V pour alimenter le servo
* Plus facile mettre en oeuvre
* Couple de maintient plus important
* Pas besoin de lalimenter constamment => gain dnergie
Ajouter un servo-moteur pour lorientation en hauteur :
* Gain dnergie
Faire un systme auto-aliment par les panneaux :
* Aucune source dnergie externe
Rajouter une carte SD pour lenregistrement des donnes
5.2 Bilan
Etant donn quil y a trs peu de notation individuelle, lobjectif de cette UV rside dans un
autre concept, le cahier des charges respecter et de la cration de A Z dun projet.
Chaque tapes de llaboration du projet nous ont appris beaucoup quant la conception et
la fabrication de cartes lectroniques. Cela ft galement une dcouverte des Microcontrleurs
pour nous. Ce projet constitue donc pour nous une premire exprience trs enrichissante que
nous saurons trs probablement mettre oeuvre dans le futur. Laspect gestion de projet nous
a galement permis de mieux percevoir les dicults inhrentes au management du temps dans
les projets techniques.
En conclusion notre projet marche trs bien, notre Tracker solaire suit sans souci une lumire
avec un peu de latence mais rien de gnant. En ralit le soleil se dplace tellement lentement
que nous pourrions mme faire une mise jour du dplacement que tous les quarts dheure.
28
A Programme
A.1 TrackerSolaire.c
/ /
2 / Tr ac ke r Sol ai r e /
/ /
4 / Auteur : Goutenoi r Samuel & Toui l l on Deni s /
/ Pri ntemps 2011 /
6 / /
8 // I n i t i a l i s a t i o n de l a f onc t i on get Tr avel ( )
float getTravel ( ) ;
10
12 / INCLUDES /
14 #include <us ar t . h>
#include <s t di o . h>
16 #include <p18f 4580 . h>
#include <c onf i g . h>
18 #include <s t epper . h>
#include <del ays . h>
20 #include <adc . h>
#include "xlcd.h"
22
24 / DEFINE /
26 #define XLCDDisplayOnCursorOff ( ) XLCDCommand(0x0C)
28
/ VARIABLES /
30
float valeurGauche = 0; // Val eur LDR gauche
32 float valeurDroite = 0; // Val eur LDR dr oi t e
float erreur =0; // La de vi at i on ent r e l e s deux LDRs
34 float erreurMOY = 0; // La moyenne de l a de vi at i on
float deadband = 20; // S e n s i b i l i t e : 10 = 10 to +10
36 float travel ; // Nombre de tour voyager ( 0 , 1 , 1)
float nbdepas = 20; // Nombre de pas du moteur ac t ue l (20 pour l e mettre au
cent r e
38 float angle = 0; // Angle du moteur ( nbdepas 3. 6)
float tension = 0; // Tensi on des panneaux en s o r t i e du c onve r t i s s e ur (0
1023)
40 float tensionmapper = 0; // Tensi on des panneaux s o l a i r e mapper (0 5)
42 unsigned char buf [ 3 ] ; // Buf f er pour l e LCD
29
A.1. TRACKERSOLAIRE.C
44
/ FONCTION GETTRAVEL( ) /
46 // Foncti on qui r envoi e l a commande du moteur en f onc t i on des LDRs
float getTravel ( )
48 {
50 // Rotati on Hor ai r e
if ( erreurMOY < ( deadband 1) )
52 {
if ( nbdepas > 0)
54 {
nbdepas;
56 return 1. 0;
}
58 }
else
60 {
// Rotati on AntiHor ai r e
62 if ( erreurMOY > deadband )
{
64 if ( nbdepas < 40)
{
66 nbdepas++;
return 1 . 0 ;
68 }
}
70 else
{
72 //On ne bouge pas dans l a deadband
return 0 . 0 ;
74 }
}
76 }
78 / FONCTION MAIN( ) /
void main ( void )
80 {
82 // De f i ni t i on des E/S du moteur
TRISBbits . TRISB5 = 0; / Sor t i e B5 /
84 TRISBbits . TRISB4 = 0; / Sor t i e B4 /
TRISBbits . TRISB3 = 0; / Sor t i e B3 /
86 TRISBbits . TRISB2 = 0; / Sor t i e B2 /
88 // De f i ni t i on des E/S des LDR
TRISAbits . TRISA1 = 1; / entre A1 /
90 TRISAbits . TRISA0 = 1; / entre A0 /
92 // De f i ni t i on des E/S des panneaux s o l a i r e
TRISAbits . TRISA2 = 1; / entre A2 /
94
/ Re gi s t r e ADCON /
96 ADCON1bits . PCFG3 = 0;
ADCON1bits . PCFG2 = 0;
98 ADCON1bits . PCFG1 = 0;
ADCON1bits . PCFG0 = 0;
100
// On i n i t i a l i s e l e moteur pas pas
102 initStepper ( ) ;
30
A.1. TRACKERSOLAIRE.C
104 // On r e g l e sa v i t e s s e a 100 t r s /min
setVitesseStepper ( 100) ;
106
// On i n i t i a l i s e l e c onve r t i s s e ur ADC
108 OpenADC ( ADC_FOSC_64 & ADC_RIGHT_JUST& ADC_20_TAD , ADC_CH0 & ADC_INT_OFF&
ADC_REF_VDD_VSS , 0 ) ;
Delay10TCYx ( 5) ;
110
// On i n i t i a l i s e l e LCD
112 XLCDInit ( ) ; // i n i t i a l i s a t i o n du module LCD
XLCDL1home ( ) ; // Posi ti onnement l a premi ere l i g ne
114 XLCDDisplayOnCursorOff ( ) ; // On n a f f i c h e pas l e cur s eur
116 {
while ( 1)
118 {
/ /
120 / Conversi on ADC /
/ /
122
// On r ecuper e l a val eur de l a LDR de dr oi t e
124 SetChanADC ( ADC_CH0 ) ; // s e l e c t i o n RA0
Delay10TCYx ( 5) ;
126 ConvertADC ( ) ; // Demarre l a conver s i on
while ( BusyADC ( ) ) ; // Attente ADC conver s i on
128 valeurDroite = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met
dans val eur Dr oi t e
130 // On r ecuper e l a val eur de l a LDR de gauche
SetChanADC ( ADC_CH1 ) ; // s e l e c t i o n RA1
132 Delay10TCYx ( 5) ;
ConvertADC ( ) ; // Demarre l a conver s i on
134 while ( BusyADC ( ) ) ; // Attente ADC conver s i on
valeurGauche = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met dans
val eurGauche
136
// On r ecuper e l a val eur de l a t e ns i on des panneaux s o l a i r e s
138 SetChanADC ( ADC_CH2 ) ; // s e l e c t i o n RA2
Delay10TCYx ( 5) ;
140 ConvertADC ( ) ; // Demarre l a conver s i on
while ( BusyADC ( ) ) ; // Attente ADC conver s i on
142 tension = ReadADC ( ) ; // On l i t l e r e s ul t a t et l e met dans t e ns i on
144 / /
/ Commande Moteur /
146 / /
148 // Cal cul de l e r r e ur
erreur = valeurGauche valeurDroite ;
150
// Cal cul de l e r r e ur moyenne
152 erreurMOY = ( erreurMOY + erreur ) / 2;
154 // On r ecuper e l a commande du moteur ( 0 , 1 ou 1)
travel = getTravel ( ) ;
156
// On f a i t t our ner l e moteur en f onc t i on
158 avanceStepper ( travel ) ;
160 // Cal cul de l angl e ac t ue l du moteur
31
A.2. CONFIG.H
angle = nbdepas 3 . 6 ;
162
// Cal cul de l a t e ns i on mapper des panneaux
164 tensionmapper = tension 5. 0/1024. 0;
166 / /
/ Af f i chage LCD /
168 / /
170 // On a f f i c h e l a t e ns i on
XLCDL1home ( ) ;
172 sprintf ( buf , "Tension ") ;
XLCDPutRamString ( buf ) ;
174 ftoa ( tensionmapper , buf , 2 , f) ;
XLCDPutRamString ( buf ) ;
176 sprintf ( buf , " V") ;
XLCDPutRamString ( buf ) ;
178 XLCDL2home ( ) ;
// On a f f i c h e l angl e
180 sprintf ( buf , "Angle ") ;
XLCDPutRamString ( buf ) ;
182 ftoa ( angle , buf , 2 , f) ;
XLCDPutRamString ( buf ) ;
184 sprintf ( buf , " deg") ;
XLCDPutRamString ( buf ) ;
186
}
188 }
}
TrackerSolaire.c
A.2 Cong.h
1 / Fi c hi e r de c onf i g /
3 #ifndef CONFIG_H
#define CONFIG_H
5
#include <p18F4580 . h>
7
/ De f i ni t i on des pi ns du moteur /
9
#define moteur_pin_1 LATBbits . LATB5 / Ec r i t ur e sur PortB Bi t B5 /
11 #define moteur_pin_2 LATBbits . LATB4 / Ec r i t ur e sur PortB Bi t B4 /
#define moteur_pin_3 LATBbits . LATB3 / Ec r i t ur e sur PortB Bi t B3 /
13 #define moteur_pin_4 LATBbits . LATB2 / Ec r i t ur e sur PortB Bi t B2 /
15 / De f i ni t i on du nombre de pas du moteur ( pour un tour ) /
17 #define NBDEPAS 100
19 #endif CONFIG_H
Cong.h
32
A.3. STEPPER.H
A.3 Stepper.h
1 /
s t epper . c Li br a i r i e pour moteur pas a pas
3
Pour moteur PaP uni po l a i r e ou bi po l a i r e u t i l i s a n t 2 ou 4 f i l s de c ont r o l e s .
5
La sequence de c ont r ol e pour 4 f i l s e s t comme s ui t :
7
Pas C0 C1 C2 C3
9 1 1 0 1 0
2 0 1 1 0
11 3 0 1 0 1
4 1 0 0 1
13
15 /
17 #ifndef STEPPER_H
#define STEPPER_H
19
21 / Foncti ons /
23 // Creati on des moteurs
void initStepper ( void ) ;
25
// De f i ni e l a v i t e s s e
27 void setVitesseStepper ( long vitesse ) ;
29 // Foncti on ext er ne qui f a i t avancer l e moteur d un nombre de pas
void avanceStepper ( float nb_de_pas ) ;
31
// Foncti on i nt e r ne
33 void pasMoteur ( int un_pas ) ;
35 #endif STEPPER_H
Stepper.h
A.4 Stepper.c
/
2 s t epper . c Li br a i r i e pour moteur pas a pas
4 Pour moteur PaP uni po l a i r e ou bi po l a i r e u t i l i s a n t 2 ou 4 f i l s de c o nt r ol e s .
6 La sequence de c ont r ol e pour 4 f i l s e s t comme s ui t :
8 Pas C0 C1 C2 C3
1 1 0 1 0
10 2 0 1 1 0
3 0 1 0 1
12 4 1 0 0 1
14
/
33
A.4. STEPPER.C
16
#include <s t epper . h>
18 #include <c onf i g . h>
#include <del ays . h>
20
/ Var i abl es Gl obal es pour l e Stepper /
22
int step_direction ; // Di r e c t i on de l a r ot at i on
24 int step_vitesse ; // v i t e s s e en t r s /min
int step_numero ; // Quel pas l e moteur e s t act uel l ement ( 1 , 2 , 3 ou 4)
26 int step_nb_de_pas ;
int step_direction ;
28
unsigned long step_delay ; // temps ent r e chaque pas , en ms , en f c t de l a
v i t e s s e
30
// numero des pi ns du moteurs :
32 int step_moteur_pin_1 ;
int step_moteur_pin_2 ;
34 int step_moteur_pin_3 ;
int step_moteur_pin_4 ;
36
long step_last_step_time ;
38
void initStepper ( void )
40 {
step_numero = 0;
42 step_vitesse = 0;
step_direction = 0;
44 step_last_step_time = 0;
step_nb_de_pas = NBDEPAS ;
46 }
48 /
De f i ni l a v i t e s s e du moteur en t r /min
50 /
void setVitesseStepper ( long vitesse )
52 {
step_delay = 60L 1000L / step_nb_de_pas / vitesse ;
54 }
56 /
Bouge l e moteur du nombre de pas "nb_de_pas"
58 /
void avanceStepper ( float nb_de_pas )
60 {
int pas_restant ;
62 // Cb de pas i l r e s t e
if ( nb_de_pas > 0) {pas_restant = nb_de_pas ; }
64 if ( nb_de_pas < 0) {pas_restant = nb_de_pas ; }
66
// Determi ne l a di r e c t i o n en s e basant sur l e + ou de "nb_de_pas"
68 if ( nb_de_pas > 0) {step_direction = 1; }
if ( nb_de_pas < 0) {step_direction = 0; }
70
72 // Decremente l e nombre de pas , on avance d un pas a chaque f o i s :
while ( pas_restant > 0) {
74 // On attend un moment
34
A.4. STEPPER.C
Delay10KTCYx ( step_delay /4) ; // 10000TCY step_del ay (TCY = 0. 4 us )
76
// Incremente ou decremente l e numero du pas
78 // en f onc t i on de l a di r e c t i o n
if ( step_direction == 1) {
80 step_numero++;
if ( step_numero == step_nb_de_pas ) {
82 step_numero = 0;
}
84 }
else {
86 if ( step_numero == 0) {
step_numero = step_nb_de_pas ;
88 }
step_numero;
90 }
// On decremente
92 pas_restant;
// On met l e numero c or r e c t 0 , 1 , 2 , or 3:
94 pasMoteur ( step_numero % 4) ;
}
96 }
98 /
Fai t t our ner l e moteur avant ou a r r i e r e .
100 /
void pasMoteur ( int un_pas )
102 {
switch ( un_pas ) {
104 case 0: // 1010
moteur_pin_1 = 1;
106 moteur_pin_2 = 0;
moteur_pin_3 = 1;
108 moteur_pin_4 = 0;
break ;
110 case 1: // 0110
moteur_pin_1 = 0;
112 moteur_pin_2 = 1;
moteur_pin_3 = 1;
114 moteur_pin_4 = 0;
break ;
116 case 2: //0101
moteur_pin_1 = 0;
118 moteur_pin_2 = 1;
moteur_pin_3 = 0;
120 moteur_pin_4 = 1;
break ;
122 case 3: //1001
moteur_pin_1 = 1;
124 moteur_pin_2 = 0;
moteur_pin_3 = 0;
126 moteur_pin_4 = 1;
break ;
128 }
}
Stepper.c
35
TABLE DES FIGURES
Table des gures
2.1 Dessin - Maquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Organigramme - Principe de fonctionnement . . . . . . . . . . . . . . . . . . . . . 9
2.3 Schma bloc - Systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Photo - Panneaux solaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Photo - Photorsistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 Schma - Cblage du LM358 avec les LDRs . . . . . . . . . . . . . . . . . . . . . 11
2.7 Photo - Moteur pas pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.8 Dessin - Moteur pas pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.9 Tableau - Alimentation des bobines . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.10 Schma - SN7544A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.11 Schma - Cablge du SN7544A . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.12 Photo - Carte mre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.13 Schma - Carte lle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.14 Typon - Carte lle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.15 Dessin - Maquette 3D avec textes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.16 Dessin - Maquette 3D avec cotations . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Photo - Notre maquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Photo - Notre carte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
36