The coders corner has a (fairly active) account on github. From Arduino libraries, Joomla to Hugo through to examples for the datacomms section, why not take a look.
In this tutorial for IoAbstraction’s taskManager I explain the differences between traditional loop based programming; which is very common on the Arduino platform and event based programming based on taskManager. Although event based programming looks slightly more complicated at first, as the sketch and surrounding code gets more complex, eventing will scale to that much easier. Eventing task frameworks make ongoing maintenance much easier. Example: Two LEDs blink at different rates.
Have you ever wanted to treat switch presses similar to how you work in other languages, where you get an event callback when the switch is pressed? Look no further, the IO abstraction library can do that with very little fuss. In fact it can also do the same for rotary encoders as well, treating them similar to how scroll bars work in desktop applications. To start we need to get the IoAbstraction library and open the encoderSwitch example.
There is a common misconception in the electronics industry that Arduino is unsuited for professional development. As a result many companies try to use different, far more complex tool chains to develop software with far fewer ready made libraries available. In some cases, as unbelievable as it sounds, I’ve heard of consultants suggesting that the code is written in assembler, when the code is not even that time critical. That comes with staggering costs.
Recently, I have made a fork of Arduino LiquidCrystal (HD44780 display driver library) that allows the library to work with the IO abstraction library, meaning you can configure a display to use Arduino pins, an i2c 8574 IO expander or shift registers by simply changing one line of code in your sketch. There are two additional examples provided with this version that show how to use the fork with both a shift register and an 8574 i2c IO expander.