CUER
/
charger_code
Code to run on the charger board (used to charge the car from the mains).
Diff: charger.h
- Revision:
- 0:6d930d0d13a1
- Child:
- 1:0c77e20b4d4c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charger.h Sat May 06 20:28:22 2017 +0000 @@ -0,0 +1,49 @@ +#include "mbed.h" + +#define MAX_VOLTAGE 155.0 +#define MAX_CURRENT 10.0 +#define KI_CHARGE 2.5 +#define KI_BALANCE 0.6 +#define TIME_STEP 500 +#define TEMP_RAMP_START -5.0 +#define TEMP_RAMP_FINISH -1.5 + +#define CHARGER_MSG_TIMEOUT 6000 //ms +#define BMS_MSG_TIMEOUT 2000 //ms + +//change to whichever pins LEDs are connected to. +DigitalOut green_led(p21); +DigitalOut yellow_led(p22); +DigitalOut red_led(p23); + +Timer chargerboard_timer; + +void get_charger_data(void); +void get_voltage_data(void); +void get_bms_data(void); +void calculate_current(float voltage_error, float temp_margin, float *current, float *voltage); + +int chrg_status_recv_time; +int bms_minmax_cell_volts_recv_time; +int bms_pack_status_recv_time; +bool bms_timeout; +bool charger_timeout; +bool charge_finished; + + +float voltage_error=0; //(V) +float temp_margin = 0; +float discharge_error; +float capacity; + +float min_cell_voltage; //(V) +float max_cell_voltage;//(V) + +float rising_voltage_threshold; //(V) +float falling_voltage_threshold;//(V) +int bms_status; + +float charger_current, charger_voltage; + +float desired_current = 0, desired_voltage = MAX_VOLTAGE; + \ No newline at end of file