Go Down

Topic: non riesco ad utilizzare la libreria Timer.h (Read 625 times) previous topic - next topic

sdinza

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:

Code: [Select]

#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.

nid69ita

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.
my name is IGOR, not AIGOR

pablos

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

ciao
L'esperienza è il tipo di insegnante più difficile ....
Prima ti fa l'esame e poi ti spiega la lezione.

sdinza

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.

Code: [Select]
    #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));
    }

sdinza

HO CAPITO !!!!!!!!!!!!!!  :) ^_^ !!  L'istruzione c he richiama la libreria timer è :

Code: [Select]
t.update();


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

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy