Digital Calculator (2024)

Overview

This project involved the design and implementation of a digital calculator running on Kinetis FRDM-K20D50M microcontroller and a Nokia 6100 LCD display for the GUI. The calculator was designed to perform basic arithmetic operations, with a focus on user experience, efficient circuitry, and low power consumption. My primary role in this three-member project was to develop the menu system and the graphical user interface for the calculator.

Downview of the Smart Home Fan

Demo of the calculator and inputs

The project used a 4x4 matrix keypad for user input, which also came with a joystick for menu navigation and command execution, and an external push button for additional functionalities such as backspacing and on/off control. The microcontroller is an ARM Cortex M4 processor and incorporates various peripherals, including the Nokia LCD display, a buzzer for audio feedback, and a SysTick timer for precise timing control.


Assembled Smart Home Fan Fan Circuit Design

Right: Nokia 6100 pinout , Left: LCD Display Orientation


I focused on creating a user-friendly interface that was intuitive and easy to navigate on the Nokia LCD. I used powerful features of the C language such as functions, macros and switch cases to navigate different parts of the menu structure. I also worked closely with the team member responsible for the keypad inputs for easier integration of the hardware and software components. Below is an example of a function that takes in Joystick inputs.


Circuit Diagram of the Smart Home Fan

Circuit Diagram of the Smart Home Fan

Flowchart for Switch-Case (joystick) and its code implementation.

The final product was a functional digital calculator with a user-friendly interface, robust input handling, and efficient power management. The project provided me with valuable experience in embedded systems development, reading datasheets, GUI design, and teamwork. It also allowed me to apply my knowledge of embedded C programming.

Digital Calculator in action


For more details, you can view the full project on GitHub or download the project report:

Project information

  • Category Mechatronic System Design
  • Client Swinburne University of Technology
  • Project date September 2023 - November 2023
  • Project URL www.example.com
  • Visit Website