Skip to content
Snippets Groups Projects
Commit f75e8733 authored by Vassily Petrov's avatar Vassily Petrov
Browse files

added cutoff when battery voltage is too low

parent 4288008d
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@
#include <avr/boot.h>
#include <EEPROM.h>
#include <avr/wdt.h>
#include <avr/sleep.h>
#include "athome_firmware.h"
#include "photo_measure.h"
......@@ -93,7 +94,7 @@ void main_a()
Wire.begin();
analogReference(EXTERNAL);
pinMode(5, OUTPUT); // heater
pinMode(HEATER, OUTPUT); // heater
pinMode(2, OUTPUT);
pinMode(UV_LED, OUTPUT);
pinMode(7, OUTPUT); //Blue Led
......@@ -102,7 +103,7 @@ void main_a()
pinMode(16, OUTPUT);
digitalWrite(7, HIGH);
digitalWrite(UV_LED, LOW);
digitalWrite(5, LOW); // heater
digitalWrite(HEATER, LOW); // heater
digitalWrite(2, LOW);
Wire.beginTransmission(0x48);
......@@ -193,7 +194,7 @@ void main_a()
// calibration mode.
MCUSR = 0;
wdt_disable();
pinMode(5, LOW); // disable heater just in case.
digitalWrite(HEATER, LOW); // disable heater just in case.
u8g2.firstPage();
do
......@@ -226,7 +227,7 @@ void main_a()
// temp calibration measurement mode.
MCUSR = 0;
wdt_disable();
pinMode(5, LOW); // disable heater just in case.
digitalWrite(HEATER, LOW); // disable heater just in case.
while(1){
val = 0;
for(int i=0; i< 32; i++){
......@@ -299,6 +300,12 @@ void main_a()
measure_trigger_delay = 0;
}
if ( state == STATE_IDLE && voltage < 6.4){
lowbatt(false);
}else if( voltage < 6){
lowbatt(true);
}
//delay(5);
}
}
......@@ -370,6 +377,31 @@ void task_temp()
dirs_idx = next;
power = int(max(0.0, min(POWER_MAX, P * (setpoint - temp) + I * (integ / 100) + D * (10 * dirs_sum))));
}
analogWrite(5, power);
analogWrite(HEATER, power);
}
void lowbatt( boolean disablescreen )
{
digitalWrite(HEATER, LOW); // disable heater
digitalWrite(UV_LED, LOW); // disable illimunator
digitalWrite(7, LOW); //Blue Led
digitalWrite(8, LOW); // Button
digitalWrite(9, LOW); // Green Led
u8g2.firstPage();
do
{
u8g2.setDrawColor(1);
u8g2.setFont(FONT);
u8g2.drawStr(14, 39, "LOW BATT");
} while (u8g2.nextPage());
MCUSR = 0;
wdt_disable();
cli();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
while(1)sleep_mode();
}
\ No newline at end of file
......@@ -3,5 +3,6 @@
void main_a();
void task_temp();
void lowbatt( boolean disablescreen );
#endif
\ No newline at end of file
......@@ -13,6 +13,7 @@
#define FAN 16
#define UV_LED 6
#define HEATER 5
// led plugged into fan temporarily
//#define UV_LED 16
......@@ -25,6 +26,6 @@
#define POWER_MAX 50.0
#define FONT u8g2_font_helvR14_tr
#define VERSION 25
#define VERSION 26
#endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment