2023-06-07 (W) KeyBoardolier Improved programming

I already had Adafruit's NeoPixel library installed on my computer, so I added the necessary code to my sketch and ran a test to confirm that I could run the LED cluster with 3.3V, and they lit up perfectly. I added a routine that sequentially turned on lights as the startup process ran. I immediately thought there was a problem with my code, but the serial log showed that the IO expander was not visible unless I did a clean power cycle, so the diagnostic lights are a valuable addition.

I added a routine that checked my inputs and output a three-digit number on rising edges, but I promptly swapped it out for a couple of functions that reported falling edges as well. The edge detection worked fine despite the lack of debouncing, so I will leave that alone in favor of a lightning-fast keyboard. I turn on the center LED whenever I press a key. I printed the keyState[][] table and mashed some keys with my forearm to see how it looked.
Boolean table showing switch states

The rest of the posts for this project have been arranged by date.
First time here?

Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6
Completed projects from year 7
Completed projects from year 8

Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com

This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information on this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by  Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.