# PARTICULAR PURPOSE ARE DISCLAIMED. # # IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY # RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import adi import matplotlib.pyplot as plt import numpy as np from scipy import signal # Set up AD7124 ad7124 = adi.ad7124(uri="ip:192.168.1.171") sc = ad7124.scale_available ad7124.channel[0].scale = sc[2] ad7124.rx_output_type = "SI" # sets sample rate for all channels ad7124.sample_rate = 19200 # currently only one enabled channel buffer works at a time ad7124.rx_enabled_channels = [0] ad7124.rx_buffer_size = 100 raw = ad7124.channel[0].raw data = ad7124.rx() volt_data = ad7124.to_volts(0, data)
# RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Simplest possible example of connecting to AD7124, setup, capture single # sample, capture a buffer of samples. # ip address is hard-coded for clarity and will need to be changed according # to your network. The ip address can be automatically detected # in some circumstances, or passed as a command line argument. import adi # my_ad7124 = adi.ad7124(uri="ip:192.168.86.43") # Connect to AD7124 # (on remote Pi, replace ip address accordingly) my_ad7124 = adi.ad7124( uri="ip:localhost") # Connect to AD7124 (locally, through iiod) ad_channel = 0 # Set channel my_ad7124.channel[ad_channel].scale = 0.0002983 # Set PGA gain my_ad7124.sample_rate = 128 # Set sample rate # Read a single "raw" value v0 = my_ad7124.channel[ad_channel].raw # Buffered data capture my_ad7124.rx_output_type = "SI" # Report buffered data in volts my_ad7124.rx_enabled_channels = [ad_channel] # Only one supported for now my_ad7124.rx_buffer_size = 1024 my_ad7124._ctx.set_timeout(100000) #Sloooow converter data = my_ad7124.rx() # Fetch buffer of samples print("A single raw reading: ", v0) print("A few buffered readings: ", data[:16]) del my_ad7124 # Clean up
import adi import matplotlib.pyplot as plt import numpy as np from scipy import signal import sys # Set up AD7124 # Set a default ip address if none given as a command line argument # hardcoded_ip = "ip:192.168.0.235" # Example if you want to hardcode a different address hardcoded_ip = "ip:analog.local" # Default to analog.local if no argument given my_ip = sys.argv[1] if len(sys.argv) >= 2 else hardcoded_ip # Establish connection to the AD7124 my_ad7124 = adi.ad7124(uri=my_ip) # Set channel. Buffered receive only supports one channel ad_channel = 0 sc = my_ad7124.scale_available my_ad7124.channel[ad_channel].scale = sc[-1] # get highest range print(my_ad7124.channel[ad_channel].scale) scale = my_ad7124.channel[ad_channel].scale my_ad7124.rx_output_type = "SI" my_ad7124.sample_rate = 128 # sets sample rate for all channels my_ad7124.rx_enabled_channels = [ad_channel] my_ad7124.rx_buffer_size = 1024 my_ad7124._ctx.set_timeout(100000) n=1 # number of buffers
# PARTICULAR PURPOSE ARE DISCLAIMED. # # IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY # RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import adi import matplotlib.pyplot as plt import numpy as np from scipy import signal # Set up AD7124 ad7124 = adi.ad7124(uri="ip:10.48.65.138") ad_channel = 0 sc = ad7124.scale_available ad7124.channel[ad_channel].scale = sc[-1] # get highest range ad7124.rx_output_type = "SI" ad7124.sample_rate = 19200 # sets sample rate for all channels ad7124.rx_enabled_channels = [ad_channel] ad7124.rx_buffer_size = 100 raw = ad7124.channel[0].raw data = ad7124.rx() print(data)