A feature-rich scientific calculator implementation for Arduino UNO. This project implements a calculator with basic arithmetic operations, trigonometric functions, and logarithmic calculations using an Arduino UNO microcontroller, LCD display, and a keypad interface.
- 
Basic arithmetic operations: - Addition (+)
- Subtraction (-)
- Multiplication (*)
- Division (/)
- Exponentiation (^)
 
- 
Scientific functions: - Sine (sin)
- Cosine (cos)
- Tangent (tan)
- Natural logarithm (ln)
 
- 
Additional features: - Decimal point support
- Negative number support
- Backspace functionality
- Clear function
- Shift key for accessing scientific functions
- Real-time display on LCD
 
- Arduino UNO board
- 16x2 LCD Display (HD44780 compatible)
- Matrix Keypad (5x4)
- Connecting wires
- Power supply
- RS: PB0
- E: PB1
- D4: PB2
- D5: PB3
- D6: PB4
- D7: PB5
- Rows: PC0-PC3 (outputs)
- Columns: PD3-PD7 (inputs with pull-up)
| 0 | . | ^ | s | = |
| 1 | 2 | 3 | + | - |
| 4 | 5 | 6 | * | / |
| 7 | 8 | 9 | b | c |
Where:
- 's' is the shift key for accessing scientific functions
- 'b' is backspace
- 'c' is clear
Hardware_Calculator/
├── Calculator Codes/        # Main calculator implementation
│   ├── Keypad.h            # Keypad interface handling
│   ├── LCD.h              # LCD display functions
│   └── main.c             # Main program logic
├── LCD Display Control/    # LCD testing and control
└── Test/                  # Test implementations
- 
Power on the calculator 
- 
For basic operations: - Enter first number
- Press operation key (+, -, *, /, ^)
- Enter second number
- Press = to see result
 
- 
For scientific functions: - Press 's' (shift)
- Press corresponding number key:
- 1: sin
- 2: cos
- 3: tan
- 4: ln
 
- Enter the value
- Press = to see result
 
- 
Additional functions: - 'c': Clear display and memory
- 'b': Backspace (delete last digit)
- '-' as first input: Negative number
 
- Clone this repository
- Connect the hardware components according to the pin configuration
- Compile and upload the code using Arduino IDE or avr-gcc
- Refer to the Makefile in each directory for specific build commands
Feel free to submit issues and enhancement requests.
ArunSakthiAnandM