// ATtiny85 sleep mode, wake on pin change interrupt demo
// Author: Nick Gammon
// Date: 12 October 2013
// ATMEL ATTINY 25/45/85 / ARDUINO
//
// +-\/-+
// Ain0 (D 5) PB5 1| |8 Vcc
// Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1
// Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1
// GND 4| |5 PB0 (D 0) pwm0
// +----+
#include <avr/sleep.h> // Sleep Modes
#include <avr/power.h>
const byte LED1 = 3; // pin 2
const byte LED2 = 1; // pin 2
const byte SWITCH = 4; // pin 3 / PCINT4
void setup ()
{
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (SWITCH, INPUT);
// digitalWrite (SWITCH, HIGH); // internal pull-up
} // end of setup
void loop ()
{
if(digitalRead(SWITCH) == 1){
digitalWrite (LED1, HIGH);
for(int i = 0;i<40;i++){
delay(150);
if(digitalRead(SWITCH) == 0) break;
}
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
for(int i = 0;i<20;i++){
delay(150);
if(digitalRead(SWITCH) == 0) break;
}
digitalWrite (LED2, LOW);
}
} // end of loop