The LM3x series of sensors are precision, easily-calibrated, integrated circuit temperature sensors. These are ideal as a beginner sensor, only to disappoint when code is copied from somewhere, run on the MCU and the temperature readings seem to be wildly varying and incorrect. Why is this happening and what can be done about it? Read on.
Once I started using rotary encoders to provide a ‘modern’ user input experience, the elimination of panel mounted potentiometers for circuit settings and other adjustments was the next logical step. Panel mounted pots have a very different feel from the clicks of a rotary encoder, and potentiometers cannot easily be controlled by a microcontroller.
Digital Potentiometers perform the same functions as mechanical pots but can be automated. So how do they work?
One of the great things about Arduino systems is they enable us to try ideas and experiment with concepts. At a software level this is simple – write, compile and download. Hardware components, however, can be more time consuming as you either have to wire up a temporary breadboard or you have to build dedicated circuits.
There is a simple way to make the hardware more ‘plug and play’ by building small modules with a simple standard interface that can be combined to create bigger systems. The outcome is a library of standard modules that are easily connected to the Arduino to prototype ideas without fiddling with breadboard wires for the simple stuff.
I was exploring ways to make a future robot project more appealing and came across a number of articles about animated robotic eyes created to convey expression or mood. This looked like a bit of fun and quite achievable using the LED matrix modules that I have been playing with for a while. Here’s the result.
In Part 1 I described the hardware components and the functionality of the LED clock. This this part, I’ll explore the software required to implement the functionality and seamlessly manage the different user interfaces.
I wanted a create a simple project to test a few ideas and still be useful in its own right. Walking through my local IKEA store, I saw a really inexpensive analog clock (Rusch) and decided that it would provide the right vehicle for what I had in mind.
A logic analyzer is an electronic instrument that captures and displays multiple signals from a digital system or circuit on a common time base. It is a really useful tool for debugging circuits and communications links. However, the cost of brand-name logic analyzers runs into hundreds of dollars and can be really hard to justify for hobby use.
Fortunately, there is a low cost alternative using open source software and inexpensive hardware.
In the first part of this blog I described building a test apparatus that allows me to experiment with tuning a PID loop controlling a levitating pin pong ball in a tube.
This second installment is about trying different hands-on methods of tuning the loop, understanding how they are derived, and how well they perform compared to each other.
PID (Proportional, Integral, Derivative) control is a classic control algorithm that I have used for a few projects, ending with ‘good enough’ control, without really spending time learning how to properly tune the PID constants.
Time for me to fill in the gap in my knowledge, so in this two part blog I want to capture my learning. Hopefully it is useful for someone else. In this first part I will document the learning and testing rig and software. The next part will be about tuning the control loop.
An ongoing question on many Arduino forums is the adaptation of software to the different types of matrix modules. Usually the poster has tried some LED matrix software and the display is reversed or upside down, or animations are disjointed across the module boundaries.
There are clear reasons this happens, and the Parola library has software configuration parameters that allow you to adapt how the software operates to suit your hardware module.