Quad Alphanumeric Feather Display
Intro
https://www.adafruit.com/product/3130 Quad 14 segment (plus decimal point) LED display.

Quad Alphanumeric Display and I2C Words

quad-emit works like the standard word emit. It blocks the calling thread, as long as the character is not written to the Quad Alphanumeric Display

quad-emit    ( Char -- )        Emits a character (writes a character to the Quad Alphanumeric display)
quad-emit?   ( -- Flag )        Quad Alphanumeric display ready to get a character (I2C not busy)

hook-emit    ( -- a-addr )      Hooks for redirecting terminal IO on the fly
hook-emit?   ( -- a-addr )    

quadpos!     ( x  -- )          Set Quad Alphanumeric display cursor position, x (column) horizontal position, max. 3 
quadpos@     (  -- x )          Get the current Quad Alphanumeric display cursor position
quadcmd      ( c-addr -- )      Send command to the Quad Alphanumeric display controller SSD1306. First byte contains the length of the command.
quadclr      (  --  )           Clears the Quad Alphanumeric display display, sets the cursor to 0

I2Cdev       ( u -- )           Sets the 7-bit I2C address
I2Cput       ( c-addr u -- )    c-addr buffer address for the message with lengh u to send
I2Cget       ( c-addr u -- )    c-addr buffer address for the message to receive
I2Cputget    ( a1 u1 a2 u2 -- ) a1 buffer address for the message to send, a2 buffer address for the message to receive

>quad        ( -- addr1 addr2 ) redirect to Quad Alphanumeric display *)
>term        ( addr1 addr2 -- ) terminate redirection *)

*) part of redirection.fs

Usage

It is easy to redirect the terminal output to the Quad Alphanumeric display, to use the string formatting words.

: quad-hallo (  -- )
hook-emit @ \ save emit hook ['] quad-emit hook-emit ! \ redirect terminal to quad-emit ." Hallo Velo! " cr ." ciao" hook-emit ! \ restore old hook ;

or even simpler

: quad-hallo (  -- )
  >quad         \ redirect terminal to quad-emit
  ." Hallo Velo! " cr
  ." ciao"
  >term         \ terminate redirection
;

or on a command line

>quad .( ELKE) >term

show time on Quad Alphanumeric display (see CmsisRtos#How_to_use_Tasks for a background task).

: clock (  -- )
  quadclr
  -1 -1 -1 alarm!  \ set an alarm every second
  begin
    wait-alarm     \ wait a second
    0 0 quadpos!
    >quad .time >term
  key? until
  key drop
;

Links

HT16K33 Driver

Data sheet https://cdn-shop.adafruit.com/datasheets/ht16K33v110.pdf

Driver SW

https://github.com/adafruit/Adafruit_LED_Backpack/blob/master/Adafruit_LEDBackpack.cpp

Egg Timer

https://www.amazon.de/Kurzzeitmesser-30-sek%C3%BCndiger-Timer-Memory-Funktion-Befestigen-Metallfl%C3%A4chen/dp/B07GJV6B3B

D6 PWM

Start/Stop Pi
M STO
S ENTER
  CLOCK
  CALC
f f
On On C

Start/Stop R/S
M- [x]
S- DUP
  FLOAT
  TERM
f f
Off Off

Buzzer https://mspindy.com/product/ast1240mlq/

How to prepare your timer

1: Pull the transparent band out of the battery compartment to activate the battery.

2: Press the MIN and SEC buttons at the same time, the display will now display "00.00".

How to use your timer to count down

1. Set the desired time by pressing the MIN and SEC buttons.

2. Another way to set the time is to hold down the MIN button. The number resumes automatically when the button is pressed for 3 seconds.

3: Press the START / STOP button to start the countdown.

4: When the time is up, the timer will beep

How to use your time to count

1: Press the MIN and SEC buttons at the same time, the display will show "00.00".

2:Press the START/STOP button to start counting.

To stop the alarm

Press the START/STOP button.

32S switches off automatically, any button starts the memory again.

To clear the display

Press the MIN and SEC button simultaneously, the display will show "00.00".

Pause the timer

1: Press the START/STOP button once while the countdown is down/up.

2: Press the START/STOP button again to continue counting down/up.

Replacing the battery.

Replace the old battery with a 7# battery. The batteries must be inserted with the correct polarity.

If the scale is not used for a long time, remove the batteries.

-- Peter Schmid - 2024-12-13

Creative Commons License
This work by Peter Schmid is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Comments

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2024-12-19 - PeterSchmid
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback