77
88#include < PIDfromBT.h>
99
10+ /* *
11+ * Constructor del objeto PIDfromBT de tipo PIDV; Proporcional, Integral, Derivada, Velocidad
12+ * @param kp Referencia a la constante de Proporcionalidad
13+ * @param ki Referencia a la constante de Integración
14+ * @param kd Referencia a la constante de Derivación
15+ * @param vel Reverencia a la variable de Velocidad
16+ * @param debug Parámetro que indica si se imprimirán los valores establecidos
17+ */
1018PIDfromBT::PIDfromBT (float * kp, float * ki, float * kd, int * vel, bool debug)
1119{
1220 _kp = kp; // P
@@ -21,6 +29,15 @@ PIDfromBT::PIDfromBT(float* kp, float* ki, float* kd, int* vel, bool debug)
2129 _type = TYPE_PIDV;
2230}
2331
32+ /* *
33+ * Constructor del objeto PIDfromBT de tipo PIDVI; Proporcional, Integral, Derivada, Velocidad, Ideal
34+ * @param kp Referencia a la constante de Proporcionalidad
35+ * @param ki Referencia a la constante de Integración
36+ * @param kd Referencia a la constante de Derivación
37+ * @param vel Reverencia a la variable de Velocidad
38+ * @param ideal Referencia a la variable de Ideal o Consigna de Posición
39+ * @param debug Parámetro que indica si se imprimirán los valores establecidos
40+ */
2441PIDfromBT::PIDfromBT (float * kp, float * ki, float * kd, int * vel, int * ideal, bool debug)
2542{
2643 _kp = kp; // P
@@ -38,6 +55,16 @@ PIDfromBT::PIDfromBT(float* kp, float* ki, float* kd, int* vel, int* ideal, bool
3855 _type = TYPE_PIDVI;
3956}
4057
58+ /* *
59+ * Constructor del objeto PIDfromBT de tipo PIDVIS; Proporcional, Integral, Derivada, Velocidad, Ideal, Succión
60+ * @param kp Referencia a la constante de Proporcionalidad
61+ * @param ki Referencia a la constante de Integración
62+ * @param kd Referencia a la constante de Derivación
63+ * @param vel Reverencia a la variable de Velocidad
64+ * @param ideal Referencia a la variable de Ideal o Consigna de Posición
65+ * @param suction Referencia a la variable de Succion o Velocidad del Ventilador/Turbina
66+ * @param debug Parámetro que indica si se imprimirán los valores establecidos
67+ */
4168PIDfromBT::PIDfromBT (float * kp, float * ki, float * kd, int * vel, int * ideal, int * suction, bool debug)
4269{
4370 _kp = kp; // P
@@ -56,34 +83,41 @@ PIDfromBT::PIDfromBT(float* kp, float* ki, float* kd, int* vel, int* ideal, int*
5683 _type = TYPE_PIDVIS;
5784}
5885
59-
86+ /* *
87+ * Función para comprobar si existen comandos pendientes en el Buffer de entrada; debe ejecutarse
88+ * esta función al menos una vez por cada ciclo de ejecución
89+ */
6090void PIDfromBT::update () {
6191 if (Serial.available ()) {
62- // Si hay algo pendiente en el Buffer, lo lee y guarda el tiempo en el que lo leyo.
92+ // Si hay algo pendiente en el Buffer, lo lee y guarda el tiempo en el que lo leyó
6393 _last_update = millis ();
6494 byte readByte = Serial.read ();
6595
6696 if ((isDigit ((char )readByte) || (char )readByte == ' .' || (char )readByte == ' -' )) {
67- // Si es un dígito, signo decimal o signo negativo, lo guarda como un valor.
97+ // Si es un dígito, signo decimal o signo negativo, lo guarda como un valor
6898 _value += (char )readByte;
6999 }else {
70100 if (_letter != ' ' ){
71- // Si es una letra y ya hay otra letra ya leída, ejecuta la acción correspondiente a esa letra.
101+ // Si es una letra y ya hay otra letra ya leída, ejecuta la acción correspondiente a esa letra
72102 execute_task (_letter, (_value!=" " )?_value.toFloat ():0 );
73103 }
74- // Llega una nueva letra; limpia el _value anterior y lee la nueva letra.
104+ // Llega una nueva letra; limpia el _value anterior y lee la nueva letra
75105 _value = " " ;
76106 _letter = (char )readByte;
77107 }
78108 }else if ((millis ()-_last_update) > 5 && _letter != ' ' ){
79- // Si no se ha recibido nada en los últimos 5ms y hay alguna letra pendiente, ejecuta su acción correspondiente.
109+ // Si no se ha recibido nada en los últimos 5ms y hay alguna letra pendiente, ejecuta su acción correspondiente
80110 execute_task (_letter, (_value!=" " )?_value.toFloat ():0 );
81111 _letter = ' ' ;
82112 _value = " " ;
83113 }
84114}
85115
86-
116+ /* *
117+ * Función para modificar el valor de la variable indicada por la letra
118+ * @param letter Letra que identifica la variable que hay que modificar
119+ * @param value Valor que tomará la variable indicada por la Letra anterior
120+ */
87121void PIDfromBT::execute_task (char letter, float value)
88122{
89123 switch (letter) {
@@ -132,9 +166,18 @@ void PIDfromBT::execute_task(char letter, float value)
132166 }
133167}
134168
169+ /* *
170+ * Función para establecer el ideal mínimo en cualquier momento
171+ * @param minIdeal Valor entero para el mínimo ideal
172+ */
135173void PIDfromBT::setMinIdeal (int minIdeal){
136174 _minIdeal = minIdeal;
137175}
176+
177+ /* *
178+ * Función para establecer el idea máximo en cualquier momento
179+ * @param maxIdeal Valor entero para el máximo ideal
180+ */
138181void PIDfromBT::setMaxIdeal (int maxIdeal){
139182 _maxIdeal = maxIdeal;
140183}
0 commit comments