diff --git a/CHANGELOG.md b/CHANGELOG.md index 3757ce7..3c290b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,11 @@ Su formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) y - [ ] ~~Hacer que **actualizador.sh** sea "inteligente" y actualice en función de la versión.~~ +## [0.11.2] - 2021-10-15 +### Arreglado +- Fallo de arranque del ventilador, que podría no empezar a girar en determinadas circunstancias +- Velocidad mínima de giro del ventilador insuficiente + ## [0.11.1] - 2021-05-18 ### Arreglado - Arreglos menores en **sonda_dht11.py**. diff --git a/Python/config.py b/Python/config.py index 44943cd..1483fed 100644 --- a/Python/config.py +++ b/Python/config.py @@ -185,7 +185,7 @@ class temperatura_config(config_global): TEMPERATURAS = (40, 50, 60) # TEMPERATURAS contiene las temperaturas de activación de cada etapa - VELOCIDAD_MINIMA = 0.30 # Velocidad mínima necesaria para el giro del ventilador + VELOCIDAD_MINIMA = 0.33 # Velocidad mínima necesaria para el giro del ventilador VELOCIDADES = ( # VELOCIDADES contiene pares temperatura - velocidad del ventilador (20, 0.00), diff --git a/Python/temperatura.py b/Python/temperatura.py index c2a7cef..0a32ba0 100755 --- a/Python/temperatura.py +++ b/Python/temperatura.py @@ -5,8 +5,8 @@ # Title : temperatura.py # Description : Sistema indicador led de la temperatura del procesador en tiempo real. Utiliza tantos leds como GPIOs se le indiquen, siendo el último el de "alarma". # Author : Veltys -# Date : 2021-04-30 -# Version : 3.0.4 +# Date : 2021-10-15 +# Version : 3.1.0 # Usage : python3 temperatura.py # Notes : Mandándole la señal "SIGUSR1", el sistema pasa a "modo test", lo cual enciende todos los leds, para comprobar su funcionamiento # Mandándole la señal "SIGUSR2", el sistema pasa a "modo apagado", lo cual apaga todos los leds hasta que esta misma señal sea recibida de nuevo @@ -58,6 +58,8 @@ def bucle(self): ''' Realiza en bucle las tareas asignadas a este sistema ''' + velocidad = 0 # Es necesario establecer la velocidad actual de rotación del ventilador + try: while True: # Se ejecutará siempre, ya que las condiciones de parada son externas if not(self._modo_apagado): # Si no se ha activado el "modo apagado" @@ -92,6 +94,12 @@ def bucle(self): break + if velocidad == 0: # Antes de (re)calcular la velocidad es necesario saber si el ventilador está parado + arranque = True # Será necesario hacer un arranque de éste + + else: # Si no + arranque = False # No será necesario el arranque + if igual is False: # Si no existe un elemento igual, puede que haya que interpolar if mayor is False: # Si valor mayor no se ha modificado e igual tampoco, se está ante un valor mayor que el máximo velocidad = self._config.VELOCIDADES[len(self._config.VELOCIDADES) - 1][1] # Se establece la velocidad al final de los puntos @@ -124,6 +132,10 @@ def bucle(self): acceso.ChangeDutyCycle(self._config.COLORES[estado][componente] * 100) # Se cambia el ciclo de ejecución en función de la cordenada anteriormente asignada elif tipo == config.VENTILADOR_PWM: # Si se está ante un ventilador PWM + if arranque: # Si el ventilador ha estado parado, se realizará un arranque del mismo + acceso.ChangeDutyCycle(100) # Poniéndolo al 100% de velocidad + sleep(1) # Durante un segundo + acceso.ChangeDutyCycle(velocidad * 100) # Se cambia el ciclo de ejecución en función de la cordenada anteriormente asignada else: # Si se está ante cualquier otro