Menu
Microbots
0
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • Modules & Parts
    • Tools & Gears
    • Robots & Displays
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Sign in
  • English
  • Your Cart is Empty
Microbots
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • Modules & Parts
    • Tools & Gears
    • Robots & Displays
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Language

  • 0 0

CodeCell: Making a Step Counter

CodeCell Step Counter

CodeCell includes a built-in BNO085 motion sensor capable of detecting and counting steps using onboard activity algorithms. In this example, you’ll learn how to use the CodeCell Library to read step counts and display them on an OLED screen, turning your CodeCell into a tiny pedometer or wearable fitness tracker.

How Steps Are Counted

The BNO085 fuses data from its accelerometer, gyroscope, and magnetometer to recognize walking or running patterns and generate accurate step counts. You can read the total step count at any time with a single function:

uint16_t steps = myCodeCell.Motion_StepCounterRead();

To enable this mode, initialize motion sensing with:

myCodeCell.Init(MOTION_STEP_COUNTER);

Once initialized, CodeCell continuously tracks steps internally and updates the count whenever you call the function above.

Example – Display Step Count on OLED

This example reads the live step count and displays it on a small OLED screen (SSD1306). Connect your OLED’s GND, 3V3, SDA, and SCL pins to the lower side of CodeCell.


#include <CodeCell.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

CodeCell myCodeCell;

/* OLED Display Configuration */
#define SCREEN_WIDTH 64
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

uint16_t step_counter = 0;

void setup() {
  Serial.begin(115200);
  myCodeCell.Init(MOTION_STEP_COUNTER);  // Enable step counter mode

  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println("Display Error");
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.display();
  delay(2000);
}

void loop() {
  if (myCodeCell.Run(10)) {              // Run loop at 10 Hz
    step_counter = myCodeCell.Motion_StepCounterRead();  // Read step count

    display.clearDisplay();
    display.setCursor(5, 16);
    display.print(F("Steps: "));
    display.print(step_counter);
    display.display();
  }
}

Customization Tips

  • Add goals: Set daily targets or use LED feedback when reaching milestones.
  • Track activity time: Combine with CodeCell’s MOTION_ACTIVITY mode for walking or running detection.
  • Store data: Log steps to EEPROM or send them over Bluetooth for wearable applications.

 

  • Share:

Follow

Github

  • About
  • Software
  • Education
  • Contact
  • FAQs
  • Terms
  • Refund Policy
  • Privacy Policy

Join our Community ~ Be the first to know about new products and get exciting deals!

© 2025 Microbots.