/
engine.h
85 lines (69 loc) · 2.46 KB
/
engine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#ifndef ENGINE_H
#define ENGINE_H
//#include "Arduino.h"
#include "Servo.h"
////////////////////////////////////////////////////////////
// Classe utilitaire pour controler le moteur
////////////////////////////////////////////////////////////
class Engine
{
public:
////////////////////////////////////////////////////////////
// Mode de fonctionnement du moteur (en utilisant le relai)
////////////////////////////////////////////////////////////
enum MODE {FORWARD, BACKWARD};
////////////////////////////////////////////////////////////
// Prenitialisation du moteur (niveau software)
// \param port : le pin arduino connecte au moteur
////////////////////////////////////////////////////////////
void init(
int port,
int m_Relay_pin
);
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
void wait ();
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
void pulse (unsigned long pulse);
////////////////////////////////////////////////////////////
// Sequence de demarrage du moteur (niveau hardware)
////////////////////////////////////////////////////////////
void start ();
////////////////////////////////////////////////////////////
// Defini une vitesse a atteindre
// \param speed : la vitesse a atteindre
////////////////////////////////////////////////////////////
void set_speed (
int speed
);
////////////////////////////////////////////////////////////
// Donne la vitesse
// \return la vitesse actuelle
////////////////////////////////////////////////////////////
int get_current_speed ();
////////////////////////////////////////////////////////////
// Met en marche le moteur et calcule la prochaine vitesse a atteindre
////////////////////////////////////////////////////////////
void run ();
////////////////////////////////////////////////////////////
// Change le mode de fonctionnement du moteur (pour avancer ou reculer)
// \param mode : le mode de fonctionnement
// \param locked : verrouiler ou non le mode (en cas d'utilisation manuelle)
////////////////////////////////////////////////////////////
void set_mode (
MODE mode,
bool locked= false
);
private:
Servo m_Engine;
int m_Port;
int m_Relay_pin;
int m_Speed;
int m_CurrentSpeed;
MODE m_Mode;
bool m_LockedMode;
};
#endif