alexisruccius

alexisruccius

Ht16k33Multi – Easy Multi-Display Support for HT16K33 with 7-Segment Displays

Hey everyone!

I just published a small but handy Elixir library called Ht16k33Multi, designed to drive multiple 4-digit 7-segment displays powered by the HT16K33 LED driver chip via I²C.

What’s It For?

If you’re working with LED displays on Nerves, Raspberry Pi, or any I²C-capable hardware and want to display characters across multiple 7-segment devices, this library makes it super easy to:

  • :white_check_mark: Manage multiple display devices using GenServer names
  • :writing_hand: Write characters and words to one or many 7-segment displays
  • :light_bulb: Control dimming and blinking

:white_check_mark: Features

  • Display numbers on a 7-segment display
  • Display words using a built-in 7-segment font
  • Support for multiple displays (hence the “multi” in the name!)
    → Easily chain HT16K33 chips to show full sentences
  • Use built-in blinking and dimming features of the HT16K33
  • Well-documented with inline examples

:sparkles: Example

# Start the Ht16k33Multi GenServer
iex> Ht16k33Multi.start_link()

# Write to the display
iex> Ht16k33Multi.write("Hola")

# Enable blinking
iex> Ht16k33Multi.blinking_on()

:package: Installation

Add the dependency in your mix.exs:

def deps do
  [
    {:ht16k33_multi, "~> 0.1.0"}
  ]
end

Then fetch it with:

mix deps.get

:books: Learn More

Most Liked

alexisruccius

alexisruccius

HT16K33Multi v0.2.2 – Now with Colon Segment Support

Hi everyone,

I’m happy to announce that HT16K33Multi v0.2.2 is now available!

What’s New

:new_button: v0.2.0

Added support for controlling the colon segment, which is especially helpful for clock-style displays:

  • colon_on/1 / colon_off/1 – toggle colon on a specific display
  • colon_on_all/1 / colon_off_all/1 – toggle colon on for all displays

:hammer_and_wrench: v0.2.1

  • Fixed an issue where displays weren’t fully cleared on startup

:hammer_and_wrench: v0.2.2

  • Fixed an issue with dependency resolution

I’ve been testing this on actual HT16K33 hardware and things seem to be working well so far.
If you try it out, I’d really appreciate hearing how it goes on your end!

Feel free to report issues in the GitHub repo—PRs are always welcome!

Where Next?

Popular in Libraries Top

woutdp
Hi! I wanted to introduce my latest project LiveSvelte. It allows you to render Svelte inside LiveView with end-to-end reactivity. It’s ...
New
benlime
LiveMotion enables high performance animations declared on the server and run on the client. As a follow up to my previous thread A libr...
New
Qqwy
Hello everyone, I wrote a small library today called MapDiff. It returns a map listing the (smallest amount of) changes to get from map...
New
zorbash
I created Kitto a framework for dashboards inspired by Dashing. [demo] The distributed characteristics of Elixir and the low memory foo...
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
engineeringdept
I’ve just released the first version of Snap, an Elasticsearch client. It borrows ideas about application structure and process managemen...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New
wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New

Other popular topics Top

Tee
can someone please explain to me how Enum.reduce works with maps
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set? Thanks.
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

Sub Categories:

We're in Beta

About us Mission Statement