Combining Arduino Sketches

Beginners love Arduino coding because there is so much of it available to just copy, load and go without too much thinking required.

Then they find that one thing they want to do is in one sketch and another in a second sketch. All they need to do is combine these sketches! This can be a big hurdle the first time it happens and many fail to get a satisfactorily working product.

There is a systematic approach to this that helps to ensure that things work.

Continue reading “Combining Arduino Sketches”
Advertisements

Finite State Machine Programming Basics – Part 2

The first part of this article introduced a simple Finite State Machine through the exercise of transforming the standard linearly programmed Blink example into a FSM style application.

In this part we’ll look at other common embedded applications and how they can be coded using FSM techniques.

Continue reading “Finite State Machine Programming Basics – Part 2”

Finite State Machine Programming Basics – Part 1

Many beginner programmers, once they go beyond the ‘blinking LED’ code, get blocked by not being able to do more than one thing at once. In many cases they are directed to the ‘Blink WithOut Delay’ code (BWOD) as a hint about what to do, but this soon also runs out of steam. BWOD implies, but does not make explicit, a Finite State Machines (FSM) approach.

In this article we’ll evolve the simple linear Blinking LED sketch into a FSM to illustrate the difference in approach.

Continue reading “Finite State Machine Programming Basics – Part 1”

YX5300 MP3 Player

The YX5300 MP3 module is easily interfaced to a microcontroller, creating MP3 player with a user interface. Using the MD_YX5300 library and an understanding of how the device works (see the previous posts here and here), this article describes the code for a simple MP3 player and a more complex player with an LCD module display.

Continue reading “YX5300 MP3 Player”

YX5300 Serial MP3 Player – Message Sequencing

Since my previous YX5300 post I have received a number of questions related to how the serial messages between a host and the MP3 module work. Understanding this message flow is important when writing code that uses the MP3 player in an interactive application.

Continue reading “YX5300 Serial MP3 Player – Message Sequencing”

Persisting Application Parameters in EEPROM

When an application starts, any data was was part of a previous execution is reset to the initialised values of the variables. Often, however, it is desirable to maintain configuration and state values between processor resets. EEPROM is a good option to store these values.

This article explores ways to make this task easy.

Continue reading “Persisting Application Parameters in EEPROM”

Are Strings really that Evil?

One of the many repeating themes on the Arduino forums is the use of Strings (with a capital ‘S’) against usings strings (with a little ‘s’) – the former refers to a class that encapsulates string handling and the latter refers to the use of nul terminated char arrays.

The kind of forum threads involved are generally someone who wants to use Strings and is having a problem followed by a lot of other posts telling them not to because they are ‘bad’.

So what makes them ‘bad’ and is this really a problem?

Continue reading “Are Strings really that Evil?”

Domoticz and ESPEasy – playing nice together

As soon as I completed the basics of my home automation system using Sonoff S20 switches reflashed with ESPEasy, it became clear that there were some shortcomings in the management the http based comms between Domoticz and the ESPEasy during a communications failure.

Here’s how I worked out and implemented an acceptable solution for the problem.

Continue reading “Domoticz and ESPEasy – playing nice together”

Home Automation and the Internet of Things – First Steps

In the first and second parts of this series we set up the hardware with the ESPEasy software. Now the hardware is set up, it is time to work out how to and exercise control over the I/O that will turn the AC power on and off.

As it turns out, ESPEasy makes this a simple process.

Continue reading “Home Automation and the Internet of Things – First Steps”