Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obono/attiny85rpncalc
A RPN Calculator with ATtiny85
https://github.com/obono/attiny85rpncalc
arduino attiny85 rpn-calculator ssd1306
Last synced: 13 days ago
JSON representation
A RPN Calculator with ATtiny85
- Host: GitHub
- URL: https://github.com/obono/attiny85rpncalc
- Owner: obono
- License: mit
- Created: 2021-07-28T12:07:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-31T14:33:28.000Z (11 months ago)
- Last Synced: 2024-01-31T16:23:19.016Z (11 months ago)
- Topics: arduino, attiny85, rpn-calculator, ssd1306
- Language: C++
- Homepage:
- Size: 303 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ATtiny85RpnCalc
![Picture](doc/picture.jpg)![Key assign](doc/picture_key_assign.jpg)
A RPN Calculator with ATtiny85.
* 8 significant digits.
* 16 Levels stack with overflow prevention.## Instruction
![Instruction](doc/instruction.png)
* 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](doc/schematic_thumbnail.png)](doc/schematic.png)
## Software
### Build environment
[Install ATTinyCore boards to the Arduino IDE](https://github.com/SpenceKonde/ATTinyCore/blob/master/Installation.md) 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](https://lab.sasapea.mydns.jp/2020/03/11/avr-i2c-2/)
* Copyright (c) 2020 Sasapea's Lab. All right reserved.### License
These codes are licensed under [MIT License](LICENSE).
## References
* [nekopla/simple_rpn_calc](https://github.com/nekopla/simple_rpn_calc)
* [pado3/tinyRPN](https://github.com/pado3/tinyRPN)