Adrian Vela

Adrian Vela

Mechanical engineering student at UTRGV, based in Rio Grande Valley, Texas.

Explore my projects
Arduino interval timer on a breadboard in a dark room, with two of its six red LEDs lit and jumper wires arching over the board.
10-minute interval timer, built with Arduino.

Background

I'm a mechanical engineering student at the University of Texas Rio Grande Valley. Right now that means coursework, picking up MATLAB, tutoring math, and building software on the side to get more comfortable writing code that solves real problems.

Current focus

  • Coursework toward a mechanical engineering degree at UTRGV
  • Learning MATLAB for engineering analysis
  • Building foundational C++ experience
  • Tutoring calculus and precalculus through schoolhouse.world (since May 2026)
  • Developing Lamplight Planner using AI coding tools
  • Member of SARE UTRGV

Education

B.S., Mechanical Engineering

The University of Texas Rio Grande Valley (UTRGV)

In progress, current

Skills

MATLABLearning
Currently learning MATLAB for engineering coursework and analysis.
C++Foundational
Foundational experience. Comfortable with core syntax and basic programs, still building depth.
Math tutoring (calculus & precalculus)Comfortable
Tutoring calculus and precalculus through schoolhouse.world since May 2026.
AI-assisted software developmentFoundational
Building Lamplight Planner using AI coding tools and learning software development practices hands-on.

Projects

10-minute interval timer

Working prototype

An Arduino timer that lights one of six LEDs every 10 minutes, prototyped on a breadboard.

  • Based on the Digital Hourglass project from the Arduino Starter Kit, then modified.
  • Uses millis() instead of delay() for timing, so the board keeps reading the tilt sensor while it counts.
  • When all six LEDs are lit (one hour), the row clears and the count starts over.
  • Tilting the board resets the timer.

What I tried after

  • Reprogrammed the LEDs to flash in the rhythm of the Jingle Bells chorus.
  • Changed the time periods to see how the timer behaved at different intervals.
  • Reworked the reset so it runs without the tilt sensor, making the timer fully automatic.

Arduino, C++, Breadboard prototyping

View the timer code

interval_timer.ino

const int switchPin = 8;
unsigned long previousTime = 0;
int switchState = 0;
int prevSwitchState = 0;
int led = 2;
unsigned long interval = 600000; // 10 minutes per LED

void setup() {
  for (int x = 2; x < 8; x++) {
    pinMode(x, OUTPUT);
  }
  pinMode(switchPin, INPUT);
}

void loop() {
  unsigned long currentTime = millis();

  // Every interval, light the next LED.
  if (currentTime - previousTime > interval) {
    previousTime = currentTime;
    digitalWrite(led, HIGH);
    led++;

    // After the sixth LED, clear the row and start over.
    if (led == 8) {
      delay(1000);
      for (int x = 2; x < 8; x++) {
        digitalWrite(x, LOW);
      }
      led = 2;
      previousTime = millis();
    }
  }

  // Tilting the board (tilt sensor on pin 8) resets the timer.
  switchState = digitalRead(switchPin);
  if (switchState != prevSwitchState) {
    for (int x = 2; x < 8; x++) {
      digitalWrite(x, LOW);
    }
    led = 2;
    previousTime = currentTime;
  }
  prevSwitchState = switchState;
}
View the Jingle Bells code

jingle_bells_lights.ino

const int beat = 350;  // Smaller = faster

// Relative note lengths for the chorus.
// 0 marks a pause between phrases.
const int rhythm[] = {
  1, 1, 2,  1, 1, 2,  1, 1, 1, 1, 4, 0,
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0,
  1, 1, 2,  1, 1, 2,  1, 1, 1, 1, 4, 0,
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4
};

void setLights(int state) {
  for (int pin = 2; pin <= 7; pin++) {
    digitalWrite(pin, state);
  }
}

void setup() {
  for (int pin = 2; pin <= 7; pin++) {
    pinMode(pin, OUTPUT);
  }
}

void loop() {
  int count = sizeof(rhythm) / sizeof(rhythm[0]);

  for (int i = 0; i < count; i++) {
    if (rhythm[i] == 0) {
      setLights(LOW);
      delay(beat);
    } else {
      int duration = rhythm[i] * beat;

      setLights(HIGH);
      delay(duration * 3 / 4);

      setLights(LOW);
      delay(duration / 4);
    }
  }

  delay(1500);  // Pause before repeating
}

Lamplight Planner

In active development

A personal planning application being developed with the help of AI coding tools.

  • Built primarily as a way to learn real-world software development by shipping something and iterating on it.
  • Actively developed, so features and structure are still changing.

AI-assisted development

SARE UTRGV

Member, details coming later

Member of SARE UTRGV.

  • Joined the organization; specific subsystem contributions are not yet documented here.
  • This entry will be updated once concrete work can be described accurately.

Flagship engineering project

Planned for a later phase

A more detailed engineering project showcase is planned for a later phase of this site.

  • Intentionally left out for now rather than published before it's ready.

Experience

Math Tutor (Calculus & Precalculus) at schoolhouse.world

Since May 2026

Volunteer tutor helping students work through calculus and precalculus concepts on the schoolhouse.world platform.

Member at SARE UTRGV

Current

Joined SARE UTRGV. Specific subsystem contributions are not yet documented.

Prefer exploring by typing? and try help.