Arduino (ATmega328P / Uno) firmware for a microvolt/analog input meter built around a TM1638 (anode mode) 8-digit 7-segment display with on-board buttons. The device reads an analog voltage, applies scaling/offset/calibration, and shows the result on the display. All settings are configured through a button-driven menu and stored in EEPROM.
| Document | File |
|---|---|
| Schematic | docs/Schematic.pdf |
| PCB layout | docs/PCB.png |
| Signal | Pin |
|---|---|
| TM1638 DIO | D2 |
| TM1638 CLK | D3 |
| TM1638 STB | D5 |
| Analog input | A0 |
| Analog filter input | A1 |
- Live voltage reading with smoothing (
ResponsiveAnalogRead). - Menu / edit modes driven by 4 buttons (Enter, Back, Up, Down).
- Configurable parameters, all persisted to EEPROM:
o.scl— output scalecode— lock codei.rng— input rangei.off— voltage offsetcal— calibration coefficient
- Hold Enter for 3 s to enter the menu; menus time out after 10 s.
This is a PlatformIO project.
pio run # build
pio run -t upload # upload to the Uno
pio device monitor # serial monitor (9600 baud)dxinteractive/ResponsiveAnalogRead- TM16xx library (
TM1638Anode,TM16xxDisplay,TM16xxButtons)
program/
├── src/main.cpp firmware
├── include/ headers
├── lib/ local libraries
├── docs/ schematic & PCB
└── platformio.ini build configuration
