Posts tagged ‘Atmega328P’

Interfacing HDC1050 with Arduino

Recently, I got my hands on TI‘s HDC1050 low power, high accuracy digital humidity/temperature sensor chip. The supply voltage of this chip can range between 2.7V and 5V, making it possible to interface with 5V MCUs such as Arduino directly. I created an Ardunio library for this sensor and will discuss its usage in this post. The code can be downloaded towards the end and can also be found on my GitHub page. Continue reading ‘Interfacing HDC1050 with Arduino’ »

Backup and Flash Firmware using Arduino

A while ago, I did a tear-down of a Keithley 196 bench multimeter. Towards the end of that post I showed a picture of my breadboard setup for backing up the firmware EPROM (27128) in case I needed to re-flash the firmware in the future. Since then, quite a few people had asked me to provide more details on how to do this using an Arduino. So I thought I would explain a little more here. Continue reading ‘Backup and Flash Firmware using Arduino’ »

MCP3903 Library

MCP3903 is a six channel Delta-Sigma A/D converter. It features six synchronous sampling differential channels which can be programmed to sample between 16 bit and 24 bit accuracy, the gain for each channel can also be programmatically set from 1 up to 32. It also has an internal low tempco (5ppm/°C) voltage reference, making MCP3903 an excellent choice for digitizing small differential signals from various sensors. Continue reading ‘MCP3903 Library’ »

Modify An Off-the-Shelf CP2102 Module As An Arduino Programmer

A while back, I wrote an article on how to use a CP2102 USB/UART converter chip in place of an FT232RL to program an ATmega328P using Arduino bootloader. Of course, not everyone has the time or wants to build one from scratch. And since CP2102 is offered in QFN package only, it is a big pain to solder without a proper adapter board and decent soldering equipment. Continue reading ‘Modify An Off-the-Shelf CP2102 Module As An Arduino Programmer’ »

Arduino Library For LTC4151

LTC4151 is a high voltage I2C current and voltage monitor. It is capable of monitoring input voltage ranging from 7V to 80V with the onboard 12-bit ADC. It can also measure the high side current and an additional external voltage with the same 12-bit ADC resolution. Besides LTC4151, LTC4151-1 and LTC4151-2 have split SDA (SDAO and SDAI) for interfacing with Opto-Isolators. Continue reading ‘Arduino Library For LTC4151’ »

LM92 Library for Arduino

LM92 is a 12-bit + sign temperature sensor from Texas Instruments. This sensor operates on the I2C interface and can achieve an accuracy as high as ± 0.33 °C within the typical temperature measurement range. I created a comprehensive Arduino library for this sensor (the library can be downloaded towards the end) and in this post I will explain each of the functions in detail. Continue reading ‘LM92 Library for Arduino’ »

A Simple Serial Protocol

We can send and receive commands wirelessly with Arduino by using these cheap RF data link transmitters/receivers. I like these RF modules because they can be hooked up to pretty much any device that supports serial communications (e.g. devices equipped with either hardware or software UART). Continue reading ‘A Simple Serial Protocol’ »

Building a Constant Current/Constant Power Electronic Load

A while back I built a simple constant current electronic load using an aluminum HDD cooler case as the heatsink. While it was sufficient for a few amps’ load under low voltages, it could not handle load much higher than a few dozen watts at least not for a prolonged period of time. So this time around, I decided to build a much beefier electronic load so it could be used in more demanding situations. Continue reading ‘Building a Constant Current/Constant Power Electronic Load’ »

Interfacing TLV5620 With Arduino

TI’s TLV5620 is a budget 4-channel 8-bit DAC. While it is designed primarily for running with a power supply between 3V and 3.6V, it can be powered by 5V as well given its wide supply voltage range. With a TL431 voltage reference (2.5V), the DAC output can cover 0-5V with the RNG bit set. Continue reading ‘Interfacing TLV5620 With Arduino’ »

An Isolated DAC Using PWM Output

Arduino‘s (ATmega328P) PWM outputs via analogWrite can be conveniently turned into analog voltage levels through the use of simple RC filters. Since the PWM outputs are not isolated, using them to drive other devices directly could be potentially dangerous. This is especially true if the target circuit uses a higher supply voltage. Continue reading ‘An Isolated DAC Using PWM Output’ »

VFD Clock – Putting Everything Together

After I completed the filament driver and the circuit to drive the multiplexed VFD segments, it is time to finish the VFD clock project I had in mind earlier. Continue reading ‘VFD Clock – Putting Everything Together’ »

Building a Sweep Generator for BK 4011

I did a teardown of a BK Precision 4011 5MHz function generator a few weeks ago. Like most of basic function generators in old days, BK 4011 does not offer frequency sweep as an option. What it does include is a VCG (Voltage controlled Generator) input, which essentially is just a VCO and it can be used in conjunction with an external sweep generator to generate frequency sweeps. Continue reading ‘Building a Sweep Generator for BK 4011’ »

Temperature and Humidity Logging Over Ethernet — II

Last week, I discussed the construction of a network-capable temperature and humidity sensor using SHT21 and ENC28J60 with an ATmega328P microcontroller. In this post, I will show the results obtained so far and the techniques used to chart the data. Continue reading ‘Temperature and Humidity Logging Over Ethernet — II’ »

Temperature and Humidity Logging Over Ethernet — I

I did a project on temperature/humidity logging a couple of years ago. In that project I logged the temperature and humidity readings in my basement lab over the course of a year. One issue with the approach I took back then was that the data could not be observed in real time because the logged data were written to an SD card and could only be retrieved once the logging process was done. Continue reading ‘Temperature and Humidity Logging Over Ethernet — I’ »

Interfacing ADS1224 With Arduino

ADS1224 is a 24-bit delta-sigma analog-to-digital converter with 4-channel differential inputs multiplexer. This ADC chip offers a 20-bit effective resolution (6 to 7 digits of resolution in full scale), which makes it ideal in high-resolution voltage measurement applications. Continue reading ‘Interfacing ADS1224 With Arduino’ »