Posts tagged ‘I2C’

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

TI MSP430G2 SPI Examples

In my earlier posts (1, 2, 3), I showed some examples of using the I2C protocol with TI’s MSP430 Launchpad. Many MCUs in the MSP430G2 family also support the SPI bus. In today’s discussion, I will give a couple of examples on communicating with an SPI port expander (MCP23S17). Continue reading ‘TI MSP430G2 SPI Examples’ »

Reading SHT21 Using TI MSP430 LaunchPad

SHT21 is a neat little temperature and humidity sensor from Sensirion and I have used it in a couple of my Arduino projects before. Given that the Vcc is 3 V for these sensors, interfacing with a 5V ATMega chip would require an I2C level translator (or alternatively, you could run the MCU at a lower clock frequency and use the lower Vcc). Since TI’s MSP430G2 series MCU runs at lower voltages natively, it is actually a lot cleaner to interface these 3V powered I2C devices. Continue reading ‘Reading SHT21 Using TI MSP430 LaunchPad’ »

I2C Multiplexer Shield Testing

I built an I2C multiplexer shield using an Arduino prototyping shield from SchmartBoard a couple of weeks ago. The shield uses a PCA9548A I2C multiplexer and switch chip from Texas Instruments. Continue reading ‘I2C Multiplexer Shield Testing’ »

MSP-EXP430G2 I2C Master Examples

Last week, I mentioned that in order for the I2C bus to function correctly when using the MSP430 Launchpad you might need to remove the jumper on P1.6. This is because P1.6 is the SCL pin and the connected LED may cause the output voltage to stray from the desired logic voltage levels. In this post, I will show a couple of examples of using the MSP430 Launchpad as an I2C master to communicate with slave devices. The library code can be downloaded towards the end. Continue reading ‘MSP-EXP430G2 I2C Master Examples’ »

MSP-EXP430G2 I2C Issue Resolved

I was experimenting with I2C using my TI MSP-EXP430G2 Launchpad and ran into some issues. For a while, I could not get the I2C host and slave to talk. After having verified the coding and the hardware setup, my suspicion turned to the jumper which connects the red LED indicator to port pin P1.6. Continue reading ‘MSP-EXP430G2 I2C Issue Resolved’ »

Interfacing MMA8453Q With Arduino

MMA8453Q is a rather inexpensive accelerometer. It is significantly cheaper than many other 3-axis accelerometers (such as the popular LIS3LV02DL) and yet it offers a reasonably high 10 bits resolution and packs a rich set of features that simplifies designs and programming in many different applications. Continue reading ‘Interfacing MMA8453Q With Arduino’ »

Interfacing DS7505

The DS7505 digital thermometer and thermostat is a very versatile temperature sensor. It offers 9 to 12-bit digital temperature readings between -55 and +125 Celsius with an accuracy of 0.5 degree. It can be used with any MCUs that has I2C support or can be pre-programmed and used in standalone applications as digital thermostats. Continue reading ‘Interfacing DS7505’ »

Temperature/Humidity Data Logger — Trial Run

I built a rather generic I2C data logger a few weeks back. As I mentioned in my earlier posts, it can be used to log data from almost any I2C slave devices with relatively little code modification. Continue reading ‘Temperature/Humidity Data Logger — Trial Run’ »

I2C Data Logger Using ATmega328p and DS3232 – I

There is a popular data logger shield out there designed for Arduino using a DS1307 real time clock chip. And that design makes data logging extremely easy if an Arduino board is used. Continue reading ‘I2C Data Logger Using ATmega328p and DS3232 – I’ »

A High Current TRIAC Controller Using Arduino

One of the goals in my previous timer project was to achieve the ability to control multiple electronic devices using the precise time signal generated by the RTC chip (bq3287). For electronic devices using up to a couple of amperes, a relay should be more than capable to handle the load. But for high voltage and high current home appliances such as water heaters (typically 240V, 20 to 30 A), the relay solution becomes much more expensive and less reliable. Continue reading ‘A High Current TRIAC Controller Using Arduino’ »

Clock Synchronization Via I2C (TWI)

When I was doing the clock/stop watch project last month, I mentioned that I intended to add I2C (TWI) communication functionality so that I could get time from this clock and use it as timer signal to control other electronics. Continue reading ‘Clock Synchronization Via I2C (TWI)’ »

A Clock/Stop Watch Based on BQ3287

Over the past couple of weeks, I have been experimenting with BQ3287, a real time clock module from Taxes Instruments. My ultimate goal was to eventually create a full fledged control platform based on this RTC module (more on this later). But first and foremost, I would like to explore its capabilities as an accurate time keeper. Continue reading ‘A Clock/Stop Watch Based on BQ3287’ »