Analog signals typically are not ADC friendly, but they can be with some relatively simple circuitry such as a low pass filter and amplifier. The goal is to have the analog signal cover the entire range of the ADC. For example, if your input goes from 0V to 1V and your ADC measures from 0V to 3V, you will need to amplify the input to take full advantage of the ADC. Voltage scaling seems easy enough but you also need to make sure the frequencies you are measuring are low enough for your sample rate which is where filtering comes in.
Analyzing Op Amps
Operational amplifiers, or op-amps as they are affectionately known, are very useful when designing embedded systems and relatively easy-to-use. If you know just a few of the basics, you can design and analyze op-amps like a boss.
Including Arbitrary Binary Data in Embedded Applications
When creating firmware programs for microcontrollers, I regularly need to include to small files such as fonts, bitmaps, or lookup data. The best way I found to do this is to embed the data directly in the binary file.
Understanding Memory using Embedded C++
C++ is quickly becoming a powerful tool for microcontroller programming. A space previously occupied solely by C and assembly languages. However, many firmware engineers fear using C++ because they worry it uses up too much memory (both RAM and flash). Let’s look at how C++ generates code and utilizes RAM.
Low Pass Filters with Microcontroller ADCs
A filter is a useful tool for removing unwanted signals from a sensor measurement. There is complicated math behind how they work, but you just need to know a simple formula to use them in many embedded designs.