skip navigational linksPJRC
Shopping Cart Download Website
Home Products Teensy Blog Forum
You are here: Teensy Teensyduino Libraries Metro

PJRC Store
Teensy 4.1, $26.85
Teensy 4.0, $19.95
Teensy 3.6, $29.25
Teensy 3.5, $24.25
Teensy 3.2, $19.80
Teensy LC, $11.65
Teensy 2.0, $16.00
Main Page
Getting Started
How-To Tips
Code Library

Metro Library

Metro, by Thomas Ouellet Fredericks, makes it easy to schedule events to occur at regular intervals. You can creates as many Metro objects as you need, each for its own interval, and check them in your loop() function.

Download: Included with the Teensyduino Installer

Hardware Requirements

None. Metro uses the built-in timer.

Basic Usage

Metro myname = Metro(milliseconds);

Create a Metro object that schedules every "milliseconds". You can create as many Metro objects as you need, each with its own name and separate interval.


Check if the interval has elapsed. Returns true if it has, false if it has not (yet).


Change to a new interval setting.


Reset the interval.

Example Program

The example program, available from File > Examples > Metro > serialInterval uses Metro to schedule reading the analog inputs 4 times per second.

// This example sends a Serial message every 250 milliseconds

#include <Metro.h> // Include the Metro library

Metro serialMetro = Metro(250);  // Instantiate an instance

void setup() {
  Serial.begin(115200); // Start the Serial communication

void loop() {

  if (serialMetro.check() == 1) { // check if the metro has passed it's interval .
  // Output all the analog readings seperated by a space character
    for (int i = 0; i < 6; i++ ) {
      Serial.print (analogRead( i) );
    // Terminate message with a linefeed and a carriage return


Detailed information can be found at the official Metro library page.