/ATtiny85RpnCalc

A RPN Calculator with ATtiny85

Primary LanguageC++MIT LicenseMIT

ATtiny85RpnCalc

PictureKey assign

A RPN Calculator with ATtiny85.

  • 8 significant digits.
  • 16 Levels stack with overflow prevention.

Instruction

Instruction

  • 0~9, ., +/−
    • Edit the current number.
    • If it is determined, it's pushed into the stack and a new number is edited.
  • Enter
    • Determine the current number.
    • If it is already determined, it's duplicated and pushed into the stack.
  • +, −, ×, ÷
    • Pop a number from the stack and operate with the current number.
  • Clear
    • Clear the current number and pop a number from the stack.
    • All clear if this button is held long.

Hardware

Components

  • ATtiny85
  • 0.91 inch 128×32 pixels OLED screen SSD1306 I2C
  • 18 tactile switches
  • Resistors
    • 150Ω, 180Ω, 220Ω, 330Ω, 390Ω, 510Ω, 680Ω
    • 1.0kΩ, 1.5kΩ×2, 2.2kΩ, 3.0kΩ, 4.7kΩ×2, 8.2kΩ
    • 15kΩ, 22kΩ, 82kΩ
  • An electrolytic capacitor: 47µF
  • A battery holder for CR2032
  • A slide switch
  • Wires, connectors, etc...

Schematic

Click to expand

Software

Build environment

Install ATTinyCore boards to the Arduino IDE and configure the settings as follows.

Attribute Value
Board ATtiny25/45/85 (No bootloader)
Chip ATtiny85
Clock 4 MHz (Internal)
B.O.D. Level B.O.D. Disabled (saves power)
Save EEPROM EEPROM not retained
Timer 1 Clock CPU (CPU frequency)
LTO Enabled
millis()/micros() Disabled

Acknowledgement

  • SimpleWire.h
    • Copyright (c) 2020 Sasapea's Lab. All right reserved.

License

These codes are licensed under MIT License.

References