Programming a Button

Embedded Systems
Description
What it means to program a real-life button
Project Overview
In this project, I explore the meaning of programming a physical button and what it means to think like a hardware programmer. This project was the perfect primer into striking a difference between software and hardware programming.

C

Circuit design

Cost optimization

avr-libc

I took my first embedded systems course for my electrical engineering program during the Fall semester of ’21. As part of the first lab assignment, we were tasked to create a door lock system that would accept a sequence of button presses to check if the user is authorized to enter or not. The door lock had three buttons and we were free to pick which element of the sequence corresponded to which button.

I don't jump straight into the implementation of the entire system in this first project. Instead, there’s a very important shift in mindset that’s needed in order to approach a physical pushbutton that has some functionality attached to it. And if you don’t understand the underlying mechanics of how one button’s supposed to work, you can forget about ever implementing three.

The full, in-depth article I wrote on Medium goes over the finer details of this project. Please do check it out!