software:firmware
MakAir Firmware
blower.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 // INCLUDES ===================================================================
11 
12 // Internal libraries
13 #include "../includes/debug.h"
14 #include "../includes/parameters.h"
15 
22 #define BlowerSpeed2MicroSeconds(value) map(value, 0, 1800, 1000, 1950)
23 
24 // CLASS =================================================================
25 
27 class Blower {
28  public:
30  Blower();
31 
39  Blower(HardwareTimer* p_hardwareTimer, uint16_t p_timerChannel, uint16_t p_blowerPin);
40 
42  void setup();
43 
49  void runSpeedWithRampUp(uint16_t p_targetSpeed);
50 
56  void runSpeed(uint16_t p_runSpeed);
57 
58  void execute();
59 
61  void stop();
62 
64  uint16_t getSpeed() const;
65 
67  uint16_t getTargetSpeed() const;
74  int32_t getBlowerPressure(int32_t p_flow);
75 
76  private:
78  HardwareTimer* actuator;
79 
81  uint16_t timerChannel;
82 
84  uint16_t blowerPin;
85 
87  uint16_t m_speed;
88 
90  uint16_t m_targetSpeed;
91 
93  bool m_stopped;
94 
95  // Last call of the runspeed function of the blower
96  uint32_t m_lastCallDate;
97 };
98 
99 extern Blower blower;
Blower blower
Definition: blower.cpp:20
Controls a blower.
Definition: blower.h:27
HardwareTimer * actuator
Hardware timer used to control the blower.
Definition: blower.h:78
uint16_t getSpeed() const
Get speed value.
Definition: blower.cpp:101
uint32_t m_lastCallDate
Definition: blower.h:96
bool m_stopped
Current state.
Definition: blower.h:93
uint16_t getTargetSpeed() const
Get target speed value.
Definition: blower.cpp:103
void setup()
Initialize the hardware timer used to control the blower.
Definition: blower.cpp:36
uint16_t m_targetSpeed
target speed
Definition: blower.h:90
uint16_t timerChannel
Channel of the hardware timer used to control the blower.
Definition: blower.h:81
int32_t getBlowerPressure(int32_t p_flow)
Given a flow in mL/min, return an estimated pressure just at the output of the blower.
Definition: blower.cpp:85
void stop()
Stops the blower.
Definition: blower.cpp:105
void runSpeedWithRampUp(uint16_t p_targetSpeed)
Run the blower to a given speed applying a ramp-up to prevent high current drain.
Definition: blower.cpp:44
uint16_t blowerPin
Pin of the blower.
Definition: blower.h:84
void runSpeed(uint16_t p_runSpeed)
Run the blower to a given speed.
Definition: blower.cpp:69
void execute()
Definition: blower.cpp:55
uint16_t m_speed
Current speed.
Definition: blower.h:87
Blower()
Default constructor.
Definition: blower.cpp:24