Temporizzatore 100 minuti

Nato da una richiesta per un timer con attivazioni nell’ordine dell’ora, questo progetto è in pratica un comune temporizzatore per tempi fino a 100 minuti.

L’impostazione del tempo avviene tramite una tastiera tipo telefonico a 12 tasti.

Un display a 4 cifre indica i minuti e secondi che si decrementeranno fino ad arrivare a zero.

La partenza avviene con il tasto “asterisco” . Il tasto “cancelletto” mette in pausa,  blocca il conteggio e disattiva il relè.

Con “asterisco” si riprende il conteggio, in alternativa si reimposta un tempo nuovo.

Utilizzato per controllare una lavorazione, questo temporizzatore è risultato utile anche per altre applicazioni.

 A parte l’Arduino (vanno bene praticamente quasi tutti i modelli) ho utilizzato un display a 4 cifre che utilizza un TM1637 (controller display) e una tastiera a membrana a 12 tasti. Questi prodotti sono facilmente rintracciabili nel WEB a pochi euro.

Non c’è molto altro da dire quindi accludo librerie, schemi elettrici e sketch per la costruzione.

Le librerie sono da scaricare e scompattare nella sotto cartella libraries di Arduino direttamente nel vostro computer.

Per coloro che volessero entrare nel merito, vorrei far notare come il conteggio del tempo non avvenga con l’aiuto delle funzioni millis() o più comunemente incrementando una variabile e interrogandone e comparandone il contenuto. In questo sketch viene utilizzata una libreria che lavora direttamente sull’interrupt di sistema. In pratica viene eseguita la funzione TimingISR() al raggiungimento dei microsecondi impostati nel rigo 57 dove viene inizializzato il contatore Timer1. Questo sistema lascia libero il codice nel ciclo void loop().

 

 

timer

Allegati

  • Franco

    Buongiorno, complimenti per l’articolo. Ho effettuato una prova, copia incolla, e vengono rilevati i seguenti errori:

    This report would have more information with

    “Show verbose output during compilation”

    enabled in File > Preferences.

    Arduino: 1.0.6 (Windows NT (unknown)), Board: “Arduino Uno”

    sketch_jan28a.ino:18:20: error: TM1637.h: No such file or directory

    sketch_jan28a:34: error: ‘TM1637’ does not name a type

    sketch_jan28a.ino: In function ‘void setup()’:

    sketch_jan28a:55: error: ‘tm1637’ was not declared in this scope

    sketch_jan28a:55: error: ‘BRIGHT_TYPICAL’ was not declared in this scope

    sketch_jan28a:57: error: ‘Timer1’ was not declared in this scope

    sketch_jan28a.ino: In function ‘void loop()’:

    sketch_jan28a:96: error: ‘tm1637’ was not declared in this scope

    sketch_jan28a:96: error: ‘POINT_ON’ was not declared in this scope

    sketch_jan28a:123: error: ‘tm1637’ was not declared in this scope

    sketch_jan28a.ino: In function ‘void TimeUpdate()’:

    sketch_jan28a:185: error: ‘tm1637’ was not declared in this scope

    sketch_jan28a:185: error: ‘POINT_ON’ was not declared in this scope

    sketch_jan28a:186: error: ‘tm1637’ was not declared in this scope

    sketch_jan28a:186: error: ‘POINT_OFF’ was not declared in this scope

    sketch_jan28a.ino: In function ‘void stopwatchStart()’:

    sketch_jan28a:196: error: ‘Timer1’ was not declared in this scope

    Qualcuna ha idea del problema.

    Grazie Ciao

    • Enrico Testori

      Salve Franco,
      ha scaricato e incluso correttamente nel progetto le librerie che trova in fondo all’articolo?

      • franco

        Sono un neofita e non sapevo delle librerie. Mi avete aperto un mondo….
        Grazie 1000