non riesco ad utilizzare la libreria Timer.h

Buonasera, scrivo per la prima volta su qesto forum perchè proprio ieri mi è arrivata la mia prima Arduini UNO R3.
Ho scaricato l'IDE e come primo esempio ho fatto il Blink, poi volendo fare qualchwe atra prova ma non avendo altro hadware pensavo di prendere confidenza col Timer e a tale scopo ho scritto questo codice:

#include <Event.h>

#include <timer.h>

Timer t;

int luce = 13;





void setup () {

  pinMode (luce, OUTPUT);

  t.every (2000,aspetta);
  
  
}

  
  void loop(){
    
    digitalWrite (luce,HIGH);
    delay (250);
    digitalWrite (luce,LOW);
    delay (250);
    
    
  }
  
  void aspetta (){
  delay (2000);
}

speravo funzionasse ma dopo aver provato diverse combinazioni non ne vuole sapere! In pratica vorrei che il led lampeggiasse e ogni 2 secondi facesse una pausa di 2 secondi. So che si può fare in altri modi ma a me interesserebbe imparare ad usare la libreria Timer.h . Qualcuno mi potrbbe aiutare a capire dove sbaglio ? Grazie, Federico.

Non posso provarlo su Arduino adesso.
In che senso non funziona? Non rispetta i tempi, non si blocca mai per 2 secondi?

A naso, se non dico cavolate, i vali delay() bloccano i timer, credo.

Nel loop non c'è nessuna istruzione che richiama le funzioni della lib timer.h
http://playground.arduino.cc/code/timer

ciao

Non si ferma mai per i due secondi che ho impostato, illed lampeggia e non si ferma mai.

Nel loop ci dovrebbe essre la funzione "aspetta" che è scritta per ultima, ho seguito l'esempio tre che ai miei occhi inesperti sebra uguale al mio...nell'esempio la funzione da richiamare si chiama -TakeReading- mentre nel mio l'ho chiamata -aspetta-. Nell'esempio questa funzione è dichiarata in fondo e fuori dal loop, come la mia.....no riesco a capire.

    #include "Timer.h"
     
     
    Timer t;
    int pin = 13;
     
     
    void setup()
    {
      Serial.begin(9600);
      pinMode(pin, OUTPUT);
      t.oscillate(pin, 100, LOW);
      t.every(1000, takeReading);
    }
     
     
    void loop()
    {
      t.update();
    }
     
     
    void takeReading()
    {
      Serial.println(analogRead(0));
    }

HO CAPITO !!!!!!!!!!!!!! :slight_smile: :slight_smile: !! L'istruzione c he richiama la libreria timer è :

t.update();

ora funziona :slight_smile: provo altri codici :slight_smile: Grazie a tutti !!