Hi,
Been dooing my first real arduino project and I reached a standstill: To save power, I implemented a sleep mode, but I'm using 14 to 17 mA awake and up to 50 mA in sleep mode!! I've tried every thing I can think of, but can't figure why this is happening. All I know is that this sleep mode code saves power in a test sketch with nothing else, but when I implement it on my sketch, it totally fails and uses up even more power.
Please, help!
Here's my code:
(The Sleep Mode code is in bold)
#include <avr/sleep.h>
#include <avr/wdt.h>
#include <MenuBackend.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#include <EEPROM.h>
#include "RTClib.h"
#define lenght 16.0
double percent=100.0;
unsigned char b;
unsigned int peace;
byte p1[8] = {
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10,
0x10};
byte p2[8] = {
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18};
byte p3[8] = {
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C,
0x1C};
byte p4[8] = {
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E,
0x1E};
byte p5[8] = {
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F,
0x1F};
//****************************************************************
[b]void wake ()
{
sleep_disable();
} [/b]
RTC_DS1307 RTC;
int address = 0;
int longitude = 0;
int const5 = 5;
byte datahora;
byte value;
byte value1;
byte value2;
int myClock = 0;
int valor = 0;
int morada = 0;
int boLean = 0;
int powerCounter;
int powerDay;
int powerHour;
int powerTime;
int pwDay;
int pwHour;
int pwMinute;
int ANO = -1;
int MES = 0;
int DIA = 0;
int HORA = -1;
int MINUTO = -1;
int temp = 0;
int sensorMinute;
byte addressMinute;
float vout = 0.0;
const int motor1Pin = 0;
const int motor2Pin = 1;
const int enablePin = 12;
const int sensorPin = 2;
int sensorState = 0;
const int buttonPinLeft = 9; // pin for the Up button
const int buttonPinRight = 11; // pin for the Down button
const int buttonPinEsc = 10; // pin for the Esc button
const int buttonPinEnter = 3; // pin for the Enter button
int lastButtonPushed = 0;
int lastButtonEnterState = LOW;
int lastButtonEscState = LOW;
int lastButtonLeftState = LOW;
int lastButtonRightState = LOW;
long lastEnterDebounceTime = 0;
long lastEscDebounceTime = 0;
long lastLeftDebounceTime = 0;
long lastRightDebounceTime = 0;
long debounceDelay = 100;
LiquidCrystal lcd(7, 6, 5, 4, 8, 13);
//Menu variables
MenuBackend menu = MenuBackend(menuUsed,menuChanged);
//initialize menuitems
MenuItem menuItem1 = MenuItem("Item1");
MenuItem menuItem1SubItem1 = MenuItem("Item1SubItem1");
MenuItem menuItem1SubItem1GO = MenuItem("Item1SubItem1GO");
MenuItem menuItem1SubItem2 = MenuItem("Item1SubItem2");
MenuItem menuItem1SubItem2GO = MenuItem("Item1SubItem2GO");
MenuItem menuItem2 = MenuItem("Item2");
MenuItem menuItem2SubItem1 = MenuItem("Item2SubItem1");
MenuItem menuItem2SubItem1GO = MenuItem("Item2SubItem1GO");
MenuItem menuItem2SubItem2 = MenuItem("Item2SubItem2");
MenuItem menuItem2SubItem2HORA = MenuItem("Item2SubItem2HORA");
MenuItem menuItem2SubItem2MINUTO = MenuItem("Item2SubItem2MINUTO");
MenuItem menuItem2SubItem2EXIT = MenuItem("Item2SubItem2EXIT");
MenuItem menuItem2SubItem3 = MenuItem("Item2SubItem3");
MenuItem menuItem2SubItem3GO = MenuItem("Item2SubItem3GO");
MenuItem menuItem2SubItem4 = MenuItem("Item2SubItem4");
MenuItem menuItem2SubItem4GO = MenuItem("Item2SubItem4GO");
MenuItem menuItem2SubItem4EXIT = MenuItem("Item2SubItem4EXIT");
MenuItem menuItem3 = MenuItem("Item3");
MenuItem menuItemDIA = MenuItem("ItemDIA");
MenuItem menuItemMES = MenuItem("ItemMES");
MenuItem menuItemANO = MenuItem("ItemANO");
MenuItem menuItemHORA = MenuItem("ItemHORA");
MenuItem menuItemMINUTO = MenuItem("ItemMINUTO");
MenuItem menuItemEXIT = MenuItem("ItemEXIT");
MenuItem menuItem4 = MenuItem("Item4");
MenuItem menuItem4GO = MenuItem("Item4GO");
//****************************************************************
[b]ISR (WDT_vect)
{
wdt_disable();
} [/b]
(code tags added by moderator)