Archive for the ‘AVR/Arduino’ Category.

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’ »

A Digitally Controlled Dual Tracking Power Supply — II

In my previous post, I showed my design of a dual tracking ±30V linear power supply. My goal was to use the transformer (28V+28V, center tapped) from an old Deltron W127G open-frame power supply and build a lab supply that can be digitally adjusted in both constant voltage and constant current modes. I also wanted each of the channels to be able to deliver up to 10 Amps of current so that I could fully utilize the 540VA transfomer from the W127G. Continue reading ‘A Digitally Controlled Dual Tracking Power Supply — II’ »

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’ »

A DIY Vacuum Fluorescent Display Driver

In my previous post, I showed a simple vacuum fluorescent display filament driver built using a 555 timer and a custom hand-wound, center-tapped toroidal pulse transformer. And as promised in my earlier comment, I am going to show you the remainder of the VFD driving circuit here. Continue reading ‘A DIY Vacuum Fluorescent Display Driver’ »

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’ »

Arduino Library For LM95172 Temperature Sensor

LM95172 is a 13 to 16 bits wide temperature range automotive-grade temperature sensor in a ceramic SOIC package. Besides its wide range temperature measurements capability (-40 Celsius to 200 Celsius), it can also be programmed to trigger over-temperature/under-temperature alarms and perform one-shot temperature conversation for low power applications. Continue reading ‘Arduino Library For LM95172 Temperature Sensor’ »

Keithley 196 Firmware/Calibration Data Backup

I bought a used Keithley 196 bench multimeter a few weeks ago. This is a 6 ½ digit 3,030,000 counts meter, capable of measuring voltages down to 100nV and currents as low as 100nA. It can also be used to measure low resistance with a resolution of 100 µΩ using 4-wire measurement. And because of the high input resistance on lower voltage ranges (> 1 GΩ), this meter is great for working with analog circuits where precision measurements are often required. Continue reading ‘Keithley 196 Firmware/Calibration Data Backup’ »

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’ »

DDS Function Generator Build

I picked up an AD9850 DDS module on eBay an couple of weeks ago and decided to build a MCU controlled DDS function generator with it to replace my crude frequency generator I built earlier. Continue reading ‘DDS Function Generator Build’ »