Sometimes makers write in with similar requests to something another maker has attempted to resolve or troubleshoot. It’s in that vein we find ourselves pointing them to this article by bitknitting ‘On BLE, nobody knows if sensor readings are from an nRF51822 or an Arduino.’
The goal of this post is to transmit data over the I2C interface. Confirmation that the data was transferred will be output of the SDA/SCL lines when my Saleae Logic Analyzer is inserted between the I2C slave (I will be using Adafruit’s ADS1015 BoB…it could be any I2C chip at this point, I just needed a destination to transmit data to).
I used the same setup to simulate pH voltage (b) values as I did when I first started testing the pH circuit. The other components in the test include Adafruit’s ADS1015 BoB (a) to provide the ADC conversion of the voltage into a digital value that is read from either an Arduino (c) or nRF51 (d) DK over i2c.
Getting I2C traffic to work with the nRF51 SDK was similar to getting most apis I have been clueless about. Unfortunately, while Nordic provides pretty good developer support, there is not the “geez this is easy let’s do it this weekend” type of tutorials that abound for the Arduino. Getting out of the clueless state when it came to accessing I2C took longer than it might…of course, some of the cluelessness is innate to me.
Featured Adafruit Products!
ADS1015 12-Bit ADC – 4 Channel with Programmable Gain Amplifier: For microcontrollers without an analog-to-digital converter or when you want a higher-precision ADC, the ADS1015 provides 12-bit precision at 3300 samples/second over I2C. The chip can be configured as 4 single-ended input channels, or two differential channels. As a nice bonus, it even includes a programmable gain amplifier, up to x16, to help boost up smaller single/differential signals to the full range. We like this ADC because it can run from 2V to 5V power/logic, can measure a large range of signals and its super easy to use. It is a great general purpose 12 bit converter. Read more.