velocistaEdu
 Todo Clases Funciones Variables Amigas Páginas
velocistaEdu.h
1 #define LIBCALL_ENABLEINTERRUPT
2 #ifndef velocistaEdu_h
3 #define velocistaEdu_h
4 
5 #include <stdint.h>
6 #include "Arduino.h"
7 
8 #define EI_ARDUINO_INTERRUPTED_PIN
9 #include "EnableInterrupt.h"
10 
16 enum LEDS {
17  ROJO = 9,
18  VERDE = 10,
19  NANO = 13
20 };
21 
30 {
31  public:
32  friend VelocistaEdu & obtenerRobot(const boolean cambiarPolaridadMotorIzquierdo, const boolean cambiarPolaridadMotorDerecho);
33 
39  void establecerVelocidad(int velocidadIzquierda, int velocidadDerecha) const;
40 
45  boolean botonLiberado();
46 
53 
62  int obtenerMedidaLinea() const;
63 
71  void obtenerSensoresLinea(unsigned int s[4]) const;
72 
79  void obtenerCuentaEncoders(unsigned int &encoderIzquierdo, unsigned int &encoderDerecho) const;
80 
85  void resetearCuentaEncoders() const;
86 
91  unsigned int obtenerTensionBateria() const;
92 
97  void encenderLed(const LEDS led) const;
98 
103  void apagarLed(const LEDS led) const;
104 
110  void reproducirNota(unsigned int nota, unsigned int duracion) const;
111 
112  protected:
121  VelocistaEdu(const boolean cambiarPolaridadMotorIzquierdo=false, const boolean cambiarPolaridadMotorDerecho=false);
122 
124  unsigned int s_[4];
126  const bool motorDerechoAvanza_;
127 
128  private:
129  static const uint8_t BOTON, M_IZQ_PWM_PIN, M_IZQ_DIR_PIN, M_DER_DIR_PIN, M_DER_PWM_PIN, ENC_IZQ_PIN, ENC_DER_PIN, BUZZ, PULSOS_POR_REVOLUCION;
130 
131 };
132 
139 VelocistaEdu & obtenerRobot(const boolean cambiarPolaridadMotorIzquierdo = false, const boolean cambiarPolaridadMotorDerecho = false);
140 
141 inline void VelocistaEdu::obtenerSensoresLinea(unsigned int s[4]) const
142 {
143  memcpy(s, VelocistaEdu::s_, 4 * sizeof(unsigned int));
144 }
145 
146 inline void VelocistaEdu::encenderLed(const LEDS led) const
147 {
148  digitalWrite(led, HIGH);
149 }
150 
151 inline void VelocistaEdu::apagarLed(const LEDS led) const
152 {
153  digitalWrite(led, LOW);
154 }
155 
156 inline void VelocistaEdu::reproducirNota(unsigned int nota, unsigned int duracion) const
157 {
158  tone(VelocistaEdu::BUZZ, nota, duracion);
159  delay(duracion + 2);
160 }
161 
162 #endif //velocistaEdu_h
int obtenerMedidaLinea() const
Definition: velocistaEdu.cpp:142
void obtenerSensoresLinea(unsigned int s[4]) const
Definition: velocistaEdu.h:141
void establecerVelocidad(int velocidadIzquierda, int velocidadDerecha) const
Definition: velocistaEdu.cpp:78
void obtenerCuentaEncoders(unsigned int &encoderIzquierdo, unsigned int &encoderDerecho) const
Definition: velocistaEdu.cpp:181
const bool motorDerechoAvanza_
Valor que se le debe poner al pin de direccion derecho para que el motor derecho avance.
Definition: velocistaEdu.h:126
void reproducirNota(unsigned int nota, unsigned int duracion) const
Definition: velocistaEdu.h:156
void resetearCuentaEncoders() const
Definition: velocistaEdu.cpp:187
void encenderLed(const LEDS led) const
Definition: velocistaEdu.h:146
Definition: velocistaEdu.h:29
VelocistaEdu(const boolean cambiarPolaridadMotorIzquierdo=false, const boolean cambiarPolaridadMotorDerecho=false)
Definition: velocistaEdu.cpp:38
unsigned int s_[4]
Guarda el valor de los sensores infrarrojos.
Definition: velocistaEdu.h:124
const bool motorIzquierdoAvanza_
Valor que se le debe poner al pin de direccion izquierdo para que el motor izquierdo avance...
Definition: velocistaEdu.h:125
unsigned int obtenerTensionBateria() const
Definition: velocistaEdu.cpp:193
void actualizarSensoresLinea()
Definition: velocistaEdu.cpp:134
void apagarLed(const LEDS led) const
Definition: velocistaEdu.h:151
boolean botonLiberado()
Definition: velocistaEdu.cpp:123
friend VelocistaEdu & obtenerRobot(const boolean cambiarPolaridadMotorIzquierdo, const boolean cambiarPolaridadMotorDerecho)
Definition: velocistaEdu.cpp:200
boolean esperandoSoltarBoton_
Permite controlar el momento en el que se libera el boton.
Definition: velocistaEdu.h:123