Parola A to Z – Double Height Displays

parola_dh_single_doubleUsing the Parola library for double height displays is becoming increasingly popular with library users. Setting up the hardware and the library is not difficult, but it can cause problems if not done correctly. This article will explain the hardware and software setup considerations for trouble-free double height displays.

Continue reading “Parola A to Z – Double Height Displays”

Parola A to Z – Managing Animation

azparola_animationAs the main function of the Parola library is to enable text animations, it is important to understand how these are set up and managed to completion from user code.

From a user perspective, Parola animation consist of 3 parts – setting up, running and resetting the animation. The process is not complex and is illustrated in the numerous library examples. This article breaks these down and explains how the Parola class methods apply in each phase.

Continue reading “Parola A to Z – Managing Animation”

Parola A to Z – Text Animation

azparola_animationThe key function of the Parola library is to display text using different animations. These animations are built around a core supporting framework and largely follow the same patterns. This article explores how Parola animations code is constructed so that advanced users of the library have enough information to be able to write (and contribute!) their own new animations.

Continue reading “Parola A to Z – Text Animation”

What is 00101010?

binaryI frequently see see novice programmers asking “how to change variable from hex to binary” or similar questions. Leaving aside the simple number base conversion, these questions are, frustratingly, usually about not understanding fundamental computing concepts.

Continue reading “What is 00101010?”

Double Height Digits on a Character LCD Module

LCD2H_FontTwo line LCD modules based on the Hitachi HD44780 LCD controller (commonly referred to as 1602 LCD) are a very inexpensive way to add an output device to an Arduino project, enabling all manner of user information to be displayed in a flexible format.

I have found, though, that I am not able to read this display at a distance (maybe it is age related!). For my own projects I developed code that allows numbers to be displayed over both lines of the LCD display, making the ‘current’ value display for instruments, for example, more obvious and more visible.

Continue reading “Double Height Digits on a Character LCD Module”

MAX7219 LED Matrix Module Micro Word Clock

WordClockA Word Clock is a clock that tells the time using words.

In an era when super-accurate digital clocks are available to most people on the planet, it intrigues me that Word Clocks have a place as they only show the time to the nearest five minutes!

Building one has been on my project to-do list for a while, but I didn’t want to invest the time and money needed for the various ‘from scratch’ build projects that I found online.

Continue reading “MAX7219 LED Matrix Module Micro Word Clock”

Adaptive User Input with a Rotary Encoder

rotary_encoderI like using rotary encoders for user input as they can provide very precise control over settings. The built-in switch is also very convenient and makes it easy to implement the push button functionality I described in a previous post. Altogether, rotary encoders have a ‘modern’ feel that makes projects seem more professional.

There is one shortcoming of these devices, though, that I have recently worked to overcome.

Continue reading “Adaptive User Input with a Rotary Encoder”

Switches as User Input Devices

KeySwitchThe humble switch is one of the major ways that users can interact with Arduino based code. Often the input comes from some variation of the momentary-on push switch, like the tact switch on the left, connected to an input on the microcontroller.

Users of modern GUIs will be familiar with being able to express themselves through a keyboard and a mouse. So user interface elements like double-clicks, long clicks and keyboard auto-repeat are familiar.

However, a lot of microcontroller code simply restricts the use of these switches to on/off functionality. Arduino programmers often don’t understand how to provide more features, even though a single switch can be made to do much more for a user.

Continue reading “Switches as User Input Devices”

Read 100 Switches with 3 Digital Pins!

4017_KM 3x3 Matrix Finished ProductFor various reasons, digital I/O pins are always at a premium when implementing micro controller projects. There have been various multiplexing schemes described to allow more than one switch to be connected to a small number of pins, but some time ago I came across a very simple but highly scalable method that uses the 4017 decade counter to connect many switches (more than 100 if needed) to just 3 digital inputs.

Continue reading “Read 100 Switches with 3 Digital Pins!”

A Software Algorithm for Solving Sudoku Puzzles

Soduko Puzzle
Soduko Puzzle

The classic Sudoku game is a number puzzle involving a grid of 81 squares, divided into into nine blocks, each containing nine squares.

French newspapers featured variations of the puzzles in the 19th century, but modern sudoku only started to become popularised in 1986 by the Japanese puzzle company Nikoli, under the name Sudoku, a contraction of the full name of the puzzle meaning single number in Japanese.

Continue reading “A Software Algorithm for Solving Sudoku Puzzles”