Posts tagged ‘Arduino’

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

Yet Another Scanning Monochromator Build

A while ago, I saw a video on the signal path in which Shahriar modified his Verity EP200Mmd monochromator/detector and turned it into a scanning monochromator. Inspired by his work, I decided to do something similar. Since I do not have the equipment to make the mechanical pieces, I decided to take another route. In this post, I will show you a simple and non-intrusive way to make the EP200Mmd a scanning monochromator. A video discussing the build and some experiments is included towards the end. Continue reading ‘Yet Another Scanning Monochromator Build’ »

Turn Your Android Phone into a Wireless Touchpad

In this blog post, I will show you a simple way of turning your Android phone into a wireless touchpad. For this to work all you need is your Android phone, an Arduino board and a HC-06 (or HC-05) bluetooth module based on BC417. A short demonstration video is included towards the end of the post. Continue reading ‘Turn Your Android Phone into a Wireless Touchpad’ »

Using Arduino Due’s True Random Number Generator

Arduino Due uses an Atmel SAM3X8E ARM Cortex-M3 CPU, which has a native hardware based True Random Number Generator (TRNG). In this post, we will take a brief look at how to use it in the Arduino environment and take a look at some of its statistical characteristics. Continue reading ‘Using Arduino Due’s True Random Number Generator’ »

On Arduino Due PWM Frequency

I just got myself a couple of Arduino Due boards. While they were released almost two years ago, I have not really got a chance to look at these until quite recently. Arduino Due is based on Atmel’s ATSAM3x8E 32-bit ARM Cortext-M3 processor. The processor core runs at 84 MHz, which is significantly faster than its 8-bit AVR counterpart ATmega328p which runs at 16 MHz. For an ATmega328p, the highest achievable PWM frequency is 8Mhz (square wave), so we should be able to generate much higher frequency signals on an Arduino Due. But how high can we go? Let’s find out. Continue reading ‘On Arduino Due PWM Frequency’ »

DS3232 Clock Frequency Calibration

DS3232 is an extremely accurate RTC with a guaranteed accuracy of 2.5 ppm (0 °C to 40 °C), which translates into an error of just 80 seconds over the course of a year under the worst case scenario. I had done a few projects using this chip before (you can read about them here). Continue reading ‘DS3232 Clock Frequency Calibration’ »

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

Extending DAC Resolution Using Digital Potentiometer

One way to extend the resolution of a digital-to-analog converter (DAC) is by employing a sigma-delta converter in software. The main disadvantage of such approach is the slow speed. Alternatively, we can use some extra hardware to extend the usable resolution of a DAC. In this post, I will illustrate one such method to extend an 8-bit DAC to 16 bits using a digital potentiometer. Continue reading ‘Extending DAC Resolution Using Digital Potentiometer’ »

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