By Stephen Evanczuk
For circuits relying on lithium-ion cells, determining the amount of charge remaining in a cell requires specialized techniques that can complicate the design of energy-harvesting applications. Engineers can implement these techniques with MCUs and ADCs normally used in these applications, but at the cost of increased complexity. Instead, engineers can easily add this functionality to existing designs using dedicated “fuel-gauge” ICs available from manufacturers including Linear Technology, Maxim Integrated, STMicroelectronics, and Texas Instruments.
Determining the state of charge (SOC) in lithium-ion batteries is essential yet challenging due to the great variability in capacity not only across different cells, but also in the same cell. As a Li-ion cell ages, it loses its ability to store charge. Consequently, even if fully charged, an older cell would deliver usable voltage for a shorter period of time than a newer cell. With any Li-ion cell, SOC varies greatly depending on the temperature and discharge rate, resulting in a unique family of curves for any particular cell (Figure 1).
Fuel-Gauge ICs Simplify Li-Ion Cell Charge Monitoring - [Link]
John Boxall over at Tronixstuff has a series of Arduino tutorials. This chapter fifty-three of a series will show you how to use the TI ADS1110 16-bit ADC with Arduino:
Moving on from the last chapter where we explained an 8-bit ADC, in this instalment we have the Texas Instruments ADS1110 – an incredibly tiny but useful 16-bit analogue-to-digital converter IC. It can operate between 2.7 and 5.5 V so it’s also fine for Arduino Due and other lower-voltage development boards. This is a quick guide to get you going with the ADS1110 ready for further applications.
Tutorial – Arduino and the TI ADS1110 16-bit ADC - [Link]
Active analog filters can be found in almost every electronic circuit. Audio systems use filters for frequency-band limiting and equalization. Designers of communication systems use filters for tuning specific frequencies and eliminating others. To attenuate high-frequency signals, every data acquisition system has either an anti-aliasing (low-pass) filter before the analog-to-digital converter (ADC) or an anti-imaging (low-pass) filter after the digital-to-analog converter (DAC). This analog filtering can also remove higher-frequency noise superimposed on the signal before it reaches the ADC or after it leaves the DAC. If an input signal to an ADC is beyond half of the converter’s sampling frequency, the magnitude of that signal is converted reliably; but the frequency is modified as it aliases back into the digital output.
Designing active analog filters in minutes - [Link]
Analog-to-digital-conversion (ADC) is required in Embedded Systems to deal with various analog world parameters such as current, pressure, motion, temperature, etc. An ADC is an electronic system or a module that has analog input, reference voltage input and digital outputs. The ADC convert the analog input signal to a digital output value that represents the size of the analog input comparing to the reference voltage. It basically samples the input analog voltage and produces an output digital code for each sample taken. This application note from Atmel describes the fundamental concepts of ADC and the associated parameters that determine the performance and accuracy of the ADC’s output.
Understanding ADC parameters for accurate analog-to-digital conversions - [Link]
This project describes an Arduino-based FM transmission using the KT0803K Digital Stereo FM Transmitter Radio-Station-on-a-Chip. The KT0803K device is designed to process high fidelity stereo audio signal and transmit modulated FM signal over a short range. It features an on-board 20-bit audio ADC and supports standard I2C interface for frequency setting and power control. [via]
DIY FM transmission station using Arduino - [Link]
“miceuz” have set up this little experiment to gain a better understanding how does a SAR analog to digital converter work. Go to http://wemakethings.net/2013/02/25/how-does-adc-work/… for more info and Arduino code.
How does an ADC work? - [Link]
The MAX31855 performs cold-junction compensation and digitizes the signal from a K-, J-, N-, T-, S-, R-, or E-type thermocouple. The data is output in a signed 14-bit, SPI-compatible, read-only format. This converter resolves temperatures to 0.25°C, allows readings as high as +1800°C and as low as -270°C, and exhibits thermocouple accuracy of ±2°C for temperatures ranging from -200°C to +700°C for K-type thermocouples. For full range accuracies and other thermocouple types, see the Thermal Characteristics specifications in the full data sheet.
MAX31855 – Cold-Junction Compensated Thermocouple-to-Digital Converter - [Link]
This project explains how to use an FPGA or CPLD to take input from one device (an ADC) and then output appropriate signals to a motor controller IC, that provides precise control over the DC motor’s speed and direction.
Since we now know how to create PWM output with a CPLD or FPGA and we also know how to understand dynamic analog input using an A-to-D converter, we can actually combine these two functions together and create an FPGA DC motor controller!
Even though I have written many, other, motor control articles, none of them used a CPLD or FPGA as the main controller. This article will focus on explaining how to use a CPLD to take input from one device and then output appropriate signals to a motor controller IC, that will give us precise control over the DC motor’s speed and direction.
FPGA DC Motor Control - [Link]
I’d really like to know how to “”convert”” an analog value to a digital one. In a word : I have an Arduino, a photoresistor, with a pull-down resistor. I want to know if the light is above or below a given threshold.
I know how to read the value with analogRead(photoResPin), and compare it to my threshold (in code), but I’d like to do that without software (only using digitalRead), handling that threshold in hardware.
Can you help me ?
I guess I can use a transistor, but don’t know how to “”precisely”” set the threshold (by changing the pull-down resistor value ?).
How can I convert an analog value to a digital one? - [Link]
Toumas decided to code his own capacitive touch sensors based on a closed source Atmel example where a single ADC pin is used for capacitive sensing. He reverse engineered it, and documented his results: [via]
I’ve been thinking of a project that needs a little bit more elegant user interface than your usual push buttons. Partly inspired by a video blog on Dave Jones’ EEVblog, I decided to look into capacitive touch buttons. The big issue unfortunately for me was that you usually need a separate chip for capacitive touch sensing. With some tricks, you can however use a normal microcontroller to do the job. Even using only a single pin and resistor.
Capacitive touch sensing with a single ADC pin - [Link]