SOLVED! After switching to SLEEP_MODE_PWR_DOWN, Teensy now draws only 18uA!
Dear Paul and friends,
I'm trying to lower the current of my Teensy++2.0 at 5V in SLEEP_MODE_PWR_SAVE following the insturction on http://www.pjrc.com/teensy/low_power.html, and the lowest I could get is 1.3mA while the lowest possible is 0.04mA.
Below is the code I'm using. I wonder if I'm missing something obvious.
Thanks so much for your help!
Dear Paul and friends,
I'm trying to lower the current of my Teensy++2.0 at 5V in SLEEP_MODE_PWR_SAVE following the insturction on http://www.pjrc.com/teensy/low_power.html, and the lowest I could get is 1.3mA while the lowest possible is 0.04mA.
Below is the code I'm using. I wonder if I'm missing something obvious.
Thanks so much for your help!
Code:
const int ledPin = 6;
const int wakeupPin = 2;
void wakeUp()
{
Serial.println("in wakeUp()");
Serial.println("Turn on");
digitalWrite(ledPin, HIGH);
delay(5000);
Serial.println("Turn off");
digitalWrite(ledPin, LOW);
}
volatile int ledVal;
void setup()
{
Serial.begin(38400);
pinMode(ledPin, OUTPUT);
pinMode(wakeupPin, INPUT_PULLUP);
pinMode(PIN_D1, OUTPUT);
pinMode(PIN_D3, OUTPUT);
pinMode(PIN_D4, OUTPUT);
pinMode(PIN_D5, OUTPUT);
pinMode(PIN_D6, OUTPUT);
pinMode(PIN_D7, OUTPUT);
pinMode(PIN_E0, OUTPUT);
pinMode(PIN_E1, OUTPUT);
pinMode(PIN_E4, OUTPUT);
pinMode(PIN_E5, OUTPUT);
pinMode(PIN_E6, OUTPUT);
pinMode(PIN_E7, OUTPUT);
pinMode(PIN_F0, OUTPUT);
pinMode(PIN_F1, OUTPUT);
pinMode(PIN_F2, OUTPUT);
pinMode(PIN_F3, OUTPUT);
pinMode(PIN_F4, OUTPUT);
pinMode(PIN_F5, OUTPUT);
pinMode(PIN_F6, OUTPUT);
pinMode(PIN_F7, OUTPUT);
pinMode(PIN_C0, OUTPUT);
pinMode(PIN_C1, OUTPUT);
pinMode(PIN_C2, OUTPUT);
pinMode(PIN_C3, OUTPUT);
pinMode(PIN_C4, OUTPUT);
pinMode(PIN_C5, OUTPUT);
pinMode(PIN_C6, OUTPUT);
pinMode(PIN_C7, OUTPUT);
pinMode(PIN_B0, OUTPUT);
pinMode(PIN_B1, OUTPUT);
pinMode(PIN_B2, OUTPUT);
pinMode(PIN_B3, OUTPUT);
pinMode(PIN_B4, OUTPUT);
pinMode(PIN_B5, OUTPUT);
pinMode(PIN_B6, OUTPUT);
pinMode(PIN_B7, OUTPUT);
attachInterrupt(wakeupPin, wakeUp, FALLING); //LOW,RISING, FALLING,CHANGE
ledVal=0;
digitalWrite(ledPin, ledVal);
Serial.println("done init");
}
#include <avr/sleep.h>
void powerdown() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
Serial.println("bye world!");
delay(1000);
Serial.end(); // shut off USB
ADCSRA = 0; // shut off ADC
set_sleep_mode(SLEEP_MODE_PWR_SAVE);
noInterrupts();
sleep_enable();
interrupts();
sleep_cpu();
sleep_disable();
}
void loop()
{
powerdown();
}
Last edited: