Live robotics updates
How humanoids learn to read the roomThe Robot ReportGMSL and the growing ecosystem around robotic vision systemsThe Robot ReportNūMove surpasses 20 semi-automatic mixed palletizer deploymentsRobotics & Automation NewsDARPA prepares robotic satellite servicing mission for launch in 2026Robotics & Automation NewsRedwire delivers lunar robotic arm prototype to European Space AgencyRobotics & Automation NewsAutoFlight advances heavy-lift eVTOL program with mixed-fleet formation flightRobotics & Automation NewsHow to Buy Bitcoin (BTC) with Euros (EUR): A Beginner’s GuideRobotics & Automation NewsXELA Robotics to show tactile sensing at the 2026 Robotics Summit & ExpoThe Robot ReportAllient to demonstrate advanced motion control systems at 2026 Robotics Summit & ExpoThe Robot ReportIntBot and Certis Group partner to scale physical AI for enterprises across SingaporeThe Robot ReportHow humanoids learn to read the roomThe Robot ReportGMSL and the growing ecosystem around robotic vision systemsThe Robot ReportNūMove surpasses 20 semi-automatic mixed palletizer deploymentsRobotics & Automation NewsDARPA prepares robotic satellite servicing mission for launch in 2026Robotics & Automation NewsRedwire delivers lunar robotic arm prototype to European Space AgencyRobotics & Automation NewsAutoFlight advances heavy-lift eVTOL program with mixed-fleet formation flightRobotics & Automation NewsHow to Buy Bitcoin (BTC) with Euros (EUR): A Beginner’s GuideRobotics & Automation NewsXELA Robotics to show tactile sensing at the 2026 Robotics Summit & ExpoThe Robot ReportAllient to demonstrate advanced motion control systems at 2026 Robotics Summit & ExpoThe Robot ReportIntBot and Certis Group partner to scale physical AI for enterprises across SingaporeThe Robot Report
View all
Back
Arduino sample guide

roboda-sample-0062 - Interrupt Counter 03

Practice this Arduino feature with a verified Roboda sketch.

Step-by-step build

Count encoder ticks and fast events with external interrupts.

1

Read the constants at the top of the sketch.

2

Wire the pins exactly as listed in the pin map.

3

Upload or compile once before changing values.

4

Change one value at a time and watch Serial Monitor or the output device.

Important code parts

These are the sections learners should understand before changing the sketch.

setup()

Runs once. Use it for pinMode(), Serial.begin(), library setup, and device initialization.

loop()

Runs repeatedly. Put the behavior you want the robot or circuit to keep doing here.

constants

Named pins and thresholds make the sketch easier to adapt to another board or wiring layout.

Pin mapping for this sample

Use this first table for the exact sample wiring, then use the board-family table when moving the sketch to another Arduino board.

Code nameSample pinModeConnect toNote
interrupt inputD2INPUT_PULLUP / interruptEncoder channel, pulse sensor, or button to GNDUse an interrupt-capable pin on your selected board.

Arduino board pin reference

The code names stay the same; only the physical board pins may change by family. Always confirm with the board silkscreen when using clones or special variants.

Board familyDigitalPWMAnalogI2CSPIInterrupt
Uno / Nano / Pro MiniDefault target for these samples.D0-D13D3, D5, D6, D9, D10, D11A0-A5A4 SDA, A5 SCLD10 SS, D11 MOSI, D12 MISO, D13 SCK / ICSPD2, D3
Mega 2560Best for many sensors or multiple serial ports.D0-D53D2-D13, D44-D46A0-A15D20 SDA, D21 SCLD50 MISO, D51 MOSI, D52 SCK, D53 SS / ICSPD2, D3, D18, D19, D20, D21
Leonardo / MicroUSB serial can behave differently because the main MCU handles USB.D0-D13D3, D5, D6, D9, D10, D11, D13A0-A5 plus extra analog-capable pins by boardD2 SDA, D3 SCLICSP headerD0, D1, D2, D3, D7
Nano Every / Uno WiFi Rev2Check the board package pinout for exact PWM labels.D0-D13PWM-marked digital pinsA0-A7 on Nano Every, A0-A5 on Uno WiFi Rev2SDA/SCL marked pinsICSP/SPI marked pinsUse pins supported by digitalPinToInterrupt()
Uno R4 Minima / Uno R4 WiFi5V logic board; still confirm shield/library compatibility.D0-D13PWM-marked digital pinsA0-A5SDA/SCL marked pinsICSP/SPI marked pinsUse digitalPinToInterrupt(pin)
Due3.3V logic only; protect pins from 5V sensors.D0-D53PWM-marked digital pinsA0-A11SDA/SCL and SDA1/SCL1SPI headerUse digitalPinToInterrupt(pin)
MKR / Nano 33 family3.3V logic. Some AVR-only libraries may need alternatives.Board-marked digital pinsPWM-marked pinsBoard-marked analog pinsSDA/SCL marked pinsSPI marked pinsUse digitalPinToInterrupt(pin)

Full sample code

/*
  Roboda verified Arduino sample 0062
  Feature: Interrupt Counter
  Generated for online build, classroom practice, and hardware upload testing.
*/

volatile unsigned long ticks = 0;

void onPulse() {
  ticks++;
}

void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(2), onPulse, FALLING);
}

void loop() {
  noInterrupts();
  unsigned long copy = ticks;
  interrupts();
  Serial.println(copy);
  delay(150);
}

Teacher notes

  • Compile the sample before changing wiring or constants.
  • When changing boards, keep the code names the same and update only the pin number constants.
  • For 3.3V boards, level-shift 5V sensors and modules before connecting signal pins.
  • Use the first compiler error and the Roboda diagnostic suggestion before fixing later warnings.
Roboda support Leave a message

New messages appear in the Finite LiveChat Ops Android app.