// https://www.youtube.com/watch?v=tVwQ8cb8HbQ // ATtyny85 chirping and sleep int analogPin = 3; ///////////// #include void setup() { pinMode(PB4, OUTPUT); //BEEP pinMode(PB3, INPUT); // ANALOG INPUT FOR RANDOM // randomSeed(analogRead(0)); randomSeed(analogRead(PB3)); setup_watchdog(7); //8 seconds } ///////////// void loop() { sleep(); } ///////////// void sleep() { digitalWrite (PB4,LOW); ADCSRA &= ~_BV(ADEN); // ADC off set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); // Sets the Sleep Enable bit in the MCUCR Register (SE BIT) sei(); // Enable interrupts sleep_cpu(); // sleep // cli(); // Disable interrupts // sleep_disable(); // Clear SE bit // sei(); // Enable interrupts } // Watchdog Interrupt Service / is executed when watchdog timed out ISR(WDT_vect) { cli(); // Disable interrupts sleep_disable(); // Clear SE bit sei(); // BEGIN: this is where sound is generated tweet(2, 1); //chirp(); // END: this is where sound is generated // setup_watchdog(random(5)+4); // add by tez // randomSeed(analogRead(analogPin)); setup_watchdog(random(5)+random(3) + 2); // add by tez } // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; int ww; if (ii > 9 ) ii=9; bb=ii & 7; if (ii > 7) bb|= (1<<5); bb|= (1<300) delayMicroseconds(i); //else delayMicroseconds ((400-i)); digitalWrite (PB4,LOW); delayMicroseconds(i); //if(i>300) delayMicroseconds(i); //else delayMicroseconds ((400-i)); //delayMicroseconds (i); } } delay(chirp_delay); chirp_delay=chirp_delay*0.75; } } ///////////// void lowChirp(int intensity, int chirpsNumber){ int i; int x; int reptimes = random(1, 2); //random(100, 300); for(int veces=0; veces<=chirpsNumber; veces++){ for (i=0; i80; i--) for (i=i_hi; i>i_lo; i--) { int xrep = random(1,9); for ( x=0; x0; i--) { for (int x=0; x