Metadata-Version: 2.4
Name: DIYables-MicroPython-4Digit7Segment-74HC595
Version: 0.1.0
Summary: MicroPython library for 4-digit 7-segment display with 74HC595 shift register. Supports ESP32, Raspberry Pi Pico, Arduino Nano ESP32, Arduino Nano R1 WiFi.
Home-page: https://github.com/DIYables/DIYables_MicroPython_4Digit7Segment_74HC595
Author: DIYables
Author-email: DIYables <DIYables.io@gmail.com>
License: MIT
Project-URL: Homepage, https://diyables.io
Project-URL: Repository, https://github.com/DIYables/DIYables_MicroPython_4Digit7Segment_74HC595
Keywords: micropython,7-segment,74HC595,display,LED,ESP32,Raspberry Pi Pico,Arduino Nano ESP32,4-digit,shift register,DIYables
Classifier: Programming Language :: Python :: Implementation :: MicroPython
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.4
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

## DIYables_MicroPython_4Digit7Segment_74HC595

MicroPython library for 4-digit 7-segment LED display driven by 74HC595 shift register. Supports 4 decimal point dots.

![74HC595 4-Digit 7-Segment Display Module](https://arduinogetstarted.com/images/tutorial/74hc595-4-digit-7-segment-display-pinout.jpg)

Product Link: [DIYables 4-Digit 7-Segment Display LED 74HC595 Driver with 4 Dots](https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots)


## Features
- Display integers (-999 to 9999)
- Display floats with automatic or manual decimal places
- Display alphabetic characters (A-U, Y)
- Display special characters (degree °, dash -, underscore _)
- Zero-padding support
- Temperature display with degree symbol (°C / °F)
- Time display (HH.MM) with blinking dot separator
- Individual dot/decimal point control for all 4 digits
- String display with inline dots
- Automatic display refresh using hardware Timer (no manual refresh needed)
- Common anode and common cathode support


## Tested Hardware

| Board                   | Tested |
|-------------------------|:------:|
| ESP32                   |   ✅   |
| Raspberry Pi Pico       |   ✅   |
| [DIYables ESP32 Development Board](https://diyables.io/esp32-board) |   ✅   |
| [DIYables ESP32 S3, Uno-form factor](https://diyables.io/products/esp32-s3-development-board-with-esp32-s3-wroom-1-n16r8-wifi-bluetooth-uno-compatible-form-factor-works-with-arduino-ide) |   ✅   |
| Arduino Nano ESP32              |   Not yet, expected to work   |
| Arduino Giga R1 WiFi            |   Not yet, expected to work   |
| Other MicroPython boards |   Not yet, expected to work    |

## Tutorials
- [ESP32 MicroPython - 4-Digit 7-Segment Display 74HC595](https://newbiely.com/tutorials/esp32-micropython/esp32-micropython-74hc595-4-digit-7-segment-display)
- [Raspberry Pi Pico - 4-Digit 7-Segment Display 74HC595](https://newbiely.com/tutorials/raspberry-pico/raspberry-pi-pico-74hc595-4-digit-7-segment-display)


## References

* [DIYables 4-Digit 7-Segment Display 74HC595 Library References](https://newbiely.com/library-references/diyables-micropython-74hc595-4-digit-7-segment-display-library-reference)

## Installation


You can install this library from PyPI using `mpremote`:

```
mpremote mip install DIYables-MicroPython-4Digit7Segment-74HC595
```

Or install via pip and copy to your board:

```
pip install DIYables-MicroPython-4Digit7Segment-74HC595
```

## Documentation

- [Library Reference](docs/library_reference.md) - Full API documentation with examples
- [Examples](examples/) - Ready-to-run example scripts

## Examples

| Example | Description |
|---------|-------------|
| [example_integer.py](examples/example_integer.py) | Display integers with optional zero-padding |
| [example_float.py](examples/example_float.py) | Display floats with auto/manual decimal places |
| [example_text_and_degree.py](examples/example_text_and_degree.py) | Display text, degree symbol, and temperature |
| [example_time.py](examples/example_time.py) | Display time with blinking dot separator |
| [example_blink.py](examples/example_blink.py) | Blink integers, floats, and text using off()/on() |
